![]() |
|
Сортировка в печатной форме | ☑ | ||
---|---|---|---|---|
0
ToyoCor
25.05.23
✎
12:36
|
Добрый день! Есть печатная форма https://ibb.co/QF54p8c
Подскажите, пожалуйста, как сделать сортировку описания по возрастанию. СформироватьПечатнуюФормуСчетНаОплатуФункция СформироватьПечатнуюФормуСчетНаОплату(СтруктураТипов, МассивОбъектов, ПараметрыПечати) Экспорт УстановитьПривилегированныйРежим(Истина); ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СЧЕТНАОПЛАТУ"; НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1; КолонкаКодов = ФормированиеПечатныхФорм.ИмяДополнительнойКолонки(); ИспользованиеУпаковок = ПолучитьФункциональнуюОпцию("ИспользоватьУпаковкиНоменклатуры"); Запрос = Новый Запрос( "ВЫБРАТЬ РАЗЛИЧНЫЕ | ЗаказКлиента.Ссылка КАК Ссылка, | ЗаказКлиента.ГИГ_ЮрЛицо КАК Организация, | ЗаказКлиента.Контрагент КАК Контрагент, | ЗаказКлиента.Номер КАК Номер, | ЗаказКлиента.Дата КАК Дата, | ЗаказКлиента.БанковскийСчет КАК БанковскийСчет |ИЗ | Документ.ЗаказКлиента КАК ЗаказКлиента |ГДЕ | ЗаказКлиента.Ссылка В(&МассивОбъектов) | |УПОРЯДОЧИТЬ ПО | Ссылка |АВТОУПОРЯДОЧИВАНИЕ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЗаказКлиентаТовары.Номенклатура КАК Номенклатура, | НоменклатураДополнительныеРеквизиты.Значение КАК МодельТовара |ПОМЕСТИТЬ ВТ_ДопРеквизитУпорядочивания |ИЗ | Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты | ПО ЗаказКлиентаТовары.Номенклатура = НоменклатураДополнительныеРеквизиты.Ссылка |ГДЕ | НоменклатураДополнительныеРеквизиты.Свойство.Наименование = ""ТДТ_Модель товара"" | И ЗаказКлиентаТовары.Ссылка В(&МассивОбъектов) | |СГРУППИРОВАТЬ ПО | ЗаказКлиентаТовары.Номенклатура, | НоменклатураДополнительныеРеквизиты.Значение |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Товары.Ссылка КАК Ссылка, | &ТекстЗапросаНаименованиеЕдиницыИзмерения КАК ПредставлениеЕдининицыИзмеренияУпаковки, | ПРЕДСТАВЛЕНИЕ(Товары.Номенклатура.ЕдиницаИзмерения) КАК ПредставлениеБазовойЕдиницыИзмерения, | Товары.КоличествоУпаковок КАК КоличествоУпаковок, | Товары.Количество КАК Количество, | Товары.Номенклатура.Код КАК Код, | Товары.Номенклатура.Артикул КАК Артикул, | Товары.Номенклатура.НаименованиеПолное КАК Номенклатура, | Товары.Характеристика.НаименованиеПолное КАК Характеристика, | ВЫБОР | КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1 | ТОГДА НЕОПРЕДЕЛЕНО | ИНАЧЕ Товары.Упаковка.Наименование | КОНЕЦ КАК Упаковка, | Товары.Ссылка.Партнер КАК Партнер, | Товары.Номенклатура.ГИГ_МодельОсновногоУстройства КАК МодельОсновногоУстройства, | ВТ_ДопРеквизитУпорядочивания.МодельТовара КАК МодельТовара, | Товары.Номенклатура КАК НоменклатураСсылка, | Товары.Сумма КАК Сумма, | Товары.Номенклатура.Родитель КАК ГруппаСписка, | Товары.Номенклатура.НаименованиеПолное КАК НаименованиеПолное, | ВЫБОР | КОГДА &ОтображатьСкидки | ТОГДА Товары.Цена | ИНАЧЕ Товары.Сумма / Товары.КоличествоУпаковок | КОНЕЦ КАК Цена |ИЗ | Документ.ЗаказКлиента.Товары КАК Товары | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ДопРеквизитУпорядочивания КАК ВТ_ДопРеквизитУпорядочивания | ПО Товары.Номенклатура = ВТ_ДопРеквизитУпорядочивания.Номенклатура |ГДЕ | Товары.Ссылка В(&МассивОбъектов) | И Товары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)) | И Товары.Отменено = ЛОЖЬ | |УПОРЯДОЧИТЬ ПО | Ссылка, | МодельОсновногоУстройства, | МодельТовара, | Номенклатура |ИТОГИ ПО | Ссылка, | МодельОсновногоУстройства"); Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки", Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки( "Товары.Упаковка", "Товары.Номенклатура")); Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаНаименованиеЕдиницыИзмерения", Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения( "Наименование", "Товары.Упаковка", "Товары.Номенклатура")); Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов); Запрос.УстановитьПараметр("ОтображатьСкидки", Ложь); ПакетЗапросов = Запрос.ВыполнитьПакет(); ДанныеПечати = ПакетЗапросов[0].Выбрать(); ВыборкаПоДокументам = ПакетЗапросов[2].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Макет = ЭтотОбъект.ПолучитьМакет("ПФ_MXL_ГИГ_Счет_пример"); Пока ДанныеПечати.Следующий() Цикл Если НЕ ВыборкаПоДокументам.НайтиСледующий(Новый Структура("Ссылка", ДанныеПечати.Ссылка)) Тогда Продолжить; КонецЕсли; ОбластьМакета = Макет.ПолучитьОбласть("ОбластьШапка"); ОбластьМакетаШапкаТовары = Макет.ПолучитьОбласть("ОбластьШапкаТовары"); ОбластьМакетаПовторятьПриПечати = Макет.ПолучитьОбласть("ОбластьШапкаТовары"); ОбластьИтогиМакета = Макет.ПолучитьОбласть("ОбластьИтоги"); ОбластьМакета.Параметры.ПредставлениеДаты = ДанныеПечати.Дата; ОбластьМакета.Параметры.ЗаголовокДокумента = "Предложение по стоимости профессионального оборудования"; СведенияОПоставщике = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Организация, ДанныеПечати.Дата); Если ЗначениеЗаполнено(ДанныеПечати.БанковскийСчет) Тогда СтруктураСчета = Справочники.БанковскиеСчетаОрганизаций.ПолучитьРеквизитыБанковскогоСчетаОрганизации(ДанныеПечати.БанковскийСчет); Иначе СтруктураСчета = Справочники.БанковскиеСчетаОрганизаций.ПолучитьРеквизитыБанковскогоСчетаОрганизации(ДанныеПечати.Организация.ОсновнойБанковскийСчет); КонецЕсли; ДанныеПродавца = "Продавец: "+СведенияОПоставщике.НаименованиеДляПечатныхФорм+ Символы.ПС + "Адрес: " +СведенияОПоставщике.ЮридическийАдрес+ Символы.ПС + "ИНН" +СведенияОПоставщике.ИНН+ Символы.ПС + "КПП" +СведенияОПоставщике.КПП+ Символы.ПС + "Расчетный счет: " + СтруктураСчета.НомерСчета+ Символы.ПС + "Кор. счет: " + СтруктураСчета.КоррСчет+ Символы.ПС + "Банк: " + Строка(СтруктураСчета.Банк); ОбластьМакета.Параметры.ДанныеПродавца = ДанныеПродавца; ТабличныйДокумент.Вывести(ОбластьМакета); ТабличныйДокумент.Вывести(ОбластьМакетаШапкаТовары); СтруктураДанныхИтогов = Новый Структура("Количество,Сумма", 0, 0); СчетСтрок = 1; ВыборкаПоМодели = ВыборкаПоДокументам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаПоМодели.Следующий() Цикл ВыборкаПоТоварам = ВыборкаПоМодели.Выбрать(); НомерСтроки = 1; Пока ВыборкаПоТоварам.Следующий() Цикл Область = Макет.ПолучитьОбласть("ОбластьСтрока"); Область.Параметры.Заполнить(ВыборкаПоТоварам); Попытка УстановитьПривилегированныйРежим(Истина); Изображение = РаботаСФайлами.ДвоичныеДанныеФайла(ВыборкаПоТоварам.НоменклатураСсылка.ФайлКартинки); УстановитьПривилегированныйРежим(Ложь); Исключение Изображение = Неопределено; КонецПопытки; Если Изображение = Неопределено Тогда Иначе ОбластьКартинка = Область.Области.АдресКартинки; ОбластьКартинка.Картинка = Новый Картинка(Изображение); КонецЕсли; МассивВыводимыхОбластей = Новый Массив; МассивВыводимыхОбластей.Добавить(Область); МассивВыводимыхОбластей.Добавить(ОбластьИтогиМакета); Если НЕ ОбщегоНазначения.ПроверитьВыводТабличногоДокумента(ТабличныйДокумент, МассивВыводимыхОбластей) Тогда ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ТабличныйДокумент.Вывести(ОбластьМакетаПовторятьПриПечати); КонецЕсли; ТабличныйДокумент.Вывести(Область); СтруктураДанныхИтогов.Количество = СтруктураДанныхИтогов.Количество + ВыборкаПоТоварам.Количество; СтруктураДанныхИтогов.Сумма = СтруктураДанныхИтогов.Сумма + ВыборкаПоТоварам.Сумма; НомерСтроки = НомерСтроки + 1; КонецЦикла; КонецЦикла; ОбластьИтогиМакета.Параметры.Заполнить(СтруктураДанныхИтогов); ТабличныйДокумент.Вывести(ОбластьИтогиМакета); СписокОбъектов = Новый СписокЗначений; УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, СписокОбъектов, ДанныеПечати.Ссылка); |
|||
1
ToyoCor
25.05.23
✎
12:33
|
Параметр в макете называется наименование полное
|
|||
2
Волшебник
25.05.23
✎
12:36
|
Не надо сортировать по описанию.
|
|||
3
ToyoCor
25.05.23
✎
12:38
|
(2) А как?) Попросили отсортировать по алфавитному порядку. Именно поле наименование полное. В нем находится описание.
|
|||
4
Волшебник
25.05.23
✎
12:40
|
(3) Сопротивляйтесь таким заданиям.
В крайнем случае, добавьте поле ПОДСТРОКА(поле, 1, 1000) и сортируйте по нему |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |