Имя: Пароль:
1C
 
Настройка печати в НЕ типовом документе ЗУП
0 LeoKeyn
 
01.04.18
10:34
Всем Здравствуйте! Помогите разобраться, пожалуйста.

Создал не типовой документ в ЗУП 2.0.17.4 (Для Казахстана) добавил в модуль формы элемента:

// Хранит дерево макетов печатных форм
Перем мДеревоМакетов;

// Хранит элемент управления подменю печати
Перем мПодменюПечати;

// Хранит элемент управления кнопку печать по умолчанию
Перем мПечатьПоУмолчанию;


// Процедура устанавливает подменю "Печать" и кнопку "Печать по умолчанию" при необходимости
//
Процедура УстановитьКнопкиПечати()
    
    мДеревоМакетов = УниверсальныеМеханизмы.ПолучитьДеревоМакетовПечати(Ссылка, ПолучитьСтруктуруПечатныхФорм(), Новый Действие("ОсновныеДействияФормыПечать"), Новый Действие("ОсновныеДействияФормыУстановитьПечатьПоУмолчанию"));

    УниверсальныеМеханизмы.УстановитьПодменюПечати    (мПодменюПечати, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов.Строки.Количество() > 0);
    УниверсальныеМеханизмы.УстановитьПечатьПоУмолчанию(мПечатьПоУмолчанию, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов, Метаданные().Имя,Новый Действие("ОсновныеДействияФормыПечатьПоУмолчанию"));

    Если НЕ мПодменюПечати = Неопределено Тогда
        УниверсальныеМеханизмы.СформироватьПодменю(мДеревоМакетов, мПодменюПечати, Истина, Истина);
    КонецЕсли;
    
КонецПроцедуры

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
        // Установка кнопок печати
    УстановитьКнопкиПечати();
    

КонецПроцедуры

// Процедура - обработчик нажатия на кнопку "Печать по умолчанию"
//
Процедура ОсновныеДействияФормыПечатьПоУмолчанию(Кнопка)
    
    УниверсальныеМеханизмы.ПечатьПоДополнительнойКнопке(мДеревоМакетов, ЭтотОбъект, ЭтаФорма, Кнопка.Текст);
    
КонецПроцедуры

// Процедура - обработчик нажатия на кнопку "Печать"
//
Процедура ОсновныеДействияФормыПечать(Кнопка)
    
    УниверсальныеМеханизмы.ПечатьПоДополнительнойКнопке(мДеревоМакетов, ЭтотОбъект, ЭтаФорма, Кнопка.Текст);
    
КонецПроцедуры


А в Модуль объекта:

// Возвращает доступные варианты печати документа
//
// Вовращаемое значение:
//  Струткура, каждая строка которой соответствует одному из вариантов печати
//  
Функция ПолучитьСтруктуруПечатныхФорм() Экспорт
    
    Возврат Новый Структура("Приказ", "Приказ по личному составу");

КонецФункции // ПолучитьСтруктуруПечатныхФорм()

// Процедура осуществляет печать документа. Можно направить печать на
// экран или принтер, а также распечатать необходмое количество копий.
//
//  Название макета печати передается в качестве параметра,
// по переданному названию находим имя макета в соответствии.
//
// Параметры:
//  НазваниеМакета - строка, название макета.
//
Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт

    Если ЭтоНовый() Тогда
        Предупреждение("Документ можно распечатать только после его записи");
        Возврат;
    ИначеЕсли Не УправлениеПользователями.РазрешитьПечатьНепроведенныхДокументов(Проведен) Тогда
        Предупреждение("Недостаточно полномочий для печати непроведенного документа!");
        Возврат;
    КонецЕсли;

    //Если Не РаботаСДиалогами.ПроверитьМодифицированность(ЭтотОбъект) Тогда
    //    Возврат;
    //КонецЕсли;

    // Получить экземпляр документа на печать
    //Если ИмяМакета = "Приказ" Тогда
    //    ТабДокумент = ПечатьПриказа(ИмяМакета);
    //ИначеЕсли ИмяМакета = "ПриказСписком" тогда
    //    ТабДокумент = ПечатьПриказаСписком(ИмяМакета);
    //Иначе          
        ТабДокумент = ПечатьДополнительныхФорм(ИмяМакета, ЭтотОбъект);
    //КонецЕсли;

    УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, РаботаСДиалогами.СформироватьЗаголовокДокумента(ЭтотОбъект,"Приказ по личному составу"));

КонецПроцедуры // Печать

Функция ПечатьДополнительныхФорм(ИмяМакета, Объект) Экспорт
    
    Возврат Новый ТабличныйДокумент;
    
КонецФункции


И обычные формы вроде открываются. Но вот внешние печатные формы,
которые я подключил в соответствующем справочнике, не
срабатывают. В кнопке печати они появляются, но при нажатии ничего
не происходит. Отладкой в процедуру Печать модуля объекта вообще
не попадает. Помогите, пожалуйста, понять чего тут не хвататет.
1 Cyberhawk
 
01.04.18
10:40
Отладки на сервере не хватает
2 LeoKeyn
 
01.04.18
10:49
(1) Извините, не понял, поясните?
3 Cyberhawk
 
01.04.18
10:50
Раз не понял, то и ответ пустым для тебя будет
4 LeoKeyn
 
01.04.18
10:53
(3) это толстый клиент, клиент сервера тут нет, а база файловая, так про какой сервер вы говорите?
5 Cyberhawk
 
01.04.18
10:58
Тогда отлаживай код на форме
6 Cyberhawk
 
01.04.18
10:58
А то ощущение, что ты в ожидании чуда стоишь и ждешь в модуле объекта
7 LeoKeyn
 
01.04.18
11:09
Разобрался, всем спасибо! :-)
Основная теорема систематики: Новые системы плодят новые проблемы.