helpf.pro
Регистрация

v8: Ввод сведений о трудовой деятельности

rom-x
10.10.2011 12:29Прочитано: 3575
Здравствуйте, изучаю 8-ку, в ЗУПе нужно занести информацию о стаже Сотруднику, кот. выбирается в форме внешней обработки.
В 7-ке все понятно, там стаж заносится в реквизит справочника Сотрудники.

Код 1C v 7.x
 
сСотр = СоздатьОбъект("Справочник.Сотрудники");
сСотр.НайтиПоНаименованию(Сотрудник.Наименование,0);
сСотр.ТекущийЭлемент();
сСотр.СтажСтраховой = Формат(ДобавитьМесяц(ТекущаяДата(),-Год * 12-Месяц)-День,"ДДДММГГГГ");
сСотр.Записать();

Вопрос, как объявить справочник в 8-ке, если это вообще надо, и записать данные в форму ввода данных труд. деятельность.
Нашел в коде такие строки:
Код 1C v 8.х
   Строка = Стажи.Добавить();
Строка.ВидСтажа = Стаж.ВидСтажа;
Строка.ДатаОтсчета = Стаж.ДатаОтсчета;
Строка.РазмерМесяцев = Стаж.РазмерМесяцев + Стаж.РазмерЛет * 12;
Строка.РазмерДней = Стаж.РазмерДней;

Например нужно занести ВидСтажа - Общий, ДатаОтсчета - 09.08.2011 Лет-10 Месяцев - 5 Дней 3.
Думаю порядок будет такой, создаем справочник, или объявляем его, находим сотрудника по Сотрудник - тип у него Справочник.ФизическиеЛица, далее .Добавить(); и добавляем нужное, так?
Изменено 10.10.11 12:42:02
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
10.10.2011 12:40Ответ № 1
(0) rom-x, в ЗУПе это справочник ФИзЛиц, табличная часть - Трудовая деятельность и Стажи
Изменено 10.10.11 12:41:10
rom-x
10.10.2011 12:48Ответ № 2
(1) E_Migachev, да нашел я этот справочник и куда инфу надо занести, а вот как занести програмно?
Изменено 10.10.11 13:16:48
E_Migachev
10.10.2011 13:42Ответ № 3
(2) rom-x, вот пример добавления строки в табличную часть:
Код 1C v 8.х
 ОбъектДок = Док.ПолучитьОбъект(); 
НоваяСтрока = ОбъектДок.Товары.Добавить();

// Заполнить значения реквизитов.
НоваяСтрока.Количество = 13;
НоваяСтрока.Цена = 5500;

// Записать
ОбъектДок.Записать();
rom-x
10.10.2011 15:40Ответ № 4
(3) E_Migachev, спасибо, что-то подобное я писал выше, я бы хотел получить конкретный ответ. На семерке это сделать не беда, но в 8-ке пока затруднительно для меня.
E_Migachev
10.10.2011 16:10Ответ № 5
(4) rom-x, так ты правильно нашел, используй:
Код 1C v 8.х
 Строка = Стажи.Добавить();
Строка.ВидСтажа = Стаж.ВидСтажа;
Строка.ДатаОтсчета = Стаж.ДатаОтсчета;
Строка.РазмерМесяцев = Стаж.РазмерМесяцев + Стаж.РазмерЛет * 12;
Строка.РазмерДней = Стаж.РазмерДней;

Только пред этим нужно получить элемент справочника для редактирования
Код 1C v 8.х
 СсылкаНаЭлемСправочника.ПолучитьОбъект();   
rom-x
10.10.2011 19:17Ответ № 6
(5) E_Migachev, так не работает) под словом Стажи и Стаж должно что-то подразумеваться. Не работает даже так:
Код 1C v 8.х
 	Стаж = Сотрудник.Стаж;
Строка = Стаж.Добавить();
Строка.ВидСтажа = вСтажа;
Строка.ДатаОтсчета = Стаж.ДатаОтсчета;
Строка.РазмерМесяцев = Стаж.РазмерМесяцев + Стаж.РазмерЛет * 12;
Строка.РазмерДней = Стаж.РазмерДней;
E_Migachev
11.10.2011 10:20Ответ № 7
(6) rom-x, код для создания нового должен быть вида:
Код 1C v 8.х
 СпрСотр = Справочники.ФизическиеЛица;
НовЭл = СпрСотр.СоздатьЭлемент();
НовЭл.Наименование = "Тру-ля-ля";
Строка = НовЭл.Стажи.Добавить();
Строка.ВидСтажа = вСтажа;
Строка.ДатаОтсчета = Стаж.ДатаОтсчета;
rom-x
11.10.2011 22:51Ответ № 8
(7) E_Migachev, все делается во внешней обработке, сотрудника создавать не надо, Сотрудник.Наименование уже выдаст ФИО выбранного в форме сотрудника. Ему нужно добавить стаж, запись, присвоив каждому реквизиту свое значение. Собственно вопрос свой я с того и начал, получается что опять пришли к тому же )
E_Migachev
12.10.2011 10:32Ответ № 9
(8) rom-x, тогда бери ту ссылку которая у тебя есть и перед добавлением стажа делай ПолучитьОбъект()
rom-x
12.10.2011 20:05Ответ № 10
(9) E_Migachev,
Код 1C v 8.х
 Сотрудник.ПолучитьОбъект();
Стаж = Сотрудник.Стажи;
Стаж.Добавить();

Итак разжую все, у Стаж тип - Справочник.ТабличнаяЧасть.ФизическиеЛица.Стажи и если дальше вызываю .Добавить() он пишет:
Объект недоступен для изменения.
E_Migachev
13.10.2011 10:58Ответ № 11
(10) rom-x, Табличная чать Стажи относится к справочнику ФизЛиц и получать объект нужно справочника ФизЛиц, вот рабочий код:
Код 1C v 8.х
                 //Обращаемя к справочнику
СправочникСотрудник = Справочники.СотрудникиОрганизаций;
//Находим нужного сотрудника
НайденнаяСсылка = СправочникСотрудник.НайтиПоНаименованию("Вася Пупкин");
Если НайденнаяСсылка = СправочникСотрудник.ПустаяСсылка() Тогда
Сообщить("Сотрудника в справочнике нет!!!");
Иначе //нашли сотрудника изменяем стаж
// Добавляем стаж сотрудника в справочник Физические лица
ФизЛицо = НайденнаяСсылка.Физлицо.ПолучитьОбъект();
НовСтр = ФизЛицо.Стажи.Добавить();
НовСтр.ВидСтажа = Справочники.ВидыСтажа.ОбщийСтаж;
НовСтр.ДатаОтсчета = ТекущаяДата();
НовСтр.РазмерДней = 30;
ФизЛицо.Записать();
КонецЕсли;

Изменено 13.10.11 10:58:38
rom-x
13.10.2011 18:39Ответ № 12
(11) E_Migachev, вот спасибо! респект, все работает!
Подсказка: Щелкнув по значку (справа от названия вопроса), вы получите список ответов на похожие вопросы!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.