Имя: Пароль:
1C
1С v8
Как в запросе просматривать строку, а не таблицу?
0 kkar
 
27.12.11
10:51
Ситуация такая:

в запросе устанавливается параметр - таблица значений таблицаЭксель, которая содержит, скажем, 2 строки. Запрос находит в справочнике Номенклатура те элементы, которые содержат в себе другой параметр - номер кода. Запрос выгружается в новую ТЗ, где в идеале должно быть так: каждому наименованию из ТаблицаЭксель соответствует номенклатура из нашего справочника. А так как в таблицеЭксель 2 строки, то он на выходе задваивает результат, и обеим строкам соответствует одна и та же номенклатура, которая должна соответствовать только первой строке. Как бы обойти эту беду? То есть как бы сделать так, чтобы в запрос в параметр ВТ поставить не всю таблицу значений, а ее текущую строку?

   Запрос = Новый Запрос(
   "ВЫБРАТЬ
   |    ВТ.НаименованиеВрем
   |ПОМЕСТИТЬ ВТ
   |ИЗ
   |    &ВТ КАК ВТ
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |    ВТ.НаименованиеВрем,
   |    Номенклатура.Ссылка
   
   |ИЗ
   |    ВТ КАК ВТ
   |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
   |        ПО (Номенклатура.Наименование ПОДОБНО &НомерКода)
   ");
   Запрос.УстановитьПараметр("ВТ", ТаблицаЭксель);
   Для Каждого Строка из ТаблицаЭксель Цикл
       Запрос.УстановитьПараметр("НомерКода", "%"+Строка.КодовоеСлово+"%");
       РезультатЗапроса = Запрос.Выполнить().Выгрузить();
       
       Для каждого строка из РезультатЗапроса Цикл
           Если Строка.Ссылка = NULL Тогда
               Сообщить(Строка.НаименованиеВрем + " номенклатура с таким наименованием - не найдена!");
               Продолжить;
           КонецЕсли;  
           СтрокаТовары = НайденнаяНоменклатура.Добавить();
           СтрокаТовары.Номенклатура = Строка.Ссылка;
           
       КонецЦикла;
   КонецЦикла;
1 mikecool
 
27.12.11
10:52
Выгрузить()[0]
2 Ненавижу 1С
 
гуру
27.12.11
10:52
помещать туда одну строку, очевидно же
3 mikecool
 
27.12.11
10:52
делать соединение с подготовленной таблицей, в которой будет только одно соответствие
4 kkar
 
27.12.11
11:08
Ненавижу 1С, а как это конкретно сделать? Я новичок, не ругайтесь. Если вместо параметра просто всунуть текущую строку, он ругается на неверное задание параметра.
5 Ненавижу 1С
 
гуру
27.12.11
11:09
(4) ТЗ из одной строки конечно