Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
09 ноя 2025, 18:28

Сортировка области печатной формы

Автор She1d, 28 окт 2025, 09:57

0 Пользователей и 1 гость просматривают эту тему.

She1d

Добрый день. Возник такой вопрос, как отсортировать в печатной форме область «Строки» по колонке «НоменклатураПредставление». Проблема в том, что вроде как и так существует сортировка по номенклатуре, но она не работает, к сожалению, не нашел, где же эта сортировка сбрасывается или просто не включена. Подскажите, пожалуйста, добрые люди. Ниже функция формирования ПФ
Функция ПечатьСборочныйЛист_Новый(МассивДокументов, ПараметрыПечати)

ТабличныйДокумент = Новый ТабличныйДокумент;

// определим тип печатаемых документов
Если МассивДокументов.Количество() = 0 Тогда
Возврат ТабличныйДокумент;
КонецЕсли;
ЭтоРеализация = ТипЗнч(МассивДокументов[0]) = Тип("ДокументСсылка.РасходнаяНакладная");

ОбъектыПечати = Новый СписокЗначений;
ОбъектыПечати = Новый СписокЗначений;
СписокБрендовНапитков = новый СписокЗначений;
// проверка только по первому документу, потому что в одном МЛ должны быть документы только по одной фирме
Если ЭтоРеализация И МассивДокументов[0].Фирма <> Справочники.Организации.НайтиПоКоду("2") Тогда        //Кристалл+
СписокБрендовНапитков.Добавить(Справочники.ТорговыеМарки.НайтиПоКоду("000001740"));   //004. ПИВНОЙ БИЗНЕС
КонецЕсли;
СписокБрендовНапитков.Добавить(Справочники.ТорговыеМарки.НайтиПоКоду("000004927"));   //ТМ ЧЕРНОГОЛОВКА


#Область ТекстЗапросаСборочныйЛистНапитки_Новый

ТекстЗапроса =
"ВЫБРАТЬ
| ДД_МаршрутныйЛистСостав.Ссылка КАК МаршрутныйЛист,
| ДД_МаршрутныйЛистСостав.Ссылка.Автотранспорт КАК Автотранспорт,
| ДД_МаршрутныйЛистСостав.Ссылка.Экспедитор КАК Экспедитор,
| ДД_МаршрутныйЛистСостав.Ссылка.ОбщийОбъем КАК ОбщийОбъем,
| ДД_МаршрутныйЛистСостав.Ссылка.ОбщийВесБрутто КАК ОбщийВесБрутто,
| ДД_МаршрутныйЛистСостав.Ссылка.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
| ДД_МаршрутныйЛистСостав.Ссылка.Автор КАК Автор,
| ДД_МаршрутныйЛистСостав.Ссылка.Номер КАК Номер,
| ДД_МаршрутныйЛистСостав.Ссылка.Дата КАК Дата,
| ДД_МаршрутныйЛистСостав.Ссылка.Редактор КАК Редактор,
| ДД_МаршрутныйЛистСостав.Реализация КАК Реализация,
| ДД_МаршрутныйЛистСостав.Ссылка.Водитель КАК Водитель,
| ДД_МаршрутныйЛистСостав.Реализация.СтруктурнаяЕдиница.ДД_ТорговаяТочка КАК ТорговаяТочка
|ПОМЕСТИТЬ МаршрутныеЛисты
|ИЗ
| Документ.ДД_МаршрутныйЛист.Состав КАК ДД_МаршрутныйЛистСостав
|ГДЕ
| ВЫБОР
| КОГДА &ЭтоРеализация
| ТОГДА ДД_МаршрутныйЛистСостав.Реализация В (&МассивОбъектов)
| И ДД_МаршрутныйЛистСостав.Ссылка.Проведен
| ИНАЧЕ ДД_МаршрутныйЛистСостав.Ссылка В (&МассивОбъектов)
| КОНЕЦ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПРЕДСТАВЛЕНИЕССЫЛКИ(МаршрутныеЛисты.МаршрутныйЛист) КАК МаршрутныйЛист,
| МаршрутныеЛисты.Номер КАК Номер,
| МаршрутныеЛисты.Дата КАК Дата,
| ПРЕДСТАВЛЕНИЕССЫЛКИ(МаршрутныеЛисты.СтруктурнаяЕдиница) КАК Склад,
| ПРЕДСТАВЛЕНИЕССЫЛКИ(МаршрутныеЛисты.Экспедитор) КАК Экспедитор,
| МаршрутныеЛисты.Водитель КАК Водитель,
| РасходнаяНакладная.Ссылка КАК РасходнаяНакладная,
| РасходнаяНакладная.Номер КАК НомерР,
| РасходнаяНакладная.Дата КАК ДатаР,
| РасходнаяНакладная.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
| ПРЕДСТАВЛЕНИЕССЫЛКИ(РасходнаяНакладная.Контрагент) КАК Контрагент,
| ПРЕДСТАВЛЕНИЕССЫЛКИ(РасходнаяНакладная.Склад) КАК СкладР,
| РасходнаяНакладная.АдресДоставки КАК АдресДоставки,
| РасходнаяНакладная.СтруктурнаяЕдиницаНазначения КАК СтруктурнаяЕдиницаНазначения,
| ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(РасходнаяНакладная.Контрагент) = ТИП(Справочник.СтруктурныеЕдиницы)
| ТОГДА ВЫРАЗИТЬ(РасходнаяНакладная.Контрагент КАК Справочник.СтруктурныеЕдиницы).ДД_ТорговаяТочка
| КОГДА РасходнаяНакладная.СтруктурнаяЕдиницаНазначения <> ЗНАЧЕНИЕ(Справочник.СтруктурныеЕдиницы.ПустаяСсылка)
| ТОГДА ВЫРАЗИТЬ(РасходнаяНакладная.СтруктурнаяЕдиницаНазначения КАК Справочник.СтруктурныеЕдиницы).ДД_ТорговаяТочка
| КОГДА ТИПЗНАЧЕНИЯ(РасходнаяНакладная.ДокОснование) = ТИП(Документ.Счет)
| ТОГДА ВЫРАЗИТЬ(РасходнаяНакладная.ДокОснование КАК Документ.Счет).ДД_ТорговаяТочка
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.ДД_ТорговыеТочки.ПустаяСсылка)
| КОНЕЦ КАК ТорговаяТочка,
| МаршрутныеЛисты.ТорговаяТочка КАК ТорговаяТочкаДок,
| ДД_ТорговыеТочки.Ссылка КАК ДДТочкаСсылка,
| РасходнаяНакладная.Договор КАК Договор,
| ЕСТЬNULL(ЗначенияСвойствОбъектов.Значение, ЛОЖЬ) КАК Служебный
|ПОМЕСТИТЬ Реквизиты
|ИЗ
| МаршрутныеЛисты КАК МаршрутныеЛисты
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная КАК РасходнаяНакладная
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
| ПО РасходнаяНакладная.Договор = ЗначенияСвойствОбъектов.Объект
| И (ЗначенияСвойствОбъектов.Свойство.Код = ""0000000615"")
| ПО МаршрутныеЛисты.Реализация = РасходнаяНакладная.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДД_ТорговыеТочки КАК ДД_ТорговыеТочки
| ПО (РасходнаяНакладная.Грузополучатель = ДД_ТорговыеТочки.Владелец)
| И (НЕ ДД_ТорговыеТочки.Ссылка.ПометкаУдаления)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПРЕДСТАВЛЕНИЕ(РасходнаяНакладнаяСостав.Номенклатура) КАК НоменклатураПредставление,
| РасходнаяНакладнаяСостав.Номенклатура КАК Номенклатура,
| РасходнаяНакладнаяСостав.Количество КАК Количество,
| РасходнаяНакладнаяСостав.Коэффициент КАК Коэффициент,
| РасходнаяНакладнаяСостав.ЕдиницаИзмерения КАК ЕдИзм,
| РасходнаяНакладнаяСостав.Сумма КАК Сумма,
| РасходнаяНакладнаяСостав.Ссылка КАК РасходнаяНакладная,
| РасходнаяНакладнаяСостав.Номенклатура.Артикул КАК Артикул,
| ВЫРАЗИТЬ(РасходнаяНакладнаяСостав.Номенклатура КАК Справочник.Номенклатура).ТорговаяМарка КАК ТорговаяМарка,
| ЕСТЬNULL(ШтриховыеКоды.Значение, 0) КАК ШтрихКод,
| РасходнаяНакладнаяСостав.ХарактеристикаПартия КАК ХарактеристикаПартия,
| ЕСТЬNULL(КоэффициентУпаковки.Значение, 0) КАК КоэффициентЯщик,
| ТорговыеМарки.ДД_НомерСклада КАК НомерСклада
|ПОМЕСТИТЬ Состав
|ИЗ
| Документ.РасходнаяНакладная.Состав КАК РасходнаяНакладнаяСостав
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ШтриховыеКоды
| ПО (РасходнаяНакладнаяСостав.Номенклатура = (ВЫРАЗИТЬ(ШтриховыеКоды.Объект КАК Справочник.Номенклатура)))
| И (ШтриховыеКоды.Свойство = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СвойстваОбъектов.ОсновнойШК))
| ЛЕВОЕ СОЕДИНЕНИЕ Реквизиты КАК Реквизиты
| ПО (Реквизиты.РасходнаяНакладная = РасходнаяНакладнаяСостав.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК КоэффициентУпаковки
| ПО (РасходнаяНакладнаяСостав.Номенклатура = (ВЫРАЗИТЬ(КоэффициентУпаковки.Объект КАК Справочник.Номенклатура)))
| И (КоэффициентУпаковки.Свойство.Наименование = ""Коэффициент упаковки"")
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ТорговыеМарки КАК ТорговыеМарки
| ПО РасходнаяНакладнаяСостав.Номенклатура.ТорговаяМарка = ТорговыеМарки.Ссылка
|ГДЕ
| РасходнаяНакладнаяСостав.Ссылка В
| (ВЫБРАТЬ
| Реквизиты.РасходнаяНакладная
| ИЗ
| Реквизиты КАК Реквизиты)
| И НЕ РасходнаяНакладнаяСостав.Номенклатура.ТорговаяМарка В ИЕРАРХИИ (&БрендНапитки)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Состав.Номенклатура КАК Номенклатура,
| ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект КАК Справочник.ЕдиницыИзмерения) КАК ЕдИзм,
| СУММА(ВЫРАЗИТЬ(ВЫБОР
| КОГДА ЗначенияСвойствОбъектов.Свойство = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СвойстваОбъектов.Высота)
| ТОГДА ЗначенияСвойствОбъектов.Значение
| ИНАЧЕ 0
| КОНЕЦ КАК ЧИСЛО)) КАК Высота,
| СУММА(ВЫРАЗИТЬ(ВЫБОР
| КОГДА ЗначенияСвойствОбъектов.Свойство = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СвойстваОбъектов.Ширина)
| ТОГДА ЗначенияСвойствОбъектов.Значение
| ИНАЧЕ 0
| КОНЕЦ КАК ЧИСЛО)) КАК Ширина,
| СУММА(ВЫРАЗИТЬ(ВЫБОР
| КОГДА ЗначенияСвойствОбъектов.Свойство = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СвойстваОбъектов.Длина)
| ТОГДА ЗначенияСвойствОбъектов.Значение
| ИНАЧЕ 0
| КОНЕЦ КАК ЧИСЛО)) КАК Длина,
| СУММА(ВЫРАЗИТЬ(ВЫБОР
| КОГДА ЗначенияСвойствОбъектов.Свойство = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СвойстваОбъектов.Брутто)
| ТОГДА ЗначенияСвойствОбъектов.Значение
| ИНАЧЕ 0
| КОНЕЦ КАК ЧИСЛО)) КАК Вес
|ПОМЕСТИТЬ СвойстваТовара
|ИЗ
| Состав КАК Состав
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
| ПО ((ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект КАК Справочник.ЕдиницыИзмерения)) = Состав.ЕдИзм)
| И (ЗначенияСвойствОбъектов.Свойство В (ЗНАЧЕНИЕ(ПланВидовХарактеристик.СвойстваОбъектов.Высота), ЗНАЧЕНИЕ(ПланВидовХарактеристик.СвойстваОбъектов.Ширина), ЗНАЧЕНИЕ(ПланВидовХарактеристик.СвойстваОбъектов.Длина), ЗНАЧЕНИЕ(ПланВидовХарактеристик.СвойстваОбъектов.Брутто)))
|
|СГРУППИРОВАТЬ ПО
| Состав.Номенклатура,
| ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект КАК Справочник.ЕдиницыИзмерения)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Реквизиты.МаршрутныйЛист КАК МаршрутныйЛист,
| Реквизиты.Контрагент КАК Контрагент,
| Реквизиты.Договор КАК Договор,
| Реквизиты.Служебный КАК Служебный,
| ВЫБОР
| КОГДА НЕ Реквизиты.ДДТочкаСсылка ЕСТЬ NULL
| ТОГДА Реквизиты.ДДТочкаСсылка.Наименование
| КОГДА НЕ Реквизиты.ТорговаяТочка = ЗНАЧЕНИЕ(Справочник.ДД_ТорговыеТочки.ПустаяСсылка)
| ТОГДА ПРЕДСТАВЛЕНИЕ(Реквизиты.ТорговаяТочка)
| ИНАЧЕ """"
| КОНЕЦ КАК ТорговаяТочка,
| Состав.НомерСклада КАК НомерСклада,
| ВЫБОР
| КОГДА Реквизиты.ТорговаяТочка = ЗНАЧЕНИЕ(Справочник.ДД_ТорговыеТочки.ПустаяСсылка)
| И Реквизиты.ДДТочкаСсылка ЕСТЬ NULL
| ТОГДА Реквизиты.АдресДоставки
| КОГДА НЕ Реквизиты.ДДТочкаСсылка ЕСТЬ NULL
| ТОГДА Реквизиты.ДДТочкаСсылка.Местоположение
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(Реквизиты.ТорговаяТочка.Местоположение)
| КОНЕЦ КАК АдресДоставки,
| Состав.Номенклатура КАК Номенклатура,
| Состав.НоменклатураПредставление КАК НоменклатураПредставление,
| Реквизиты.Номер КАК Номер,
| Реквизиты.Дата КАК Дата,
| Реквизиты.Склад КАК Склад,
| Реквизиты.НомерР КАК НомерР,
| Реквизиты.ДатаР КАК ДатаР,
| Реквизиты.СкладР КАК СкладР,
| Реквизиты.Экспедитор КАК Экспедитор,
| Реквизиты.Водитель КАК Водитель,
| Реквизиты.ТорговаяТочкаДок КАК ТорговаяТочкаДок,
| Состав.Количество * Состав.Коэффициент КАК Количество,
| Состав.Сумма КАК Сумма,
| Состав.РасходнаяНакладная КАК РасходнаяНакладная,
| Состав.Артикул КАК Артикул,
| Состав.ТорговаяМарка КАК ТорговаяМарка,
| Состав.ШтрихКод КАК ШтрихКод,
| СвойстваТовара.Высота КАК Высота,
| СвойстваТовара.Ширина КАК Ширина,
| СвойстваТовара.Длина КАК Длина,
| СвойстваТовара.Вес КАК Вес,
| СвойстваТовара.Высота * СвойстваТовара.Ширина * СвойстваТовара.Длина * Состав.Количество КАК Объем,
| СвойстваТовара.Вес * Состав.Количество КАК ВесБрутто,
| ВЫБОР
| КОГДА ЕСТЬNULL(Состав.КоэффициентЯщик, 1) = 0
| ТОГДА 0
| ИНАЧЕ ВЫРАЗИТЬ(Состав.Количество * Состав.Коэффициент / (ВЫРАЗИТЬ(Состав.КоэффициентЯщик КАК ЧИСЛО)) КАК ЧИСЛО(15, 3))
| КОНЕЦ КАК КоличествоУп,
| Состав.ХарактеристикаПартия КАК ХарактеристикаПартия,
| Состав.КоэффициентЯщик КАК КоэффициентЯщик
|ИЗ
| Состав КАК Состав
| ЛЕВОЕ СОЕДИНЕНИЕ СвойстваТовара КАК СвойстваТовара
| ПО Состав.Номенклатура = СвойстваТовара.Номенклатура
| И Состав.ЕдИзм = СвойстваТовара.ЕдИзм
| ЛЕВОЕ СОЕДИНЕНИЕ Реквизиты КАК Реквизиты
| ПО Состав.РасходнаяНакладная = Реквизиты.РасходнаяНакладная
|
|УПОРЯДОЧИТЬ ПО
| Номенклатура,
| Контрагент,
| АдресДоставки,
| ТорговаяТочка,
| СкладР,
| НомерСклада,
| ТорговаяМарка,
| МаршрутныйЛист,
| РасходнаяНакладная
|ИТОГИ
| МАКСИМУМ(Договор),
| МАКСИМУМ(Служебный),
| МАКСИМУМ(НоменклатураПредставление),
| МАКСИМУМ(Номер),
| МАКСИМУМ(Дата),
| МАКСИМУМ(Склад),
| МАКСИМУМ(НомерР),
| МАКСИМУМ(ДатаР),
| МАКСИМУМ(Экспедитор),
| МАКСИМУМ(Водитель),
| СУММА(Количество),
| СУММА(Сумма),
| МАКСИМУМ(Артикул),
| МАКСИМУМ(ШтрихКод),
| СУММА(Объем),
| СУММА(ВесБрутто),
| СУММА(КоличествоУп)
|ПО
| МаршрутныйЛист,
| Контрагент,
| АдресДоставки,
| ТорговаяТочка,
| СкладР,
| НомерСклада,
| Номенклатура,
| РасходнаяНакладная"; 

#КонецОбласти

Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ЭтоРеализация", ЭтоРеализация);
Запрос.УстановитьПараметр("МассивОбъектов", МассивДокументов);
Запрос.УстановитьПараметр("БрендНапитки", СписокБрендовНапитков);
Запрос.Текст = ТекстЗапроса;

РезультатЗапроса = Запрос.Выполнить();
ПервыйДокумент = Истина;
ПервыйНомерСклада = Истина;

ВыборкаМаршрутныйЛист = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ТекстНомера = "";
Пока ВыборкаМаршрутныйЛист.Следующий() Цикл
ТекстНомера = ТекстНомера + ?(ЗначениеЗаполнено(ТекстНомера), ", ", "") + ВыборкаМаршрутныйЛист.Номер;
КонецЦикла;

соотвНомера = Новый Соответствие;
Для Сч=1 По 2 Цикл
ПервыйДокумент = Истина;
ПервыйНомерСклада = Истина;

ТабличныйДокумент = Новый ТабличныйДокумент;
ВыборкаМаршрутныйЛист.Сбросить();

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

Пока ВыборкаМаршрутныйЛист.Следующий() Цикл
Если Не ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;

ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СборочныйЛист";

Макет = Документы.ДД_МаршрутныйЛист.ПолучитьМакет("СборочныйЛистНовый");

ОбластьМакетаПропуск = Макет.ПолучитьОбласть("Пропуск");
ОбластьМакетаПодвал =  Макет.ПолучитьОбласть("Подвал");

КодЯзыкаПечати = "ru";
Макет.КодЯзыкаМакета = КодЯзыкаПечати;

ЗаголовокФормы = НСтр("ru='Сборочный лист'", КодЯзыкаПечати);

НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;

ВыборкаКонтрагент = ВыборкаМаршрутныйЛист.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаКонтрагент.Следующий() Цикл
КонтрагентНаименование = ВыборкаКонтрагент.Контрагент;

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

ПервыйНомерАдреса = Истина;

Пока ВыборкаАдрес.Следующий() Цикл

ОбластьМакетаВесБруттоОбъем = Макет.ПолучитьОбласть("ВесБруттоОбъем");
ОбластьМакетаВесБруттоОбъем.Параметры.Заполнить(ВыборкаАдрес);

ТорговаяТочкаМП = ВыборкаАдрес.АдресДоставки;

ВыборкаНомерСклада =  ВыборкаАдрес.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "НомерСклада");

стрНомераСкладов = "";
Пока ВыборкаНомерСклада.Следующий() Цикл
стрНомераСкладов = стрНомераСкладов + ?(ЗначениеЗаполнено(стрНомераСкладов),", ","") + ВыборкаНомерСклада.НомерСклада;
КонецЦикла;
ВыборкаНомерСклада.Сбросить();

ВыборкаТорговаяТочка = ВыборкаАдрес.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаТорговаяТочка.Следующий() Цикл

ТорговаяТочкаНаименование = ВыборкаТорговаяТочка.ТорговаяТочка;

ВыборкаСкладР = ВыборкаТорговаяТочка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаСкладР.Следующий() Цикл

ПолноеНаименованиеСклада = ?(Не ЗначениеЗаполнено(ВыборкаСкладР.Склад), ВыборкаСкладР.СкладР, СтрШаблон("%1, %2", ВыборкаСкладР.Склад, ВыборкаСкладР.СкладР));

КлючАдреса = "" + КонтрагентНаименование + "," + ТорговаяТочкаНаименование + "," + СокрЛП(ВыборкаСкладР.СкладР);
СтраницаПакета = 0;
ВыборкаНомерСклада = ВыборкаСкладР.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

//Итог по складу
#Область ДанныеПоСкладу

Пока ВыборкаНомерСклада.Следующий() Цикл
Если Не ПервыйНомерСклада Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
СтраницаПакета = СтраницаПакета + 1;
Иначе
СтраницаПакета = 1;
КонецЕсли;

Если ПервыйНомерАдреса Тогда
ТабличныйДокумент.Вывести(ОбластьМакетаВесБруттоОбъем);
КонецЕсли;

ПервыйНомерСклада = Ложь;
ПервыйНомерАдреса = Ложь;

ОбластьМакетаЗагНач = Макет.ПолучитьОбласть("ЗаголовокНач");
ОбластьМакетаЗагНач.Параметры.ДатаДок = ВыборкаНомерСклада.Дата;
ОбластьМакетаЗагНач.Параметры.НомерДок = ВыборкаНомерСклада.Номер;
ОбластьМакетаЗагНач.Параметры.НомераСтраницПакета = СокрЛП(СтраницаПакета) + " из " + соотвНомера[КлючАдреса];

ТабличныйДокумент.Вывести(ОбластьМакетаЗагНач);

ОбластьМакетаЗаг = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакетаЗаг.Параметры.НомераГруппСклада = стрНомераСкладов;

ОбластьМакетаЗаг.Параметры.Заполнить(ВыборкаНомерСклада);
ОбластьМакетаЗаг.Параметры.Контрагент = КонтрагентНаименование;
ОбластьМакетаЗаг.Параметры.ТорговаяТочка = ТорговаяТочкаНаименование;
ОбластьМакетаЗаг.Параметры.АдресДоставки = СокрЛП(ТорговаяТочкаМП);
ОбластьМакетаЗаг.Параметры.Склад = ПолноеНаименованиеСклада;
//+++ГМ
Если ВыборкаНомерСклада.Служебный Тогда
ОбластьМакетаЗаг.Параметры.Служебный = "Служебный";
Иначе
ОбластьМакетаЗаг.Параметры.Служебный = "";
КонецЕсли;
//---ГМ
ТабличныйДокумент.Вывести(ОбластьМакетаЗаг);

ОбластьМакетаШапка = Макет.ПолучитьОбласть("Шапка");

ТабличныйДокумент.Вывести(ОбластьМакетаШапка);

Количество = 0;

ОбластьМакета = Макет.ПолучитьОбласть("Строка");

ОбластьМакетаИтог = Макет.ПолучитьОбласть("Итого");
ОбластьМакетаИтог.Параметры.Заполнить(ВыборкаНомерСклада);

//++ГМ
ОбластьМакетаШтрихКодДокумента = Макет.ПолучитьОбласть("ШтрихКодДокумента");
ДанныеДокумента = "";
//--ГМ

ВыборкаНоменклатура = ВыборкаНомерСклада.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаНоменклатура.Следующий() Цикл
ВыборкаРеализации = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
стрНомераДок = "";
Пока ВыборкаРеализации.Следующий() Цикл
стрНомераДок = стрНомераДок
+ ?(ЗначениеЗаполнено(стрНомераДок), ", ", "")
+ ВыборкаРеализации.НомерР
+ " от "
+ Формат(ВыборкаРеализации.ДатаР, "ДФ=dd.MM.yy");

ДанныеДокумента = XMLСтрока(ВыборкаРеализации.РасходнаяНакладная)
КонецЦикла;

ОбластьМакета.Параметры.Заполнить(ВыборкаНоменклатура);

массивДок = Новый Массив;
массивДок.Добавить(ОбластьМакета);
массивДок.Добавить(ОбластьМакетаПропуск);
массивДок.Добавить(ОбластьМакетаИтог);
//++ГМ
массивДок.Добавить(ОбластьМакетаШтрихКодДокумента);
//--ГМ

ОбластьМакета.Параметры.НомерСтроки = Количество + 1;
Если Не ТабличныйДокумент.ПроверитьВывод(массивДок) Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
СтраницаПакета = СтраницаПакета + 1;

ОбластьМакетаЗагНач.Параметры.НомераСтраницПакета = СокрЛП(СтраницаПакета) + " из " + соотвНомера[КлючАдреса];
ТабличныйДокумент.Вывести(ОбластьМакетаЗагНач);
ТабличныйДокумент.Вывести(ОбластьМакетаШапка);
КонецЕсли;

ОбластьМакета.Параметры.стрНомераДок = стрНомераДок;

ТабличныйДокумент.Вывести(ОбластьМакета);
Количество = Количество+ 1;

КонецЦикла;

ТабличныйДокумент.Вывести(ОбластьМакетаИтог);

//++ГМ
ФормированиеПечатныхФорм.ВывестиШтрихКодДокумента(ДанныеДокумента, ОбластьМакетаШтрихКодДокумента);
ТабличныйДокумент.Вывести(ОбластьМакетаШтрихКодДокумента);
//--ГМ

ТабличныйДокумент.Вывести(ОбластьМакетаПропуск);

КонецЦикла;

#КонецОбласти

Если Сч = 1 Тогда
соотвНомера[КлючАдреса] = СтраницаПакета;
КонецЕсли;

//Итог по накладной
#Область ИтогПоНакладной

ВыборкаНомерСклада.Сбросить();
ВыборкаРеализации = ВыборкаСкладР.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "РасходнаяНакладная");
ОбластьМакета = Макет.ПолучитьОбласть("ИтогСтрока");
стр = "По накладной № %1 на сумму %2 р., (итого кво %3), (итого кво ""уп"" %4)";
Пока ВыборкаРеализации.Следующий() Цикл
массивДок = Новый Массив;
массивДок.Добавить(ОбластьМакета);
массивДок.Добавить(ОбластьМакетаПропуск);
массивДок.Добавить(ОбластьМакетаПропуск);
массивДок.Добавить(ОбластьМакетаПодвал);

Если Не ТабличныйДокумент.ПроверитьВывод(ОбластьМакета) Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
СтраницаПакета = СтраницаПакета + 1;
Если Сч = 1 Тогда
соотвНомера[КлючАдреса] = СтраницаПакета;
КонецЕсли;

ТабличныйДокумент.Вывести(ОбластьМакетаВесБруттоОбъем);
ОбластьМакетаЗагНач.Параметры.НомераСтраницПакета = СокрЛП(СтраницаПакета) + " из " + соотвНомера[КлючАдреса];
ТабличныйДокумент.Вывести(ОбластьМакетаЗагНач);
ТабличныйДокумент.Вывести(ОбластьМакетаЗаг);
КонецЕсли;

ОбластьМакета.Параметры.ТекстИтогаНакладной = СтрШаблон(стр,
ВыборкаРеализации.НомерР + " от " + ВыборкаРеализации.ДатаР,
ВыборкаРеализации.Сумма,
ВыборкаРеализации.Количество,
ВыборкаРеализации.КоличествоУп);

ТабличныйДокумент.Вывести(ОбластьМакета);
КонецЦикла;

ТабличныйДокумент.Вывести(ОбластьМакетаПропуск);

#КонецОбласти

КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЦикла;

ОбластьМакета = Макет.ПолучитьОбласть("Пропуск");

ТабличныйДокумент.Вывести(ОбластьМакета);

ОбластьМакета = Макет.ПолучитьОбласть("Подвал");

ТабличныйДокумент.Вывести(ОбластьМакета);


ГМ_УправлениеПечатьюСервер.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ВыборкаМаршрутныйЛист.МаршрутныйЛист);

КонецЦикла;

КонецЦикла;

ТабличныйДокумент.ВерхнийКолонтитул.Выводить          = Истина;
ТабличныйДокумент.ВерхнийКолонтитул.НачальнаяСтраница = 1;
ТабличныйДокумент.ВерхнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Низ;
ТабличныйДокумент.ВерхнийКолонтитул.ТекстВЦентре = ТекстНомера;
ТабличныйДокумент.ВерхнийКолонтитул.ТекстСлева = ТекущаяДата();
ТабличныйДокумент.ВерхнийКолонтитул.ТекстСправа = Пользователи.ТекущийПользователь();


ТабличныйДокумент.НижнийКолонтитул.Выводить          = Истина;
ТабличныйДокумент.НижнийКолонтитул.НачальнаяСтраница = 1;
ТабличныйДокумент.НижнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Низ;
ТабличныйДокумент.НижнийКолонтитул.ТекстСправа = "[&НомерСтраницы] из [&СтраницВсего]";

//ТабличныйДокумент.АвтоМасштаб = Истина;
//ТабличныйДокумент.ПолеСверху = 0;
//ТабличныйДокумент.ПолеСлева = 0;
//ТабличныйДокумент.ПолеСнизу = 0;
//ТабличныйДокумент.ПолеСправа = 0;

Возврат ТабличныйДокумент;

КонецФункции // ()

LexaK

She1d, вот в этой таблице
   |ПОМЕСТИТЬ Составпопробуйте включить принудительную сортировку
Цитировать|ГДЕ
    |    РасходнаяНакладнаяСостав.Ссылка В
    |            (ВЫБРАТЬ
    |                Реквизиты.РасходнаяНакладная
    |            ИЗ
    |                Реквизиты КАК Реквизиты)
    |    И НЕ РасходнаяНакладнаяСостав.Номенклатура.ТорговаяМарка В ИЕРАРХИИ (&БрендНапитки)
    |
   |Упорядочить по 1
    |;

если помогло нажмите: Спасибо!

Теги: ерп 8.3 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск