Имя: Пароль:
1C
1С v8
Запретить печать внешней формы не проведенных документы
0 slnes
 
14.08.20
12:05
Как запретить печать внешней формы не проведенных документов?
1 ASU_Diamond
 
14.08.20
12:06
Если форма внешняя, то какая проблема в коде прописать?
2 slnes
 
14.08.20
12:10
хочется в параметрах примерно так ПроверкаПроведенияПередПечатью = Истина, а не просто проверят проведен или нет
3 FIXXXL
 
14.08.20
12:12
(0) конфа?
в последних БСП эта проверка вешается на КомандуПечати, параметром, БСП сама проверит
4 dka80
 
14.08.20
12:15
5 dka80
 
14.08.20
12:15
ПроверкаПроведенияПередПечатью
6 slnes
 
14.08.20
12:58
(3) БСП 3.1.2.387

Вот так делаю в модуле объекта внешней печатной формы, печатает не проведенные

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

КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "",ПроверкаПроведенияПередПечатью)
  НоваяКоманда = ТаблицаКоманд.Добавить();
  НоваяКоманда.Представление = Представление;
  НоваяКоманда.Идентификатор = Идентификатор;
  НоваяКоманда.Использование = Использование;
  НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
  НоваяКоманда.Модификатор = Модификатор;
  НоваяКоманда.ПроверкаПроведенияПередПечатью = ПроверкаПроведенияПередПечатью;
КонецПроцедуры

Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид","ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение",ПолучитьНазначениеОбработки());
    ПараметрыРегистрации.Вставить("Наименование","Анкета");
    ПараметрыРегистрации.Вставить("Версия","1.0");
    ПараметрыРегистрации.Вставить("Информация","Анкета");
    ПараметрыРегистрации.Вставить("БезопасныйРежим",Истина);
    
    Команды = ПолучитьТаблицуКоманд();

    ДобавитьКоманду(Команды,"Анкета","АнкетаКлиента",
            "ВызовСерверногоМетода",
            Ложь,"ПечатьMXL", Истина);
                        
    ПараметрыРегистрации.Вставить("Команды",Команды);
    Возврат ПараметрыРегистрации;
                        
КонецФункции
7 Галахад
 
гуру
14.08.20
13:04
(0) А не внешние как печатаются?
8 dka80
 
14.08.20
13:05
ПроверкаПроведенияПередПечатью - поискал в конфигурации: нет нигде ссылок на этот параметр, хотя в документации к БСП упоминается
9 dka80
 
14.08.20
13:06
(6) не кошерно
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("3.0.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.БезопасныйРежим = Ложь;
ПараметрыРегистрации.Назначение.Добавить("Справочник.Сотрудники");
    
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru = 'Трудовой договор'");
НоваяКоманда.Идентификатор = "ПФ_MXL_ТрудовойДоговор";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
НоваяКоманда.Модификатор = "ПечатьMXL";
НоваяКоманда.ПоказыватьОповещение = Истина;
10 slnes
 
17.08.20
11:30
(9) спасибо, переделал так.
Т.к. нет ПроверкаПроведенияПередПечатью сделал так в процедуре Печать()
Если НЕ Ссылка.Проведен
Тогда ВызватьИсключение "Документ не проведен. Нажмите ""Провести""";
КонецЕсли;

Не нравится вызватьисключение, как лучше сделать
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн