Задать вопрос
@lusamir

Как вывести на Печать документ с выбранной сортировкой?

Уважаемые программисты. Я только пытаюсь стать программистом. У меня такой вопрос.
В форме документа сделала сортировку по упорядочиванию товаров по Наименованию и Цене.
Однако при печати выбранная сортировка не срабатывает.
Как сделать, чтобы в печатной форме товар выводился согласно сортировке?

Вот листинг :

Процедура Печать(ТабДок, Ссылка) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
Макет = Документы.Клиент.ПолучитьМакет("Печать");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Клиент.Дата,
| Клиент.Клиенты,
| Клиент.Номер,
| Клиент.Номенклатура.(
| НомерСтроки,
| Товар,
| Цена,
| Количество,
| Сумма
| )
|ИЗ
| Документ.Клиент КАК Клиент
|ГДЕ
| Клиент.Ссылка В (&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();

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

ТабДок.Очистить();

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

ТабДок.Вывести(ОбластьЗаголовок);

Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());

ТабДок.Вывести(ОбластьНоменклатураШапка);
ВыборкаНоменклатура = Выборка.Номенклатура.Выбрать();
Пока ВыборкаНоменклатура.Следующий() Цикл
ОбластьНоменклатура.Параметры.Заполнить(ВыборкаНоменклатура);
ТабДок.Вывести(ОбластьНоменклатура, ВыборкаНоменклатура.Уровень());
КонецЦикла;

Подвал.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Подвал);

ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//}}
КонецПроцедуры
-----------------------------------------------------------------------------
Листинг процедуры сортировки по Цене и Наименованию:
&НаКлиенте
Процедура СортировкаПоЦене(Команда)
Объект.Номенклатура.Сортировать("Цена");
КонецПроцедуры
&НаКлиенте
Процедура СортировкаПоДлинеНаименования(Команда)
Объект.Номенклатура.Сортировать("Номенклатура");
КонецПроцедуры
  • Вопрос задан
  • 597 просмотров
Подписаться Средний 9 комментариев
Пригласить эксперта
Ответы на вопрос 2
@Dementor
программист, архитектор, аналитик
Вам нужно в запросе использовать секцию "УПОРЯДОЧИТЬ ПО".
Почитайте: https://its.1c.ru/db/v8std/content/412/hdoc
Ответ написан
Sgr_A
@Sgr_A
По описанию вашей задачи (из комментария) Вам, предполагаю, надо:
1. Сделать взаимодействие с пользователем при печати. Чтобы задать ему вопрос, какой метод сортировки нужен, и в зависимости от выбора использовать эти данные дальше;
Пример запроса в поисковике

2. Решить задачу с вычислением длинны наименования в запросе;
Где посмотреть

3. Сделать запрос динамичным (изменчивым), в зависимости от выбранного метода сортировки пользователем.
Где посмотреть
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы