Печатная форма в СКД

1. Nigelist 28.11.17 13:34 Сейчас в теме
Здравствуйте!

Пытаюсь сделать достаточно сложную печатную форму с группировками. Примерно такого вида:
---------------------------------------------------------------------------
|          |              |        |         |   Серия    | Срок годности |
| Штрихкод | Номенклатура | Кол-во | Ед.изм. |------------|---------------|
|          |              |        |         | Сертификат | Срок действия |
|-------------------------------------------------------------------------|
|                            Место хранения                               |
|-------------------------------------------------------------------------|
|                        Температурный режим #1                           |
|-------------------------------------------------------------------------|
|2000000211| Товар №1     | 155,00 | шт.     | 12032416   | 01.12.2020    |
|2000000213|              |        |         |------------|---------------|
|          |              |        |         | KZ48129599 | 01.12.2025    |
|-------------------------------------------------------------------------|
|2000000217| Товар №2     |        | шт.     | 1324       | 01.12.2020    |
|          |              |        |         |------------|---------------|
|          |              |        |         | KZ1232113  | 01.12.2025    |
|-------------------------------------------------------------------------|
|                        Температурный режим #2                           |
|-------------------------------------------------------------------------|
|2000000208| Товар №3     |        | шт.     | 082        | 01.12.2020    |
|2000000210|              |        |         |------------|---------------|
|          |              |        |         | KZ23492837 | 01.12.2025    |
|-------------------------------------------------------------------------|
|2000000221| Товар №4     |        | шт.     | 169        | 01.12.2020    |
|          |              |        |         |------------|---------------|
|          |              |        |         | KZ13424234 | 01.12.2025    |
---------------------------------------------------------------------------
Показать

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


Пытался сделать запросом и выводом в макет, но были проблемы с выводом штрихкода номенклатуры. У номенклатуры может быть несколько штрихкодов. Их надо выводить в одну строку. Посоветовали сделать печатную форму в СКД, якобы там есть удобная фишка "СоединитьСтроки". Но в СКД теперь затык в другом месте, не могу сделать нормальные группировки. Поля "МестоХранения" и "ТемпРежим" недоступны при создании группировки. Как правильно сделать? Саму печатную форму приложил к сообщению.
Прикрепленные файлы:
НакладнаяНаСборкуТовараСКД.epf
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dandykry 10 28.11.17 16:16 Сейчас в теме
Добрый день.
А почему не решили в печатной форме кодом обработать штрихкоды используя итоги в запросе? Думаю с СКД у вас будет больше трудностей.

К сожалению не знаю конфигурацию, в которой делаете работу, поэтому без консоли запросов правильно не напишу.

Замечания:
РегистрСведений.ЗначенияСвойствОбъектов.Объект - это составной тип. Желательно обработать его конструкцией ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект КАК Справочник.Номенклатура)
Не будет лишних неявных левых соединений с другими таблицами. Плюс не будет ругаться на недостаток прав доступа у пользователей, у которых они ограничены.
Nigelist; +1 Ответить
3. Nigelist 29.11.17 06:30 Сейчас в теме
(2) я пробовал. Но, когда делал запросом, были проблемы со штрихкодами. Если у номенклатуры есть несколько штрихкодов, то позиция дублировалась. А как сделать без дублей, не нашел. Пробовал даже отдельный запрос. Может есть смысл выгружать во временную таблицу? Но тогда непонятно как быть с группировками.
4. dandykry 10 29.11.17 08:19 Сейчас в теме
(3) Сделать итоги по
1) Документу (если предполагается печатать из списка несколько документов),
2) Месту хранения
3) Температурный режим
4) Номенклатура

выборкаДокументов= Запрос.выполнить().выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока  выборкаДокументов.Следующий() Цикл

//выводится главная шапка
|          |              |        |         |   Серия    | Срок годности |
| Штрихкод        | Номенклатура        | Кол-во | Ед.изм. |------------|---------------|
|          |              |        |         | Сертификат | Срок действия |

ВыборкаМестХранения = выборкаДокументов.Выбрать();

Пока ВыборкаМестХранения.Следующий() Цикл

//Выводится шапка места хранения

 ВыборкаТемпРежим =  ВыборкаМестХранения.Выбрать();

Пока   ВыборкаТемпРежим.Следующий() Цикл
    
//Выводится шапка температурного Режима

ВыборкаНоменклатура = ВыборкаТемпРежим.выбрать();
Штрихкоды = "";
Пока ВыборкаНоменклатура.Следующий() Цикл

 Штрихкоды = Штрихкоды + ВыборкаНоменклатура.Штрихкод + Символы.ВК;

КонецЦикла; 

//Заполняем строчку по номенклатуре
КонецЦикла;                   
КонецЦикла;
КонецЦикла;

Показать

P,S Писал от руки, поэтому мог где-то промахнуться, но смысл вроде изложил.
Если воспользуешься командой "Конструктор запроса с обработкой результата" и туда вставишь запрос с итогами, то он больше половины тебе сам напишет.

Оставьте свое сообщение

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