Сила автоматизации
Запись новых элементов справочника через код - это базовая и часто встречающаяся задача в 1С, которая необходима для автоматического заполнения данных, импорта информации из файлов и массового создания позиций.
Зачем это нужно?
Ручное добавление элементов через интерфейс занимает много времени и подвержено ошибкам. Программное создание позволяет:
- Автоматизировать перенос данных из других систем
- Быстро заполнять справочники по готовым шаблонам
- Точнее контролировать заполнение реквизитов, особенно обязательных
- Создавать элементы в рамках сложных бизнес-процессов без участия пользователя
Создаем и записываем первый элемент
Базовый процесс состоит из трех шагов: создание объекта, заполнение свойств и сохранение.
// Создаем новый элемент справочника "Номенклатура"
НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
// Заполняем основные реквизиты
НовыйЭлемент.Наименование = "Офисный стол";
НовыйЭлемент.Код = "000000123"; // Обычно код устанавливается автоматически
// Сохраняем элемент в базе данных
НовыйЭлемент.Записать();
После выполнения этого кода в справочнике "Номенклатура" появится новая позиция "Офисный стол" .
Запись элемента в определенную группу
Если ваш справочник иерархический, вы можете указать родительскую группу для нового элемента.
// Находим группу "Мебель", в которую нужно добавить элемент
ГруппаМебель = Справочники.Номенклатура.НайтиПоНаименованию("Мебель");
// Создаем элемент и устанавливаем родителя
НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
НовыйЭлемент.Наименование = "Офисный стул";
НовыйЭлемент.Родитель = ГруппаМебель; // Указываем родительскую группу
НовыйЭлемент.Записать();
Если не устанавливать свойство Родитель, элемент будет создан в корне справочника.
Заполнение дополнительных реквизитов
Помимо основных свойств, часто нужно заполнять дополнительные реквизиты и табличные части.
// Создаем элемент
НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
НовыйЭлемент.Наименование = "Игровой ноутбук";
// Заполняем дополнительные реквизиты
НовыйЭлемент.ПолноеНаименование = "Игровой ноутбук ASUS ROG Strix G15";
НовыйЭлемент.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
// Добавляем строку в табличную часть
НоваяСтрока = НовыйЭлемент.ДополнительныеРеквизиты.Добавить();
НоваяСтрока.Свойство = "Цвет";
НоваяСтрока.Значение = "Черный";
// Сохраняем изменения
НовыйЭлемент.Записать();
Подводные камни и частые ошибки
Обязательные реквизиты - если в конфигурации есть обязательные для заполнения реквизиты, их нужно установить перед записью, иначе метод Записать() завершится с ошибкой
Проверка уникальности - перед созданием элемента проверяйте уникальность кода и наименования, если это требуется в вашей конфигурации
Производительность - при массовом создании элементов используете НачатьЗапись() и ЗавершитьЗапись() для оптимизации
Обработка ошибок - всегда обрабатывайте исключения при работе с данными
Попытка
НовыйЭлемент.Записать();
Исключение
Сообщить("Ошибка записи элемента: " + ОписаниеОшибки());
// Действия при ошибке: откат транзакции, логирование
КонецПопытки;