|   |   | 
| 
 | Отмена печати при пустой ТЧ документа, не могу разобраться. | ☑ | ||
|---|---|---|---|---|
| 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 Тогда ВызватьИсключение "Тут нечего печатать"; | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |