![]() |
|
Отмена печати при пустой ТЧ документа, не могу разобраться. | ☑ | ||
---|---|---|---|---|
0
И Р
31.07.19
✎
20:35
|
В модуле команды:
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать2) ТабДок = Новый ТабличныйДокумент; Печать2(ТабДок, ПараметрКоманды); Если Не ТабДок = Неопределено Тогда ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Истина; ТабДок.ТолькоПросмотр = Истина; ТабДок.ОтображатьЗаголовки = Ложь; ТабДок.Показать(); КонецЕсли; //}} КонецПроцедуры &НаСервере Процедура Печать2(ТабДок, ПараметрКоманды) Документы.СчетНаОплату.Печать2(ТабДок, ПараметрКоманды); КонецПроцедуры В модуле менеджера: Процедура Печать2(ТабДок, Ссылка) Экспорт //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать2) Макет = Документы.СчетНаОплату.ПолучитьМакет("Печать2"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СчетНаОплату.Дата, | СчетНаОплату.Договор.Представление КАК Договор, | СчетНаОплату.Контрагент.Представление КАК Контрагент, | СчетНаОплату.Номер, | СчетНаОплату.Товары.( | НомерСтроки, | Номенклатура.Представление КАК Номенклатура, | Цена, | Количество, | Сумма | ) |ИЗ | Документ.СчетНаОплату КАК СчетНаОплату |ГДЕ | СчетНаОплату.Ссылка В (&Ссылка)"; Запрос.Параметры.Вставить("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); Шапка = Макет.ПолучитьОбласть("Шапка"); ОбластьТоварыШапка = Макет.ПолучитьОбласть("ТоварыШапка"); ОбластьТовары = Макет.ПолучитьОбласть("Товары"); Подвал = Макет.ПолучитьОбласть("Подвал"); ТабДок.Очистить(); ВставлятьРазделительСтраниц = Ложь; Пока Выборка.Следующий() Цикл ВыборкаТовары = Выборка.Товары.Выбрать(); Если Не ВыборкаТовары.Следующий() Тогда Сообщить("Не заполнены строки таблицы в документе " + Ссылка); Возврат; КонецЕсли; Если ВставлятьРазделительСтраниц Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ТабДок.Вывести(ОбластьЗаголовок); Шапка.Параметры.Заполнить(Выборка); ТабДок.Вывести(Шапка, Выборка.Уровень()); ТабДок.Вывести(ОбластьТоварыШапка); ВыборкаТовары = Выборка.Товары.Выбрать(); Пока ВыборкаТовары.Следующий() Цикл ОбластьТовары.Параметры.Заполнить(ВыборкаТовары); ТабДок.Вывести(ОбластьТовары, ВыборкаТовары.Уровень()); КонецЦикла; Подвал.Параметры.Заполнить(Выборка); ТабДок.Вывести(Подвал); ВставлятьРазделительСтраниц = Истина; КонецЦикла; //}} КонецПроцедуры Не могу понять как здесь наилучшим образом реализовать запрет на печать документа с пустой ТЧ? |
|||
1
palsergeich
31.07.19
✎
20:37
|
В 2 шага: первый проверяешь нужно ли вообще печатать, 2ой - если нужно то формир ешь табдок
|
|||
2
Ёпрст
гуру
31.07.19
✎
20:59
|
(0) Смотришь результат запроса по товарам (таб части), если он пустой, то возврат Неопределено и всё.
|
|||
3
Ёпрст
гуру
31.07.19
✎
21:00
|
в твоём случае,
Если Не ВыборкаТовары.Следующий() Тогда Сообщить("Не заполнены строки таблицы в документе " + Ссылка); ТабДок = Неопределено; Возврат; КонецЕсли; |
|||
4
Лефмихалыч
01.08.19
✎
06:18
|
Процедура Печать2(ТабДок, Ссылка) Экспорт
Если Ссылка.Товары.Количество()=0 Тогда ВызватьИсключение "Тут нечего печатать"; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |