Всех с наступившим новым годом! Подскажите пожалуйста, есть документ ЗаказКлиента, где имеются 3 различных ТЧ, которые отображаются в зависимости от выбранного в реквизите ВидЗаказа значения. Теперь сама суть проблемы: если выбран ВидЗаказа - ЗаказНаМебель, то нужно чтобы на печать вывелась только ТЧ соответствующая значению ЗаказНаМебель. И еще один момент, поле Комментарий не всегда заполнено, и в случае отсутствия комментария надо скрыть это поле. Подскажите куда и что надо написать?
Код отображения ТЧ:
Код запроса:
Как-то я застрял с этим макетом...
Код отображения ТЧ:
&НаКлиенте
Процедура _ВидЗаказаПриИзменении(Элемент)
Если Объект._ВидЗаказа = ПредопределенноеЗначение("Перечисление._ВидЗаказа._ЗаказНаМебель") Тогда
ЭтаФорма.Элементы.Группа_ЗаказНаМебель.Видимость = Истина;
ЭтаФорма.Элементы.Группа_ЗаказНаФасады.Видимость = Ложь;
ЭтаФорма.Элементы.Группа_ИндивидуальныйЗаказ.Видимость = Ложь;
ИначеЕсли Объект._ВидЗаказа = ПредопределенноеЗначение("Перечисление._ВидЗаказа._ЗаказНаФасады") Тогда
ЭтаФорма.Элементы.Группа_ЗаказНаМебель.Видимость = Ложь;
ЭтаФорма.Элементы.Группа_ЗаказНаФасады.Видимость = Истина;
ЭтаФорма.Элементы.Группа_ИндивидуальныйЗаказ.Видимость = Ложь;
ИначеЕсли Объект._ВидЗаказа = ПредопределенноеЗначение("Перечисление._ВидЗаказа._ИндивидуальныйЗаказ") Тогда
ЭтаФорма.Элементы.Группа_ЗаказНаМебель.Видимость = Ложь;
ЭтаФорма.Элементы.Группа_ЗаказНаФасады.Видимость = Ложь;
ЭтаФорма.Элементы.Группа_ИндивидуальныйЗаказ.Видимость = Истина;
КонецЕсли;
КонецПроцедуры
ПоказатьКод запроса:
Процедура Печать(ТабДок, Ссылка) Экспорт
Макет = Документы._ЗаказКлиента.ПолучитьМакет("Печать");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| _ЗаказКлиента._Автор,
| _ЗаказКлиента._АдресДоставки,
| _ЗаказКлиента._ВидЗаказа,
| _ЗаказКлиента._Комментарий,
| _ЗаказКлиента._КонтактныеТелефоны,
| _ЗаказКлиента._ПредварительнаяДатаДоставки,
| _ЗаказКлиента._ПредварительноеВремяДоставки,
| _ЗаказКлиента._СтадияЗаказа,
| _ЗаказКлиента._ФиоЗаказчика,
| _ЗаказКлиента.Дата,
| _ЗаказКлиента.Номер,
| _ЗаказКлиента._ЗаказНаМебель.(
| НомерСтроки,
| _Номенклатура,
| _Цена,
| _Количество,
| _Сумма
| ),
| _ЗаказКлиента._ИндивидуальныйЗаказ.(
| НомерСтроки,
| _Номенклатура,
| _Цена,
| _Количество,
| _Сумма,
| _Примечание
| ),
| _ЗаказКлиента._ЗаказНаФасады.(
| НомерСтроки,
| _Номенклатура,
| _Ширина,
| _Высота,
| _Площадь,
| _Цвет,
| _Узор,
| _Количество,
| _Цена,
| _Сумма
| )
|ИЗ
| Документ._ЗаказКлиента КАК _ЗаказКлиента
|ГДЕ
| _ЗаказКлиента.Ссылка В (&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
Область_ЗаказНаМебельШапка = Макет.ПолучитьОбласть("_ЗаказНаМебельШапка");
Область_ЗаказНаМебель = Макет.ПолучитьОбласть("_ЗаказНаМебель");
Область_ИндивидуальныйЗаказШапка = Макет.ПолучитьОбласть("_ИндивидуальныйЗаказШапка");
Область_ИндивидуальныйЗаказ = Макет.ПолучитьОбласть("_ИндивидуальныйЗаказ");
Область_ЗаказНаФасадыШапка = Макет.ПолучитьОбласть("_ЗаказНаФасадыШапка");
Область_ЗаказНаФасады = Макет.ПолучитьОбласть("_ЗаказНаФасады");
Подвал = Макет.ПолучитьОбласть("Подвал");
ТабДок.Очистить();
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ТабДок.Вывести(ОбластьЗаголовок);
Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());
//Если Выборка = _ЗаказКлиента._ЗаказНаМебель Тогда
ТабДок.Вывести(Область_ЗаказНаМебельШапка);
Выборка_ЗаказНаМебель = Выборка._ЗаказНаМебель.Выбрать();
Пока Выборка_ЗаказНаМебель.Следующий() Цикл
Область_ЗаказНаМебель.Параметры.Заполнить(Выборка_ЗаказНаМебель);
ТабДок.Вывести(Область_ЗаказНаМебель, Выборка_ЗаказНаМебель.Уровень());
КонецЦикла;
//ИначеЕсли Выборка = _ЗаказКлиента._ИндивидуальныйЗаказ Тогда
ТабДок.Вывести(Область_ИндивидуальныйЗаказШапка);
Выборка_ИндивидуальныйЗаказ = Выборка._ИндивидуальныйЗаказ.Выбрать();
Пока Выборка_ИндивидуальныйЗаказ.Следующий() Цикл
Область_ИндивидуальныйЗаказ.Параметры.Заполнить(Выборка_ИндивидуальныйЗаказ);
ТабДок.Вывести(Область_ИндивидуальныйЗаказ, Выборка_ИндивидуальныйЗаказ.Уровень());
КонецЦикла;
//ИначеЕсли Выборка = _ЗаказКлиента._ЗаказНаФасады Тогда
ТабДок.Вывести(Область_ЗаказНаФасадыШапка);
Выборка_ЗаказНаФасады = Выборка._ЗаказНаФасады.Выбрать();
Пока Выборка_ЗаказНаФасады.Следующий() Цикл
Область_ЗаказНаФасады.Параметры.Заполнить(Выборка_ЗаказНаФасады);
ТабДок.Вывести(Область_ЗаказНаФасады, Выборка_ЗаказНаФасады.Уровень());
КонецЦикла;
//КонецЕсли;
Подвал.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Подвал);
ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
КонецПроцедуры
ПоказатьКак-то я застрял с этим макетом...
По теме из базы знаний
- Печать Чеков ККМ с помощью компоненты "DatecsECR.TECRFisc".
- Корректная двусторонняя печать табличных документов + Простой пример создания внешней печатной формы
- Меркурий+GS1. Обработка формирования штрихкодов GS1 и вывод их на печать
- Привилегированные отчеты
- Сделали детальный отчет? Молодцы. А теперь сгруппируйте данные
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот