#std451

Программное создание прикладных объектов

1.

Для программного создания прикладных объектов используйте методы соответствующих менеджеров (СоздатьЭлемент(), СоздатьДокумент(), СоздатьНаборЗаписей() и т.п.).

Если для объекта есть менеджер, использование конструктора Новый запрещено.

Неправильно

ДокументПриходная = Новый("ДокументОбъект.ПоступлениеТоваровУслуг");

Правильно

ДокументПриходная = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
2.

При программном создании объекта явно вызывайте метод Заполнить(). Если данных для заполнения нет, передавайте Неопределено.

Тогда корректно сработают:

  • свойства реквизитов объекта Значение заполнения;
  • обработчик ОбработкаЗаполнения;
  • подписки на событие заполнения.

Поведение будет таким же, как при интерактивной работе с объектом.

Неправильно

Папка = Справочники.ПапкиФайлов.СоздатьЭлемент();
// ...
Папка.Записать();

Правильно

Папка = Справочники.ПапкиФайлов.СоздатьЭлемент();
// ...
Папка.Заполнить(Неопределено);
// ...
Папка.Записать();

Исключение возможно, когда объект полностью загружается из внешнего источника при обмене данными или при восстановлении базы из резервной копии (загрузка из XML).

Проверки

#acc:99

Источник

https://its.1c.ru/db/v8std#content:451