Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Не получается программно создать элемент справочника НоменклатураГТД

Не получается программно создать элемент справочника НоменклатураГТД
Я
   толькодлявопросов
 
06.02.18 - 21:35
Пытаюсь программно создать и записать элемент справочника в УТ 10, но получаю ошибку "Ошибка при получении значения атрибута контекста (Наименование)"
    
    НовСпрГТД = Справочники.НоменклатураГТД.НайтиПоНаименованию(КодУКТВЭД);
    
    Если НовСпрГТД.Пустая() Тогда
    
        НовСпрГТД = Справочники.НоменклатураГТД.СоздатьЭлемент();
        
        НовСпрГТД.Наименование     = КодУКТВЭД;
        НовСпрГТД.КодУКТВЭД        = ПодобратьКлассификаторУКТВЭД(КодУКТВЭД);
        НовСпрГТД.КодУКТВЭД_Индекс = КодУКТВЭД;
        
        НовСпрГТД.Записать();
    
    КонецЕсли;
    
Ошибка на строке "НовСпрГТД.Записать();"
Отладчиком НовСпрГТД.Наименование заполнена, тип данных строка. 
Единственная процедура в модуле НоменклатураГТД - ПередЗаписью(), там код доходит до конца и выходит из нее, и только потом выскакивает ошибка.
 
 
   Лефмихалыч
 
1 - 06.02.18 - 21:40
в модуле объекта при/перед записью смотри, что происходит
   толькодлявопросов
 
2 - 06.02.18 - 21:44
(1) Единственная процедура
    Процедура ПередЗаписью(Отказ)
    
        Если ОбменДанными.Загрузка = Истина Тогда
            Возврат;
        КонецЕсли;
    
        ОбновлениеИндексныхПолей();
    
        // не будем записывать дубли

        Если НЕ ОбменДанными.Загрузка Тогда
    
            Запрос = Новый Запрос();
            Запрос.УстановитьПараметр("КодУКТВЭД", КодУКТВЭД);
            Запрос.УстановитьПараметр("НомерГТД",  НомерГТД);
            Запрос.УстановитьПараметр("Владелец",  Владелец);
            Запрос.УстановитьПараметр("Ссылка",    Ссылка);
        
            Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
                       |    НоменклатураГТД.Ссылка
                       |ИЗ
                       |    Справочник.НоменклатураГТД КАК НоменклатураГТД
                       |ГДЕ
                       |    НЕ НоменклатураГТД.Ссылка = &Ссылка
                       |    И НоменклатураГТД.КодУКТВЭД = &КодУКТВЭД
                       |    И НоменклатураГТД.НомерГТД = &НомерГТД
                       |    И НоменклатураГТД.Владелец = &Владелец";
                       
            Если НЕ Запрос.Выполнить().Пустой() Тогда
                Отказ = Истина;
                Сообщить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Для номенклатуры %1 уже имеется запись в справочнике ""Номенклатура ГТД"" с такими же номером ГТД и Кодом УКТ ВЭД!", Владелец));
            КонецЕсли;                           
    
        КонецЕсли;
    
    КонецПроцедуры
   толькодлявопросов
 
3 - 06.02.18 - 21:45
Отладчиком доходит до конца без ошибок
   толькодлявопросов
 
4 - 06.02.18 - 21:45
ОбновлениеИндексныхПолей(); - лишее, прилипло, там нет
   Лефмихалыч
 
5 - 06.02.18 - 21:48
кэш продуй
   Cyberhawk
 
6 - 06.02.18 - 22:05
Покажи на картинке
   толькодлявопросов
 
7 - 06.02.18 - 22:34
Сейчас из большой обработки вытянул это код в маленькую только для этой функции и стало показывать следующую ошибку:
    
    {Форма.Форма.Форма(30)}: Ошибка при вызове метода контекста (Записать)
    НовСпр.Записать();
    по причине:
    Значение поля "Номенклатура" не заполнено или заполнено неверно

Реквизита "Номенклатура" в справочнике НоменклатураГТД - вообще нет......!!
   толькодлявопросов
 
8 - 06.02.18 - 22:38
(7) оно скорее всего владельца под "Номенклатурой" подразумевает
   толькодлявопросов
 
9 - 06.02.18 - 22:41
(8) Хотя сейчас добавил владельца и в первой обработке - заработало, но ведь насколько я знаю НоменклатураГТД может быть одна и та же у нескольких Номенклатур
   Доминошник
 
10 - 06.02.18 - 22:47
(0) Немного не по делу - но в УТ 10.3 два справочника:
Справочник.НомераГТД
Справочник.СерииНоменклатуры

В НомераГТД - уникальные номера
В СерииНоменклатуры - номер ГТД (из справочника НомераГТД), Страна происхождения и (обязательно) владелец - Номенклатура
 
 Рекламное место пустует
   толькодлявопросов
 
11 - 08.02.18 - 17:34
(10) ут для украины
   azernot
 
12 - 08.02.18 - 18:06
Может подписки какие?
Сделай остановку по ошибке. И отлови, где именно он не может "наименование" получить
   breezee
 
13 - 08.02.18 - 20:11
(12) Еще можно замером производительности
   Михаил Козлов
 
14 - 08.02.18 - 20:41
У справочника номеров ГТД ОБЫЧНО нет наименования. А номер ГТД - это код элемента справочника.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Компьютер — устройство разработанное для ускорения и автоматизации человеческих ошибок.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует