Объединение Справочник.Номенклатура и РегистрСведений.ШтрихкодыНоменклатуры

1. Max0n57 25.10.23 13:00 Сейчас в теме
Здравствуйте, уважаемые форумчане. Как мне изменить обработку таблицы значений, полученной из результата запроса так, чтобы в колонке штрихкоды были все штрихкоды номенклатуры, а номенклатура с несколькими штрихкодами одна (как на скриншоте).
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	Номенклатура1.Ссылка КАК Номенклатура,
	|	ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод
	|ИЗ
	|	Справочник.Номенклатура КАК Номенклатура1
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
	|		ПО (Номенклатура1.Ссылка = ШтрихкодыНоменклатуры.Номенклатура)
	|ГДЕ
	|	НЕ Номенклатура1.ЭтоГруппа
	|
	|УПОРЯДОЧИТЬ ПО
	|	Номенклатура1.Ссылка
	|ИТОГИ ПО
	|	Номенклатура";
Показать

РезультатЗапроса = Запрос.Выполнить().Выгрузить();
	//общее количество строк
	Строки = РезультатЗапроса.Количество();
	//массив для проверки совпадаений
	лкДанные = Новый Массив;
	Пока Строки > 0 Цикл
		Строки = Строки - 1;
		лкКлюч = РезультатЗапроса[Строки].Номенклатура;
		Если лкДанные.Найти(лкКлюч) = Неопределено Тогда
			//таких данных еще не было, добавляем
			лкДанные.Добавить(лкКлюч);
		Иначе
			//уже были такие данные, удаляем строку
			
			РезультатЗапроса.Удалить(РезультатЗапроса[Строки]);
		КонецЕсли;

	КонецЦикла;
Показать
Прикрепленные файлы:
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 25.10.23 13:31 Сейчас в теме
(1) ОбходРезультатаЗапроса.ПоГруппировкам
3. Max0n57 25.10.23 13:56 Сейчас в теме
(2)Спасибо, получается не выгружать в ТЗ?
Что- то такое делать?
	РезультатЗапроса = Запрос.Выполнить();
	ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура, Штрихкод");
    Пока ВыборкаНоменклатура.Следующий() Цикл
	
	
	КонецЦикла;
4. nomad_irk 76 25.10.23 14:11 Сейчас в теме
(1)Судя по скриншоту, нужно сделать:

"ВЫБРАТЬ
|    СпрНоменклатура.Ссылка КАК Номенклатура,
|    МИНИМУМ(ЕСТЬNULL(ШтрихкодыНоменклатуры.Штрихкод, "")) КАК Штрихкод
|ИЗ
|    Справочник.Номенклатура КАК СпрНоменклатура
|        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
|        ПО (СпрНоменклатура1.Ссылка = ШтрихкодыНоменклатуры.Номенклатура)
|ГДЕ
|    НЕ СпрНоменклатура.ЭтоГруппа
|СГРУППИРОВАТЬ ПО
|    СпрНоменклатура.Ссылка"
Показать


и постобработки не понадобится совсем.
5. Max0n57 25.10.23 14:34 Сейчас в теме
(4)Спасибо. Дело в том, что мне нужно получить ТЗ со всей номенклатурой с соответствующими ШК. Например, чтобы в строке В колонке "Номенклатура" была одна, а в колонке "Штрихкод" были все имеющиеся ШК у данной номенклатуры, а не как у меня на скрине.
6. nomad_irk 76 25.10.23 14:45 Сейчас в теме
(5)Тогда ответ в (2)
Постобработка будет

РезультатЗапроса = Запрос.Выполнить();
ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаНоменклатура.Следующий() Цикл
      //Получаем номенклатуру
      ВыборкаШК = ВыборкаНоменклатура.Выбрать();
      Пока ВыборкаШК.Следующий() Цикл
      //Получаем все ее ШК
      КонецЦикла;
КонецЦикла;
Показать
7. Max0n57 25.10.23 15:20 Сейчас в теме
(6)Спасибо, скажите, пожалуйста, я же не могу ничего менять в выборке, верно? Мне выборку использовать для чего можно?
8. nomad_irk 76 25.10.23 15:27 Сейчас в теме
(7)менять выборку нельзя
выборку обычно используют, чтобы по ее данным что-то сделать с другими объектами.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот