Имя: Пароль:
1C
1С v8
Вывод внешней печатной формы
,
0 maestro-72
 
23.12.20
10:46
Вопрос в следующем. ут11.4 подключаемая печатная форма. Но существует условие по которому эта печатная форма не должна появляться. К примеру мы готовим форму по определенному виду товара а его может не оказаться в накладной ну это как вариант для понимания. Вопрос. Возможно ли на этапе обработки отказаться от вывода табличного документа? (вопрос зачем не рассматривается пока, оценивается возможность). поискал по форумам, ничего не нашел
1 SadrArt
 
23.12.20
10:57
(0) не ясно излагаете, где не должна появляться?
2 SadrArt
 
23.12.20
10:58
пустой табличный документ покажите (или верните)
3 maestro-72
 
23.12.20
10:59
(2) пустой табличный документ вызывает исключение
4 maestro-72
 
23.12.20
11:01
Нужно просто - оценка - нечего выводить - отказ от вывода табличного документа (операторы шлепают на автомате, им некогда следить есть там в накладной нужная номенклатура, нет ее... просто если нет, печататься ничего не должно, есть должно)
5 SadrArt
 
23.12.20
11:04
(3) должно быть что то типа штатное "Печатная форма не сформирована", вот это называете исключением?
6 SadrArt
 
23.12.20
11:05
Вообще, без кода сложно сказать, что у там

Например есть ли такая строка


УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, ИмяМакета, "Заголовок табличного документа", СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати));



?
7 mikecool
 
23.12.20
11:12
на ОФ при подключении ВПФ можно было отборы задавать, в УФ кажется тоже - тогда форма не должна вообще в доступных светиться
8 Фрэнки
 
23.12.20
11:14
(0) если не затруднит, то выложи нужную ВПФ - посмотрю, оставили там возможность для вставки кода или нет.
9 SadrArt
 
23.12.20
11:16
(7) вряд ли в УФ есть такое.
10 Фрэнки
 
23.12.20
11:16
(9) ну вот и я помню, что для ОФ такое было, а для УФ уже нет.
11 maestro-72
 
23.12.20
11:38
(10) Ну скорее всего да, нет, видимо это связано с особенностью платформы. Я пока не понял почему нельзя было к примеру какой нибудь признак типа "отказ" поставить в истину, чтобы было понятно что табличный документ не нужен. А по поводу того что кнопка появляется или не появляется. представте в печатной форме запрос на три листа для оценки, тоже самое, ну или почти придется для условия прописывать. (6) Да, именно. Я не вижу смысла выкладывать код, он стандартный, просто в процедуре печать() по идее должно быть условие печатать не печатать и все.
12 maestro-72
 
23.12.20
11:39
Видимо придется как то по другому изворачиваться.
13 SadrArt
 
23.12.20
11:45
Если вот так:

Печатать = Истина;
СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати, Печатать);
Если Печатать Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, ИмяМакета, "Заголовок табличного документа", ТабДок);
КонецЕсли;

Вызывается исключение?
14 Aleksey
 
23.12.20
11:45
(10) Да и для УФ есть. По крайне мере я в УНФ пару лет назад такое делал (лоступность в зависимости от реквизитов шапки)
15 SadrArt
 
23.12.20
11:46
(13) ТабДок = СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати, Печатать); *
16 SadrArt
 
23.12.20
11:46
(14) в списке при выделении строк с противоречивым условием доступность какая?
17 ДенисЧ
 
23.12.20
11:47
(14) Расскажи, как. Если подменю печати (в БСП) формируется в менеджере документа, где информации о составе конкретного документа нет
18 Aleksey
 
23.12.20
11:48
(17) Разве это не функционал БСП?
19 maestro-72
 
23.12.20
11:49
(13) Да, так пробовал, в ошибку вылетает
20 ДенисЧ
 
23.12.20
11:50
(18) Нет. Ещё раз. В БСП вызывается
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.МенеджерПечати = "Документ.МойДокумент";  
    КомандаПечати.Идентификатор = "МойДокумент";
    КомандаПечати.Представление = НСтр("ru = 'Мой документ'");
    КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КонецПроцедуры

Это в менеджере. Нет документа.
21 Aleksey
 
23.12.20
11:52
(20) я про УправлениеПечатью.ДобавитьУсловиеВидимостиКоманды
22 ДенисЧ
 
23.12.20
11:54
(21) Хм... Не знал... А сайт итса лёг что-то... Раньше не видел. Надо проверить...
Спасибо за инфу, если это сработает...
23 maestro-72
 
23.12.20
11:55
//ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
    Для Каждого Док ИЗ МассивОбъектов Цикл
        
        Если Не НужноВыодитьПечатнуюФорму(Док) Тогда
            Продолжить;
        КонецЕсли;
        
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
        КоллекцияПечатныхФорм,
        "Маршрут",
        НСтр("ru = 'Маршрут'"),
        СформироватьПечатнуюФорму(Док));
    КонецЦикла;
Вот так пытался, ошибку дает
24 ДенисЧ
 
23.12.20
11:57
(23) Какую?
25 Aleksey
 
23.12.20
11:58
(22) Но там только на шапку, на ТЧ не поставишь.

Атак у команды печати есть еще один "реквизит" Обработчик. В него пробросятся ПараметрыПечати. В нем уже проверяешь реквизиты. Если условие выполнено — вызываете УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(), если нет — исключение.

типа
КомандыПечати.Обработчик    = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
26 Aleksey
 
23.12.20
12:02
О ИТС ожил
27 Aleksey
 
23.12.20
12:03
Правда сервис авторизации лежит...
28 maestro-72
 
23.12.20
12:18
(25) Я в 8 недавно (в смысле совсем) можно для чайника объяснить как это должно быть на простом примере. И - исключение нам не надо... Надо чтобы просто ничего не печаталось.
29 maestro-72
 
23.12.20
12:19
(24) ТАм функция проверки стоит, определяет нужно ли выводить на печать, а вообще не понял о чем вопрос