Здравствуйте!
Пытаюсь сделать достаточно сложную печатную форму с группировками. Примерно такого вида:
Вот запрос:
Пытался сделать запросом и выводом в макет, но были проблемы с выводом штрихкода номенклатуры. У номенклатуры может быть несколько штрихкодов. Их надо выводить в одну строку. Посоветовали сделать печатную форму в СКД, якобы там есть удобная фишка "СоединитьСтроки". Но в СКД теперь затык в другом месте, не могу сделать нормальные группировки. Поля "МестоХранения" и "ТемпРежим" недоступны при создании группировки. Как правильно сделать? Саму печатную форму приложил к сообщению.
Пытаюсь сделать достаточно сложную печатную форму с группировками. Примерно такого вида:
---------------------------------------------------------------------------
| | | | | Серия | Срок годности |
| Штрихкод | Номенклатура | Кол-во | Ед.изм. |------------|---------------|
| | | | | Сертификат | Срок действия |
|-------------------------------------------------------------------------|
| Место хранения |
|-------------------------------------------------------------------------|
| Температурный режим #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
По теме из базы знаний
- Внешние печатные формы для Зарплата и Управление персоналом 3.1. ЗУП и ЗиКГУ
- Макет оформления "Печатные формы" для отчетов на СКД (черно-белый)
- Внешние печатные формы для ERP Управление предприятием 2
- Использование отчета как печатной формы документа
- Конструктор печатных форм (PrintWizard). Часть 1: Печатные формы. А что, собственно, не так?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Добрый день.
А почему не решили в печатной форме кодом обработать штрихкоды используя итоги в запросе? Думаю с СКД у вас будет больше трудностей.
К сожалению не знаю конфигурацию, в которой делаете работу, поэтому без консоли запросов правильно не напишу.
Замечания:
РегистрСведений.ЗначенияСвойствОбъектов.Объект - это составной тип. Желательно обработать его конструкцией ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект КАК Справочник.Номенклатура)
Не будет лишних неявных левых соединений с другими таблицами. Плюс не будет ругаться на недостаток прав доступа у пользователей, у которых они ограничены.
А почему не решили в печатной форме кодом обработать штрихкоды используя итоги в запросе? Думаю с СКД у вас будет больше трудностей.
К сожалению не знаю конфигурацию, в которой делаете работу, поэтому без консоли запросов правильно не напишу.
Замечания:
РегистрСведений.ЗначенияСвойствОбъектов.Объект - это составной тип. Желательно обработать его конструкцией ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект КАК Справочник.Номенклатура)
Не будет лишних неявных левых соединений с другими таблицами. Плюс не будет ругаться на недостаток прав доступа у пользователей, у которых они ограничены.
(2) я пробовал. Но, когда делал запросом, были проблемы со штрихкодами. Если у номенклатуры есть несколько штрихкодов, то позиция дублировалась. А как сделать без дублей, не нашел. Пробовал даже отдельный запрос. Может есть смысл выгружать во временную таблицу? Но тогда непонятно как быть с группировками.
(3) Сделать итоги по
1) Документу (если предполагается печатать из списка несколько документов),
2) Месту хранения
3) Температурный режим
4) Номенклатура
P,S Писал от руки, поэтому мог где-то промахнуться, но смысл вроде изложил.
Если воспользуешься командой "Конструктор запроса с обработкой результата" и туда вставишь запрос с итогами, то он больше половины тебе сам напишет.
1) Документу (если предполагается печатать из списка несколько документов),
2) Месту хранения
3) Температурный режим
4) Номенклатура
выборкаДокументов= Запрос.выполнить().выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока выборкаДокументов.Следующий() Цикл
//выводится главная шапка
| | | | | Серия | Срок годности |
| Штрихкод | Номенклатура | Кол-во | Ед.изм. |------------|---------------|
| | | | | Сертификат | Срок действия |
ВыборкаМестХранения = выборкаДокументов.Выбрать();
Пока ВыборкаМестХранения.Следующий() Цикл
//Выводится шапка места хранения
ВыборкаТемпРежим = ВыборкаМестХранения.Выбрать();
Пока ВыборкаТемпРежим.Следующий() Цикл
//Выводится шапка температурного Режима
ВыборкаНоменклатура = ВыборкаТемпРежим.выбрать();
Штрихкоды = "";
Пока ВыборкаНоменклатура.Следующий() Цикл
Штрихкоды = Штрихкоды + ВыборкаНоменклатура.Штрихкод + Символы.ВК;
КонецЦикла;
//Заполняем строчку по номенклатуре
КонецЦикла;
КонецЦикла;
КонецЦикла;
ПоказатьP,S Писал от руки, поэтому мог где-то промахнуться, но смысл вроде изложил.
Если воспользуешься командой "Конструктор запроса с обработкой результата" и туда вставишь запрос с итогами, то он больше половины тебе сам напишет.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот