Как записать элемент справочника из кода 1С

Сила автоматизации

Запись новых элементов справочника через код - это базовая и часто встречающаяся задача в 1С, которая необходима для автоматического заполнения данных, импорта информации из файлов и массового создания позиций.

 

Зачем это нужно?

Ручное добавление элементов через интерфейс занимает много времени и подвержено ошибкам. Программное создание позволяет:

- Автоматизировать перенос данных из других систем

- Быстро заполнять справочники по готовым шаблонам

- Точнее контролировать заполнение реквизитов, особенно обязательных

- Создавать элементы в рамках сложных бизнес-процессов без участия пользователя

 

Создаем и записываем первый элемент

Базовый процесс состоит из трех шагов: создание объекта, заполнение свойств и сохранение.

// Создаем новый элемент справочника "Номенклатура"
НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();

// Заполняем основные реквизиты
НовыйЭлемент.Наименование = "Офисный стол";
НовыйЭлемент.Код = "000000123"; // Обычно код устанавливается автоматически

// Сохраняем элемент в базе данных
НовыйЭлемент.Записать();
  

После выполнения этого кода в справочнике "Номенклатура" появится новая позиция "Офисный стол" .

Запись элемента в определенную группу

Если ваш справочник иерархический, вы можете указать родительскую группу для нового элемента.

// Находим группу "Мебель", в которую нужно добавить элемент
ГруппаМебель = Справочники.Номенклатура.НайтиПоНаименованию("Мебель");

// Создаем элемент и устанавливаем родителя
НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
НовыйЭлемент.Наименование = "Офисный стул";
НовыйЭлемент.Родитель = ГруппаМебель; // Указываем родительскую группу
НовыйЭлемент.Записать();
  

Если не устанавливать свойство Родитель, элемент будет создан в корне справочника.

 

Заполнение дополнительных реквизитов

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

// Создаем элемент
НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
НовыйЭлемент.Наименование = "Игровой ноутбук";

// Заполняем дополнительные реквизиты
НовыйЭлемент.ПолноеНаименование = "Игровой ноутбук ASUS ROG Strix G15";
НовыйЭлемент.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");

// Добавляем строку в табличную часть
НоваяСтрока = НовыйЭлемент.ДополнительныеРеквизиты.Добавить();
НоваяСтрока.Свойство = "Цвет";
НоваяСтрока.Значение = "Черный";

// Сохраняем изменения
НовыйЭлемент.Записать();
  

 

Подводные камни и частые ошибки

Обязательные реквизиты - если в конфигурации есть обязательные для заполнения реквизиты, их нужно установить перед записью, иначе метод Записать() завершится с ошибкой

Проверка уникальности - перед созданием элемента проверяйте уникальность кода и наименования, если это требуется в вашей конфигурации

Производительность - при массовом создании элементов используете НачатьЗапись() и ЗавершитьЗапись() для оптимизации

Обработка ошибок - всегда обрабатывайте исключения при работе с данными

 

Попытка
    НовыйЭлемент.Записать();
Исключение
    Сообщить("Ошибка записи элемента: " + ОписаниеОшибки());
    // Действия при ошибке: откат транзакции, логирование
КонецПопытки;
  
 

Учебный центр S1P-академия.
Обучение профессии 1С:Программист с нуля до Middle.

Соцсети

111250, г.Москва, проезд завода Серп и Молот 1с1, офис 1.