Как правильно заполнить колонки в печатной форме?

1. I_train 26.09.21 15:51 Сейчас в теме
У меня есть код, который заполняет табличный документ номенклатурой и ее штрихкодами, и не как не удается правильно сопоставить номенклатуру и ее штрихкод. Если вставлю вывод строки как на фото №1 то выводится только последняя номенклатура, но штрихкоды все в правильном порядке, а если укажу как на фото №2 то вообще нет штрихов, можно ли это как то нормально сопоставить?
	ВыборкаТабличнойЧасти = СсылкаНаОбъект.Товары;
	Для каждого СтрокаТабличнойЧасти Из ВыборкаТабличнойЧасти Цикл
		
		СтруктураСтроки = дкПолучитьПредставлениеДанныхТоварнойСтроки(СтрокаТабличнойЧасти,Права);
		ОбластьСтрока.Параметры.Заполнить(СтруктураСтроки);
        ОбластьСтрока.Параметры.ДатаПоставки = СтрокаТабличнойЧасти.ДатаПоставки;
		ОбластьСтрока.Параметры.Коэффициент = СтрокаТабличнойЧасти.Коэффициент;
	КонецЦикла;	
		Запрос = Новый Запрос;		
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	ШтрихКоды.ШтрихКод КАК ШтрихКод,
		|	ЗаказВнутреннийТовары.Номенклатура КАК Номенклатура,
		|	ШтрихКоды.ОсновнойШтрихкод КАК ОсновнойШтрихкод
		|ИЗ
		|	Документ.ЗаказВнутренний.Товары КАК ЗаказВнутреннийТовары
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихКоды КАК ШтрихКоды
		|		ПО (ШтрихКоды.Объект = ЗаказВнутреннийТовары.Номенклатура)
		|ГДЕ
		|	ШтрихКоды.Запрет <> &Запрет
		|	И ЗаказВнутреннийТовары.Ссылка = &ТоварДок
		|ИТОГИ
		|	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ОсновнойШтрихкод)
		|ПО
		|	Номенклатура,
		|	ШтрихКод";
	
		
		Запрос.УстановитьПараметр("Запрет", Истина);		
		Запрос.УстановитьПараметр("ТоварДок", СсылкаНаОбъект);	
		РезультатЗапроса = Запрос.Выполнить();
		ТаблицаЗнач = Запрос.Выполнить().Выгрузить();
		ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Номенклатура");
		Пока ВыборкаНоменклатура.Следующий() Цикл
		ОбластьСтрока.Параметры.Штрихкод = "";	
		ВыборкаШтрихКоды = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"ШтрихКод");
		Пока ВыборкаШтрихКоды.Следующий() Цикл
			ОбластьСтрока.Параметры.Штрихкод = ВыборкаШтрихКоды.Штрихкод + ", " + ОбластьСтрока.Параметры.Штрихкод;
		КонецЦикла;
	КонецЦикла;
Показать
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
4. provadyuga 99 26.09.21 18:10 Сейчас в теме
(3)
штрихкодвы все выводятся, только не знаю как сопоставить штрихкоды и номенклатура

Тогда сначала запрос, а потом перебираете строки ТЧ
    Запрос = Новый Запрос;        
    Запрос.Текст = 
    "ВЫБРАТЬ
    |    ШтрихКоды.ШтрихКод КАК ШтрихКод,
    |    ЗаказВнутреннийТовары.Номенклатура КАК Номенклатура,
    |    ШтрихКоды.ОсновнойШтрихкод КАК ОсновнойШтрихкод
    |ИЗ
    |    Документ.ЗаказВнутренний.Товары КАК ЗаказВнутреннийТовары
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихКоды КАК ШтрихКоды
    |        ПО (ШтрихКоды.Объект = ЗаказВнутреннийТовары.Номенклатура)
    |ГДЕ
    |    ШтрихКоды.Запрет <> &Запрет
    |    И ЗаказВнутреннийТовары.Ссылка = &ТоварДок
    |ИТОГИ
    |    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ОсновнойШтрихкод)
    |ПО
    |    Номенклатура,
    |    ШтрихКод";

    
    Запрос.УстановитьПараметр("Запрет", Истина);        
    Запрос.УстановитьПараметр("ТоварДок", СсылкаНаОбъект);    
    РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Номенклатура");
	
   ВыборкаТабличнойЧасти = СсылкаНаОбъект.Товары;
    Для каждого СтрокаТабличнойЧасти Из ВыборкаТабличнойЧасти Цикл
        
        СтруктураСтроки = дкПолучитьПредставлениеДанныхТоварнойСтроки(СтрокаТабличнойЧасти,Права);
        ОбластьСтрока.Параметры.Заполнить(СтруктураСтроки);
        ОбластьСтрока.Параметры.ДатаПоставки = СтрокаТабличнойЧасти.ДатаПоставки;
        ОбластьСтрока.Параметры.Коэффициент = СтрокаТабличнойЧасти.Коэффициент;
		
		Номенклатура = СтрокаТабличнойЧасти.Номенклатура;
		
		Отбор = Новый Структура;
		Отбор.Вставить("Номенклатура", Номенклатура);
 
                ОбластьСтрока.Параметры.Штрихкод = "";

		Если ВыборкаНоменклатура.НайтиСледующий(Отбор) Тогда
			ВыборкаШтрихКоды = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам ,"ШтрихКод");
			
			Пока ВыборкаШтрихКоды.Следующий() Цикл
				
				ОбластьСтрока.Параметры.Штрихкод = ВыборкаДетальныеЗаписи.Штрихкод + ", " + ОбластьСтрока.Параметры.Штрихкод;
				
			КонецЦикла;
			
		КонецЕсли;
		
    КонецЦикла;    	
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. provadyuga 99 26.09.21 17:13 Сейчас в теме
Наверное по группировке "Штрихкоды" не выводятся сами штрихкоды, а выводится количество различные.
Попробуйте с этим запросом
Запрос.Текст = 
        "ВЫБРАТЬ
        |    ШтрихКоды.ШтрихКод КАК ШтрихКод,
        |    ЗаказВнутреннийТовары.Номенклатура КАК Номенклатура,
        |    ШтрихКоды.ОсновнойШтрихкод КАК ОсновнойШтрихкод,
        |	 0 КАК Ноль
        |ИЗ
        |    Документ.ЗаказВнутренний.Товары КАК ЗаказВнутреннийТовары
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихКоды КАК ШтрихКоды
        |        ПО (ШтрихКоды.Объект = ЗаказВнутреннийТовары.Номенклатура)
        |ГДЕ
        |    ШтрихКоды.Запрет <> &Запрет
        |    И ЗаказВнутреннийТовары.Ссылка = &ТоварДок
        |ИТОГИ
        |    СУММА(Ноль)
        |ПО
        |    Номенклатура,
        |    ШтрихКод";
Показать
3. I_train 26.09.21 17:20 Сейчас в теме
(2) штрихкодвы все выводятся, только не знаю как сопоставить штрихкоды и номенклатура
4. provadyuga 99 26.09.21 18:10 Сейчас в теме
(3)
штрихкодвы все выводятся, только не знаю как сопоставить штрихкоды и номенклатура

Тогда сначала запрос, а потом перебираете строки ТЧ
    Запрос = Новый Запрос;        
    Запрос.Текст = 
    "ВЫБРАТЬ
    |    ШтрихКоды.ШтрихКод КАК ШтрихКод,
    |    ЗаказВнутреннийТовары.Номенклатура КАК Номенклатура,
    |    ШтрихКоды.ОсновнойШтрихкод КАК ОсновнойШтрихкод
    |ИЗ
    |    Документ.ЗаказВнутренний.Товары КАК ЗаказВнутреннийТовары
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихКоды КАК ШтрихКоды
    |        ПО (ШтрихКоды.Объект = ЗаказВнутреннийТовары.Номенклатура)
    |ГДЕ
    |    ШтрихКоды.Запрет <> &Запрет
    |    И ЗаказВнутреннийТовары.Ссылка = &ТоварДок
    |ИТОГИ
    |    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ОсновнойШтрихкод)
    |ПО
    |    Номенклатура,
    |    ШтрихКод";

    
    Запрос.УстановитьПараметр("Запрет", Истина);        
    Запрос.УстановитьПараметр("ТоварДок", СсылкаНаОбъект);    
    РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Номенклатура");
	
   ВыборкаТабличнойЧасти = СсылкаНаОбъект.Товары;
    Для каждого СтрокаТабличнойЧасти Из ВыборкаТабличнойЧасти Цикл
        
        СтруктураСтроки = дкПолучитьПредставлениеДанныхТоварнойСтроки(СтрокаТабличнойЧасти,Права);
        ОбластьСтрока.Параметры.Заполнить(СтруктураСтроки);
        ОбластьСтрока.Параметры.ДатаПоставки = СтрокаТабличнойЧасти.ДатаПоставки;
        ОбластьСтрока.Параметры.Коэффициент = СтрокаТабличнойЧасти.Коэффициент;
		
		Номенклатура = СтрокаТабличнойЧасти.Номенклатура;
		
		Отбор = Новый Структура;
		Отбор.Вставить("Номенклатура", Номенклатура);
 
                ОбластьСтрока.Параметры.Штрихкод = "";

		Если ВыборкаНоменклатура.НайтиСледующий(Отбор) Тогда
			ВыборкаШтрихКоды = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам ,"ШтрихКод");
			
			Пока ВыборкаШтрихКоды.Следующий() Цикл
				
				ОбластьСтрока.Параметры.Штрихкод = ВыборкаДетальныеЗаписи.Штрихкод + ", " + ОбластьСтрока.Параметры.Штрихкод;
				
			КонецЦикла;
			
		КонецЕсли;
		
    КонецЦикла;    	
Показать
5. provadyuga 99 26.09.21 18:12 Сейчас в теме
(3) А можно было бы все данные для отчета, включая колонки "Дата поставки", "Коэффициент" получать запросом.
6. I_train 26.09.21 18:35 Сейчас в теме
Так они не просто записываются в табличный документ, а с начало в эту функцию залетают и а там целое полотно логики какой то
СтруктураСтроки = дкПолучитьПредставлениеДанныхТоварнойСтроки(СтрокаТабличнойЧасти,Права);
Оставьте свое сообщение

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