Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 мая 2024, 11:39

Заполнение значения доп реквизита при создании элемента номенклатуры

Автор carwi, 12 апр 2023, 13:19

0 Пользователей и 1 гость просматривают эту тему.

carwi

Добрый день. В внешней обработке выполняется создание элемента номенклатуры. У номенклатуры есть доп реквизит, значение которого я хочу заполнять при создании номенклатуры. Сейчас я делаю так, как я понимаю, ошибка появляется из-за того, что номенклатура еще не создана на момент вызова последней функции. Что мне сделать, чтобы значение записывалось в доп реквизит во время создания элемента?

Функция СоздатьНоменклатуру(ТекстАртикул, ДополнительныеПараметры)
НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
.
.
.
    ТорговаяМаркаСвойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "ТорговаяМарка");   
   
    Таблица = Новый ТаблицаЗначений;
    Таблица.Колонки.Добавить("Свойство");
    Таблица.Колонки.Добавить("Значение");
    Таблица.Очистить();
   
    Строка = Таблица.Добавить();
    Строка.Свойство = ТорговаяМаркаСвойство;
    Строка.Значение = СокрЛП(ДополнительныеПараметры.ТорговаяМарка);
   
    УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(НоваяНоменклатура, Таблица);
.   
.
.
    НоменклатураСоздана = Ложь;
    Попытка
        НоваяНоменклатура.Записать();
        НоменклатураСоздана = Истина;
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
   
    УстановитьПривилегированныйРежим(Ложь);
   
    Возврат НоменклатураСоздана;
   
КонецФункции





Kvark5d

Цитата: carwi от 12 апр 2023, 13:19ошибка появляется из-за того, что номенклатура еще не создана на момент
попытки записи свойства.
Необходимо поставить запись свойства после записи нового элемента

carwi

Kvark5d, Сделал следующим образом, теперь ошибки не появляются, но значение всё равно в доп реквизит не устанавливается

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

    СозданнаяНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию(НоваяНоменклатура.Наименование);
    УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(СозданнаяНоменклатура, Таблица);
   


    УстановитьПривилегированныйРежим(Ложь);
   
    Возврат НоменклатураСоздана;
   
КонецФункции

antoneus

    СозданнаяНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию(НоваяНоменклатура.Наименование);
Зачем аппендикс через гланды-то?

УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(НоваяНоменклатура.Ссылка, Таблица);

carwi


Похожие темы (5)

Рейтинг@Mail.ru

Поиск