8.х Как найти нужную позицию

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Dmitrij, 24 фев 2009.

  1. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Мне нужно проставить нужный код в справочнике номенклатура, код беру из файла
    Код:
    Запрос=Новый Запрос;
    Запрос.УстановитьПараметр("ТекНаименование", Номенклатура);
    Запрос.Текст=
    "ВЫБРАТЬ
    |	Номенклатура.Ссылка,
    |	Номенклатура.Артикул,
    |	Номенклатура.КодОК
    |ИЗ
    |	Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |	Номенклатура.ЭтоГруппа = Ложь
    |	И Номенклатура.Ссылка = &ТекНаименование";
    Результат=Запрос.Выполнить();
    Выборка=Результат.Выбрать();
    Пока Выборка.Следующий()<span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/цикл')">Цикл	</span>
    Объект=Выборка.Ссылка.ПолучитьОбъект();
    Если СокрЛП(Объект.Артикул)=ТекАртикул Тогда
    
    Объект=Номенклатура.ПолучитьОбъект();
    Объект.КодОК=СокрЛП(ФайлВВР.cto);
    Объект.Записать();
    
    Сообщить("Элемент записан """ + СокрЛП(ФайлВВР.cto) + """", СтатусСообщения.Информация);
    КонецЕсли;
    КонецЦикла;
    
    
    
    Проблема в следующем в справочнике есть позиции с одинаковыми наименованиями, но разными артикулами и на оборот, когда просматриваю результат запроса в отладчике вижу что результат запроса 3 строки, а цикл почему то выполняется один раз
  2. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    Единственное что по-моему могет тут быть - поиск по ссылке вроде бы и должен давать 1 результат, т.к. ссылка уникальна??? попробуй переделать поиск не по ссылке, а по наименованию, если уж у тебя есть несколько позиций с одним НАИМЕНОВАНИЕМ и ты хочешь их вытащить...

    Кстати а количество строк ты как смотришь? Выборка.Количество()?
  3. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Вопросы в комментах
    Код:
    Пока Выборка.Следующий()<span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/цикл')">Цикл	</span>
    Объект=Выборка.Ссылка.ПолучитьОбъект();                     // Это зачем??? 
    
    // меня очень смущает это сравнение. Почему не использовать выборку и что за переменная ТекАртикул? Откуда она
    Если СокрЛП(Объект.Артикул)=ТекАртикул Тогда              
    
    // Откуда переменнная Номенклатура??? Кто это?
    Объект=Номенклатура.ПолучитьОбъект();
    Объект.КодОК=СокрЛП(ФайлВВР.cto);
    Объект.Записать();
    
    Сообщить("Элемент записан """ + СокрЛП(ФайлВВР.cto) + """", СтатусСообщения.Информация);
    КонецЕсли;
    КонецЦикла;
    

Поделиться этой страницей