Имя: Пароль:
1C
1С v8
Управление торговлей 11. Программное заполнение реквизитов в номенклатуре
0 rostovsam
 
25.12.18
00:07
Добрый день!
Столкнулся с проблемой заполнения реквизитов алкогольной продукции в справочнике "Номенклатура". После программного заполнения реквизита "АлкогольнаяПродукция" в значение Истина при записи элемента реквизит возвращается в значение Ложь. Не могу разобраться в чем проблема.

Платформа 8.3.12.1685 Конфигурация Управление торговлей 11.4.5.143

&НаСервере
Процедура Команда1НаСервере()
    Запрос = новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    СоответствиеНоменклатурыЕГАИС.АлкогольнаяПродукция КАК АлкогольнаяПродукцияСсылка
    |ИЗ
    |    РегистрСведений.СоответствиеНоменклатурыЕГАИС КАК СоответствиеНоменклатурыЕГАИС
    |ГДЕ
    |    СоответствиеНоменклатурыЕГАИС.Номенклатура = &Номенклатура";

    Выборка = Справочники.Номенклатура.Выбрать();
    Пока Выборка.Следующий() цикл
        Номенклатура = Выборка.Ссылка.ПолучитьОбъект();
        Запрос.УстановитьПараметр("Номенклатура", Номенклатура.Ссылка);
        РезультатЗапроса = Запрос.Выполнить().Выбрать();
        Если РезультатЗапроса.Количество() = 1 Тогда
            Пока РезультатЗапроса.Следующий() цикл
                Номенклатура.АлкогольнаяПродукция = Истина;
                НоменклатураЕГАИС = РезультатЗапроса.АлкогольнаяПродукцияСсылка;
                НоменклатураЕГАИС = НоменклатураЕГАИС.ПолучитьОбъект();
                Номенклатура.Крепость = НоменклатураЕГАИС.Крепость;
                Номенклатура.ОбъемДАЛ = НоменклатураЕГАИС.Объем / 10;
                ВидПродукцииЕГАИС = НоменклатураЕГАИС.ВидПродукции.ПолучитьОбЪект();
                ВидПродукции = Справочники.ВидыАлкогольнойПродукции.НайтиПоКоду(ВидПродукцииЕГАИС.Код);
                Номенклатура.ВидАлкогольнойПродукции = ВидПродукции;
                Справочники.Номенклатура.ЗаполнитьРеквизитыПоВидуНоменклатуры(Номенклатура,,,ложь);
                Попытка
                    УстановитьПривилегированныйРежим(Истина);
                    Номенклатура.Записать();
                    УстановитьПривилегированныйРежим(Ложь);
                Исключение
                       Сообщить(НСтр("ru = 'Не удалось записать объект';" + " en = 'Can't write the object'") + " '" + Номенклатура.Наименование + "! |"+ ОписаниеОшибки());
                КонецПопытки;
            КонецЦикла;
        КонецЕсли
    КонецЦикла;

КонецПроцедуры
1 Makar47
 
25.12.18
00:14
Смотреть в
Справочники.Номенклатура.ЗаполнитьРеквизитыПоВидуНоменклатуры(Номенклатура,,,ложь);
2 rostovsam
 
25.12.18
00:48
Прошу прощения, не удалил. Это была попытка использования стандартной функции. Даже если изменять только реквизит "АлкогольнаяПродукция" такие же результаты. Более того пробовал универсальные редакторы реквизитов и выводил этот реквизит на форму элемента. В любом случае после записи реквизит остается в значении Ложь
3 hhhh
 
25.12.18
04:10
(2)                                         Номенклатура.ОбменДанными.Загрузка = Истина;
Номенклатура.Записать();