Изменение обработчика создания документа на основании заявки
В настройках типов заявок доступно включение создания документов на их основании. Для некоторых типов заявок, которые поставляются в базовой версии EmplDocs, уже преднастроено создание документа. Например, отпуска и командировки. Стандартные обработчики создания предусматривают перенос данных из согласованной заявки в документ 1С. Таким образом, например, в документ Отпуск, переносятся данные о сотруднике, для которого оформляется отпуск, а также даты отпуска и тип отпуска (в зависимости от типов заявок).
В данной заметке рассмотрим, что нужно сделать, если требуется изменение стандартных обработчиков. На примере переноса комментария заявки в комментарий документа при создании Отпуска.
Открыть тип заявки и перейти на вкладку "Документы"
В строке документа "Отпуск" установить флаг "Использовать измененный алгоритм создания"
Развернуть окно кода измененного алгоритма нажатием соответствующей кнопки
Вставить код обработчика
СсылкаНаДокумент = лксРаботаСДокументами.СоздатьДокументОтпуск(Заявка, ТекущиеПараметрыЗаявки); Если ЗначениеЗаполнено(СсылкаНаДокумент) Тогда ДанныеЗаявки = Справочники.лксЗаявки.РеквизитыЗаявки(Заявка); Комментарий = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДанныеЗаявки, "Комментарий", ""); Если ЗначениеЗаполнено(Комментарий) Тогда ОбъектДокумента = СсылкаНаДокумент.ПолучитьОбъект(); ОбъектДокумента.Комментарий = Комментарий; ОбъектДокумента.Записать(); КонецЕсли;КонецЕсли;
И нажать "Сохранить"
Далее нужно записать тип заявки
Чтобы проверить результат, откроем любую заявку этого типа, по которой еще не был создан документ, но которая находится в статусе "Оформление документов", и напишем комментарий в поле "Комментарий", если его там нет. После этот запишем заявку кнопкой "Записать", иначе комментарий не сохранится.
Далее следует нажать кнопку "Ввести документы"
Комментарий будет перенесен в документ.
Данный обработчик можно применять ко всем документам, которые содержат поле "Комментарий" и которые доступны для создания из заявок. Для этого нужно изменить соответствующие строки в коде обработчика. СсылкаНаДокумент = лксРаботаСДокументами.СоздатьДокументОтпуск
На январь 2024 ED поддерживает создание следующих документов:
СоздатьДокументРаботаВВыходныеИПраздничныеДни(Заявка, ТекущиеПараметрыЗаявки)
СоздатьДокументРаботаСверхурочно(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументОтпуск(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументОтпускБезСохраненияОплаты(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументОтпускПоУходуЗаРебенком(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументПереносОтпуска(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументБольничныйЛист(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументКомандировка(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументПрогулНеявка(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументОтгул(Заявка, ТекущиеПараметрыЗаявки){}
СоздатьДокументГрафикОтпусков(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументЗаявлениеНаПредоставлениеСтандартныхВычетовПоНДФЛ(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументУведомлениеОПравеНаИмущественныйВычетДляНДФЛ(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументПрикреплениеКПрограммамСтрахования(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументИзменениеУсловийСтрахования(Заявка, ТекущиеПараметрыЗаявки);
СоздатьМассивДокументовОплатаПоСреднемуЗаработку(Заявка, ТекущиеПараметрыЗаявки);
СоздатьМассивДокументовСправкаНДФЛ(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументКадровыйПеревод(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументУвольнение(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументВозвратИзОтпускаПоУходуЗаРебенком(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументИзменениеУсловийОплатыОтпускаПоУходуЗаРебенком(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументЗамещениеИсполнителейРолей(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументОплатаДнейУходаЗаДетьмиИнвалидами(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументМатериальнаяПомощь(Заявка, ТекущиеПараметрыЗаявки);
СоздатьДокументВыплатаБывшимСотрудникам(Заявка, ТекущиеПараметрыЗаявки);
Соответственно, для документа "Командировка", обработчик будет выглядеть следующим образом:
СсылкаНаДокумент = лксРаботаСДокументами.СоздатьДокументКомандировка(Заявка, ТекущиеПараметрыЗаявки); Если ЗначениеЗаполнено(СсылкаНаДокумент) Тогда ДанныеЗаявки = Справочники.лксЗаявки.РеквизитыЗаявки(Заявка); Комментарий = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДанныеЗаявки, "Комментарий", ""); Если ЗначениеЗаполнено(Комментарий) Тогда ОбъектДокумента = СсылкаНаДокумент.ПолучитьОбъект(); ОбъектДокумента.Комментарий = Комментарий; ОбъектДокумента.Записать(); КонецЕсли;КонецЕсли;
Пользуясь этим принципом, можно настраивать перенос комментария из заявки в документ.
Для того, чтобы изменить прочие правила создания документов, можно привлечь 1С-разработчика для написания кода, а также обратиться к поставщику ED для индивидуальной настройки.
Last updated