Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Не получается программно добавлять записи в регистр сведений

Не получается программно добавлять записи в регистр сведений
Я
   НатГолубева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
Прайс.Отбор.Номенклатура.Установить(Справочники.Номенклатура);
перенеси унутръ цикла
   NcSteel
 
2 - 22.03.20 - 17:17
Проблема в этом:

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

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

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

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