Имя: Пароль:
1C
1С v8
Не получается программно добавлять записи в регистр сведений
0 НатГолубева777
 
22.03.20
17:16
Добрый вечер...
Код

Процедура КнопкаВыполнитьНажатие(Элемент)
    Путь= Константы.ПутьДоФайлов.Получить()+"\";
    Док=ПолучитьCOMОбъект(Путь+"GS.xls");
    
    Номенклатура=Док.Sheets(1).Cells(2,8).Value;
    счСтроки=2;
    Прайс = РегистрыСведений.Прайс.СоздатьНаборЗаписей();
    Прайс.Отбор.Номенклатура.Установить(Справочники.Номенклатура);
    НоваяЗаписьПрайс = Прайс.Добавить();

           Пока СокрЛП(Номенклатура) <> "" Цикл
            Номенклатура=Док.Sheets(1).Cells(СчСтроки,8).Value;
            ШК=Док.Sheets(1).Cells(СчСтроки,2).Value;
            Сообщить(Строка(Номенклатура)+"-"+Строка(ШК));
            счСтроки=счСтроки+1;
            
            Запрос = Новый Запрос;
            Запрос.Текст=
             "ВЫБРАТЬ
             |    Номенклатура.Ссылка КАК Ссылка,
             |    Номенклатура.Наименование КАК Наименование
             |ИЗ
             |    Справочник.Номенклатура КАК Номенклатура
             |ГДЕ
             |    Номенклатура.Наименование В ИЕРАРХИИ(&Наименование)" ;
            Запрос.УстановитьПараметр("Наименование", Номенклатура);
            Результат = Запрос.Выполнить();
            ТЗ=Результат.Выгрузить();
                //ВыборкаДетальныеЗаписи = ТЗ.ВыбратьСтроку();
            ВыборкаДетальныеЗаписи=Результат.Выбрать();
                Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                    //НоваяЗаписьПрайс = Прайс.Добавить();
                    НоваяЗаписьПрайс.Номенклатура = ВыборкаДетальныеЗаписи.Ссылка;
                 КонецЦикла;
        КонецЦикла;

    Прайс.Записать();
    Док.Application.Quit();
КонецПроцедуры


Выдает ошибку-
ВнешняяОбработка.КонкурентыExcel.Форма.Форма.Форма(38)}: Ошибка при вызове метода контекста (Записать)
    Прайс.Записать();
по причине:
Запись не верна! Значение поля не соответствует установленному отбору: Прайс: , Артикул: 097. Комплект постельного белья (КПБ) из сатина (Д) "Фантазия"(1,5 спальный (2 наволочки)) (Регистр сведений: Прайс; Номер строки: 1; Поле: Номенклатура)
1 ДенисЧ
 
22.03.20
17:17
Прайс.Отбор.Номенклатура.Установить(Справочники.Номенклатура);
перенеси унутръ цикла
2 NcSteel
 
22.03.20
17:17
Проблема в этом:

Запись не верна! Значение поля не соответствует установленному отбору
3 Garykom
 
гуру
22.03.20
17:21
В ДНК проблема и тупой копипасте.
4 Garykom
 
гуру
22.03.20
17:23
> Прайс.Отбор.Номенклатура.Установить(Справочники.Номенклатура);

Хрень какая то с учетом что ты номенклатуру внутри меняешь.
Вот если бы ты выбрала допустим нечто что не меняется (ну там Поставщик например а не Номенклатура) а затем разом ему кучу записей с Номенклатура это было бы понятно.

А тут сначала установила отбор по Номенклатура а потом в записях вероятно совсем другую хреначишь ну и (2)
5 НатГолубева777
 
22.03.20
17:30
Убрала отбор... СПАСИБО за помощь