# Изменение обработчика создания документа на основании заявки

В настройках типов заявок доступно включение создания документов на их основании. Для некоторых типов заявок, которые поставляются в базовой версии EmplDocs, уже преднастроено создание документа. Например, отпуска и командировки. Стандартные обработчики создания предусматривают перенос данных из согласованной заявки в документ 1С. Таким образом, например, в документ Отпуск, переносятся данные о сотруднике, для которого оформляется отпуск, а также даты отпуска и тип отпуска (в  зависимости от типов заявок).

В данной заметке рассмотрим, что нужно сделать, если требуется изменение стандартных обработчиков. **На примере переноса комментария заявки в комментарий документа при создании Отпуска.**

1. Открыть тип заявки и перейти на вкладку "Документы"\
   ![](https://1471809276-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDAS4EZ9iEEAziRxZbaRm%2Fuploads%2FGd1D1tjZP96YHAqc0r9E%2Fimage.png?alt=media\&token=ddf8b193-a60b-4130-a61f-57381a18f8c7)
2. В строке документа "Отпуск" установить флаг "Использовать измененный алгоритм создания"
3. Развернуть окно кода измененного алгоритма нажатием соответствующей кнопки\
   ![](https://1471809276-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDAS4EZ9iEEAziRxZbaRm%2Fuploads%2FNqAHhfgyBvUF91i0jzzK%2Fimage.png?alt=media\&token=27c99009-aa5a-40b4-9912-f8f3a47ecc24)
4. Вставить код обработчика<br>

   <pre data-overflow="wrap"><code>СсылкаНаДокумент = лксРаботаСДокументами.СоздатьДокументОтпуск(Заявка, ТекущиеПараметрыЗаявки);  Если ЗначениеЗаполнено(СсылкаНаДокумент) Тогда    ДанныеЗаявки = Справочники.лксЗаявки.РеквизитыЗаявки(Заявка);    Комментарий = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДанныеЗаявки, "Комментарий", "");    Если ЗначениеЗаполнено(Комментарий) Тогда                  ОбъектДокумента = СсылкаНаДокумент.ПолучитьОбъект();        ОбъектДокумента.Комментарий = Комментарий;        ОбъектДокумента.Записать();    КонецЕсли;КонецЕсли; 
   </code></pre>
5. И нажать "Сохранить"\
   ![](https://1471809276-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDAS4EZ9iEEAziRxZbaRm%2Fuploads%2FuI0qOKAraOnMZW45LFfu%2Fimage.png?alt=media\&token=6156702f-86ec-48ea-b312-35837f05b6ac)
6. Далее нужно записать тип заявки\
   ![](https://1471809276-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDAS4EZ9iEEAziRxZbaRm%2Fuploads%2FsbfGEo3qLI6Al3thCsdn%2Fimage.png?alt=media\&token=9ff9418c-6672-4038-b454-91d199cd4af6)<br>
7. Чтобы проверить результат, откроем любую заявку этого типа, по которой еще не был создан документ, но которая находится в статусе "Оформление документов", и напишем комментарий в поле "Комментарий", если его там нет. После этот запишем заявку кнопкой "Записать", иначе комментарий не сохранится.
8. Далее следует нажать кнопку "Ввести документы"\
   \
   ![](https://1471809276-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDAS4EZ9iEEAziRxZbaRm%2Fuploads%2FFjzXK31ZiSatME8dUiEQ%2Fimage.png?alt=media\&token=2d4ceac9-de55-42c0-a223-13805f9f7ed1)
9. Комментарий будет перенесен в документ.\
   ![](https://1471809276-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDAS4EZ9iEEAziRxZbaRm%2Fuploads%2FlXvARAFRPszL1qRxErlL%2Fimage.png?alt=media\&token=23cf2472-ca93-45e5-b754-67571c8bf833)

Данный обработчик можно применять ко всем документам, которые содержат поле "Комментарий" и которые доступны для создания из заявок. Для этого нужно изменить соответствующие строки в коде  обработчика.\
СсылкаНаДокумент = лксРаботаСДокументами.СоздатьДокументОтпуск

На январь 2024 ED поддерживает создание следующих документов:

```
СоздатьДокументРаботаВВыходныеИПраздничныеДни(Заявка, ТекущиеПараметрыЗаявки)

СоздатьДокументРаботаСверхурочно(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументОтпуск(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументОтпускБезСохраненияОплаты(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументОтпускПоУходуЗаРебенком(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументПереносОтпуска(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументБольничныйЛист(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументКомандировка(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументПрогулНеявка(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументОтгул(Заявка, ТекущиеПараметрыЗаявки){}

СоздатьДокументГрафикОтпусков(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументЗаявлениеНаПредоставлениеСтандартныхВычетовПоНДФЛ(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументУведомлениеОПравеНаИмущественныйВычетДляНДФЛ(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументПрикреплениеКПрограммамСтрахования(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументИзменениеУсловийСтрахования(Заявка, ТекущиеПараметрыЗаявки);

СоздатьМассивДокументовОплатаПоСреднемуЗаработку(Заявка, ТекущиеПараметрыЗаявки);

СоздатьМассивДокументовСправкаНДФЛ(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументКадровыйПеревод(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументУвольнение(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументВозвратИзОтпускаПоУходуЗаРебенком(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументИзменениеУсловийОплатыОтпускаПоУходуЗаРебенком(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументЗамещениеИсполнителейРолей(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументОплатаДнейУходаЗаДетьмиИнвалидами(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументМатериальнаяПомощь(Заявка, ТекущиеПараметрыЗаявки);

СоздатьДокументВыплатаБывшимСотрудникам(Заявка, ТекущиеПараметрыЗаявки);
```

Соответственно, для документа "Командировка", обработчик будет выглядеть следующим образом:

{% code overflow="wrap" %}

```
СсылкаНаДокумент = лксРаботаСДокументами.СоздатьДокументКомандировка(Заявка, ТекущиеПараметрыЗаявки);  Если ЗначениеЗаполнено(СсылкаНаДокумент) Тогда    ДанныеЗаявки = Справочники.лксЗаявки.РеквизитыЗаявки(Заявка);    Комментарий = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДанныеЗаявки, "Комментарий", "");    Если ЗначениеЗаполнено(Комментарий) Тогда                  ОбъектДокумента = СсылкаНаДокумент.ПолучитьОбъект();        ОбъектДокумента.Комментарий = Комментарий;        ОбъектДокумента.Записать();    КонецЕсли;КонецЕсли; 
```

{% endcode %}

Пользуясь этим принципом, можно настраивать перенос комментария из заявки в документ.

Для того, чтобы изменить прочие правила создания документов, можно привлечь 1С-разработчика для написания кода, а также обратиться к поставщику ED для индивидуальной настройки.
