Всем привет! Сижу с задачей по событиям уже 2 неделю, не могу толком сообразить. Я написал вот такой код процедуры создания события:

```1c
    &НаСервере
    Процедура СоздатьСобытие(СтрокаТабЧасти)

    ДанныеЗаполнения = Новый Структура;
    ДанныеЗаполнения.Вставить("ТипСобытия", Перечисления.ТипыСобытий.ЭлектронноеПисьмо);
    ДанныеЗаполнения.Вставить("ОснованиеЗаполнения", СтрокаТабЧасти.ДокументСНО);

    ДокСобытие = Документы.Событие.СоздатьДокумент();
    ДокСобытие.Дата = ТекущаяДата();

    ЗаполнениеОбъектовУНФ.ЗаполнитьДокумент(ДокСобытие, ДанныеЗаполнения, "ОбработчикЗаполнения", ");

    ДокСобытие.Записать(РежимЗаписиДокумента.Запись);

    КонецПроцедуры
```

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

```1c
    Функция ПолучитьПечатнуюФорму(СчНаОплату)

    МассивОбъектов = Новый Массив;
    МассивОбъектов.Добавить(СчНаОплату);
    ИмяМенеджераПечати = "Документ.СчетНаОплату";
    ИменаМакетов = "СчетНаОплату";
    ПараметрыПечати = Новый Структура;
    ДопустимыеТипыОбъектовПечати = Неопределено;

    //Получение печатной формы без области факсимиле
    ПечатныеФормы = УправлениеПечатью.СформироватьПечатныеФормы(ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ПараметрыПечати, ДопустимыеТипыОбъектовПечати);

    Для Каждого СтрокаПФ Из ПечатныеФормы.КоллекцияПечатныхФорм Цикл

    Для Каждого Документ Из ПечатныеФормы.ОбъектыПечати Цикл

    ПараметрыВывода = Новый Структура;

    //Формирование табличного документа (печатная форма без факсимиле)
    ТБД = СтрокаПФ.ТабличныйДокумент.ПолучитьОбласть(Документ.Представление);

    ПодписиИПечатиОбластей = УправлениеПечатью.ПодписиИПечатиОбластей(ПечатныеФормы.ОбъектыПечати);
    ПодписиИПечати = Неопределено;
    ДанныеПечатиРисунковТабличногоДокумента = УправлениеПечатью.ПодписиИПечатиТабличногоДокумента(ПечатныеФормы.ОбъектыПечати, ТБД, ");

    //Получение подписей и печати
    Для Каждого ПодписиИПечатиОбласти Из ПодписиИПечатиОбластей Цикл
    ИмяОбласти = ПодписиИПечатиОбласти.Ключ;
    Если ДанныеПечатиРисунковТабличногоДокумента[ИмяОбласти] = Неопределено Тогда
    ДанныеПечатиРисунковТабличногоДокумента[ИмяОбласти] = Новый Соответствие();
    КонецЕсли;
    Для Каждого Элемент Из ПодписиИПечатиОбласти.Значение Цикл
    ДанныеПечатиРисунковТабличногоДокумента[ИмяОбласти][Элемент.Ключ] = Элемент.Значение;
    КонецЦикла;
    КонецЦикла;

    //Добавление подписей и печати в табличный документ (печатная форма с факсимиле)
    УправлениеПечатью.ДобавитьПодписьИПечать(ТБД, ДанныеПечатиРисунковТабличногоДокумента);

    Возврат ТБД;

    КонецЦикла;

    КонецЦикла;

    КонецФункции

    Функция СформироватьФайл(СчНаОплату, Контрагент, Номер, АдресВХ)

    ТабДок = ПолучитьПечатнуюФорму(СчНаОплату);
    ПолноеИмяФайла = СокрЛП(Каталог) + "\" + АдресВХ + "Счет_на_оплату_за_" + ПолучитьМесяцОплатыСчета() + "." + ТипФайлаТабличногоДокумента.PDF;
    ТабДок.Записать(ПолноеИмяФайла, ТипФайлаТабличногоДокумента.PDF);

    Возврат ПолноеИмяФайла;

    КонецФункции

    //Создание папки со счетами
    &НаСервере
    Процедура СоздатьПапкуСоСчетами()

    //Создание временного хранилища файлов
    Папка = "D:\Отправка документов\Счета на оплату";

    КаталогНаДиске = Новый Файл(Папка);

    Если НЕ КаталогНаДиске.Существует() Тогда
    СоздатьКаталог(Папка);
    КонецЕсли;

    Каталог = Папка;

    КонецПроцедуры
```

Может, есть какой-то другой метод, который можно вызвать и передать нужные параметры для корректного заполнения? Помогите, пожалуйста
---
так а че тебе мешает вызвать ДокументОбъект.Заполнить(ДанныеЗаполнения)?
Вот если бы ты читал регламент по написанию кода на итс, то знал бы, что крайне рекомендуется вызвать хотя бы
```1c
    ДокументОбъект.Заполнить(Неопределено);
```

С вероятностью 99% ЗаполнениеОбъектовУНФ вызывается от туда

посмотри параметры ДобавитьФайл(). Там много чего интересного узнаешь, если тебе это, конечно, интересно
---
создаешь свое событие. Далее

```1c
    РаботаСфайлами.ДобавитьФайлСДиска(Ссылка, ПутьКФайлуНаДиске);
```

либо

```1c
    РаботаСФайлами.ДобавитьФайл();
```
---
Событие программно создается, но оно не заполняется методом "ЗаполнитьДокумент" из общего модуля "ЗаполнениеОбъектовУНФ". Хотя, в предприятии всё заполняется корректно. Вот на этом моменте я остановился.

А насчёт файлов, после отправки письма временный каталог на диске удаляется. Файл, прикрепленный в событии в базе, останется в таком случае? Всё-таки передаем путь файла именно на диске, где каталог с файлами счетов хранится
---
так а че тебе мешает вызвать ДокументОбъект.Заполнить(ДанныеЗаполнения)?
Вот если бы ты читал регламент по написанию кода на итс, то знал бы, что крайне рекомендуется вызвать хотя бы
```1c
    ДокументОбъект.Заполнить(Неопределено);
```

С вероятностью 99% ЗаполнениеОбъектовУНФ вызывается от туда

посмотри параметры ДобавитьФайл(). Там много чего интересного узнаешь, если тебе это, конечно, интересно
---
Да, про этот метод знаю. Как раз-таки в этой же обработке с помощью него и заполняю счета на оплату. Требовалось просто без использования этого метода создать и заполнить документ "Событие". Я вот и пытался найти обходные пути, так сказать. А насчет "ДобавитьФайл()" спасибо вам. Почитаю, попробую применить, чтобы всё корректно заполнялось.
---
ну в целом тебе ничего не мешает вручную кодом заполнять по-реквизитно. только потом могут вылезти разные приколы
---
Да, можно и вручную заполнить некоторые реквизиты. Но, например, реквизит "СодержаниеHTML" будет проблематично заполнить
---
Но в любом случае, спасибо вам за помощь