Как в итогах запроса не отбрасывать повторяющиеся позиции?

1. Nigelist 27.10.17 14:08 Сейчас в теме
Здравствуйте.

Есть запрос:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ПеремещениеТоваровТовары.Номенклатура КАК Номенклатура,
	ПеремещениеТоваровТовары.Количество КАК Количество,
	ПеремещениеТоваровТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	ПеремещениеТоваровТовары.СерияНоменклатуры КАК СерияН,
	МестаХраненияНоменклатуры.МестоХранения КАК МестоХранения,
	ЕСТЬNULL(ЗначенияСвойствОбъектов.Значение, "0°С - 25°С") КАК ТемпРежим,
	Штрихкоды.Штрихкод КАК Штрихкод
ИЗ
	Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаХраненияНоменклатуры КАК МестаХраненияНоменклатуры
		ПО ПеремещениеТоваровТовары.Номенклатура = МестаХраненияНоменклатуры.Номенклатура
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
		ПО ПеремещениеТоваровТовары.Номенклатура = ЗначенияСвойствОбъектов.Объект
			И (ЗначенияСвойствОбъектов.Свойство = &Свойство)
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды
		ПО ПеремещениеТоваровТовары.Номенклатура = Штрихкоды.Владелец
			И ПеремещениеТоваровТовары.ЕдиницаИзмерения = Штрихкоды.ЕдиницаИзмерения
ГДЕ
	ПеремещениеТоваровТовары.Ссылка = &Ссылка
	И МестаХраненияНоменклатуры.Склад = &Склад
	И Штрихкоды.ТипШтрихкода В(&ТипШК)
ИТОГИ ПО
	МестоХранения,
	ТемпРежим
Показать

Данные из которого заполняются в макет:
Ном = 0; // Нумерация в таблице
// Выборка места хранения
ВыборкаМестоХранения = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаМестоХранения.Следующий() Цикл
	// Выводим шапку
	ТабДок.Вывести(ОблЗаголовок);
	ТабДок.Вывести(ОблОтправитель);
	ТабДок.Вывести(ОблПолучатель);
	ОблМестоХран.Параметры.Заполнить(ВыборкаМестоХранения);
	ТабДок.Вывести(ОблМестоХран,ВыборкаМестоХранения.Уровень());
	// Выводим шапку таблицы
	ТабДок.Вывести(ОблШапкаТабл);
	
	// Заполняем таблицу товаров. Выборка температурного режима
	ВыборкаТемпРежим = ВыборкаМестоХранения.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	Пока ВыборкаТемпРежим.Следующий() Цикл
		ОблТемпРежим.Параметры.Заполнить(ВыборкаТемпРежим);
		ТабДок.Вывести(ОблТемпРежим,ВыборкаТемпРежим.Уровень());
		// Выборка детальных записей
		ВыборкаТовар = ВыборкаТемпРежим.Выбрать();
		
		ТабДок.НачатьАвтогруппировкуСтрок();
		Пока ВыборкаТовар.Следующий() Цикл
			// Проверка на пустые строки в таблице товаров
			Если Не ЗначениеЗаполнено(ВыборкаТовар.Номенклатура) Тогда
				Сообщить("В одной из строк не заполнено значение номенклатуры.",СтатусСообщения.Важное);
				Прервать;
			КонецЕсли;
			
			Ном = Ном + 1;
			Штрихкод = ""; // Штрихкод
			ОблСтрТаблицы.Параметры.НомерСтроки = Ном;
			ОблСтрТаблицы.Параметры.Номенклатура = ВыборкаТовар.Номенклатура;
			ОблСтрТаблицы.Параметры.НомерСерии = СокрЛП(ВыборкаТовар.СерияН.СерийныйНомер);
			ОблСтрТаблицы.Параметры.СрокГодности = ВыборкаТовар.СерияН.СрокГодности;
			ОблСтрТаблицы.Параметры.НомерСертификата = ВыборкаТовар.СерияН.Сертификат;
			ОблСтрТаблицы.Параметры.СрокДействияСерт = ВыборкаТовар.СерияН.СрокДействияСертификата;
			ОблСтрТаблицы.Параметры.Количество = ВыборкаТовар.Количество;
			ОблСтрТаблицы.Параметры.ЕдиницаИзмерения = ВыборкаТовар.ЕдиницаИзмерения;
			// Выборка штрихкода
			ВыборкаШК = ВыборкаТовар.Выбрать();
			Пока ВыборкаШК.Следующий() Цикл
				Штрихкод = ""; // Штрихкод
				Штрихкод = Штрихкод + ВыборкаШК.Штрихкод + РазделСтрок;
				ОблСтрТаблицы.Параметры.Штрихкод = Штрихкод;
			КонецЦикла;
			ТабДок.Вывести(ОблСтрТаблицы);
			ТабДок.ЗакончитьАвтогруппировкуСтрок();
		КонецЦикла;
	КонецЦикла;
	ТабДок.Вывести(ОблПодвал);
	// Вставляем разрыв страницы
	ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЦикла;
Показать

Есть 2 проблемы:
- Не заполнятся штрихкод.
- Отбрасываются повторяющиеся позиции номенклатуры с другой серией.

И не могу понять, где проблема. Смотрел результат запроса, позиции номенклатуры есть, штрихкоды есть. Но в макет часть данных уже не попадает.
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. VmvLer 27.10.17 14:13 Сейчас в теме
Запрос забросить в СКД

в ней ресурс Штрихкод с выражением СоединитьСтроки(Штрихкод,";","")

остальные варики, в том числе вывод в табл. док. в цикле, конечно имеют право на реализацию, но они ...от лукавого
3. Nigelist 27.10.17 14:18 Сейчас в теме
(2)
СоединитьСтроки

Так это печатная форма, там получится сделать с помощью СКД?
6. antz 27.10.17 15:15 Сейчас в теме
(3) Конечно. Можно запилить свой макет в СКД, можно результат выполнения СКД выгрузить в ТЗ.
4. nnsidorov22 27.10.17 14:38 Сейчас в теме
А для чего вы делаете:
 ВыборкаШК = ВыборкаТовар.Выбрать();

У вас же отсутствуют итоги по Номенклатуре. ВыборкаТовар у вас должна содержать детальные записи.
5. Nigelist 27.10.17 14:45 Сейчас в теме
(4) у товара может быть сразу несколько штрихкодов. Хочу, чтобы штрихкоды одного товара вставлялись в одну ячейку.
7. nnsidorov22 30.10.17 11:37 Сейчас в теме
(5)Попробуйте вот так:
ИТОГИ
	МАКСИМУМ(ЕдиницаИзмерения),
	МАКСИМУМ(СерияН),
	МАКСИМУМ(Количество)
ПО
    МестоХранения,
    ТемпРежим,
	Номенклатура


У вас добавляется итог по номенклатуре. А в детальных записях будут ваши штрих-коды.
8. Nigelist 31.10.17 13:49 Сейчас в теме
(7) когда выбираешь максимум, отбрасываются строки с меньшим количеством, но другой серией.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)