Вход | Регистрация
 

Отладка ВПФ

Отладка ВПФ
Я
   Лентаf
 
29.12.18 - 10:42
Привет!
Есть ВПФ для последней ут 11, есть какие-то простые варианты ее отладки?
 
 
   Лентаf
 
1 - 29.12.18 - 10:46
знаю что можно написать этот код на форме и вызывать документ по ссылке но это долго.
   Фрэнки
 
2 - 29.12.18 - 10:47
(1) затолкай ее в расширение :-)
   Фрэнки
 
3 - 29.12.18 - 10:51
Уверяю, что это Вам настолько понравится, что примете командирское решение больше не пользоваться ВПФ, а использовать печатные формы в расширениях
   Лентаf
 
4 - 29.12.18 - 10:52
(3) расширения пока не трогал, есть гайдец?
   Лентаf
 
5 - 29.12.18 - 10:53
   Aleksey
 
6 - 29.12.18 - 10:56
   Фрэнки
 
7 - 29.12.18 - 10:58
(5) Да. Это рабочий рецепт. Причем, у меня таким способом есть подмена текстов в ячейках результирующего документа, что даже можно не переделывать всю кухню у печатной формы целиком, а конкретное узкое место подправить.
   Aleksey
 
8 - 29.12.18 - 11:01
(5) ТОлько все таки правильнее писать после, а не вместо
   yzimin
 
9 - 29.12.18 - 11:01
(3) А чем принципиально удобнее, если не рассматривать критическим скорость работы? Сами сейчас на последнем релизе, но за 5 лет накопилось достаточно много ВПФ
   Aleksey
 
10 - 29.12.18 - 11:09
(9) Типа не такой как все
 
 Рекламное место пустует
   Фрэнки
 
11 - 29.12.18 - 11:15
(9) На практике получилось так, что я переходил на УФ, а мне потребовалось в печатную форму дописать какую-то ерунду. Ну вот просто не хотелось переписывать полностью всю цепочку обработки данных из документа для вывода в печ-форму. Ну вот... готовую таб документ из результата расширением перехватил и в нем ячеки отредактировал и вернул в типовую.

Это был мой первый опыт :-)

Ну а затем понравилсь простота отладки, установки уже готового комплекта в программу клиента и т.п. Права же никакие можно не настраивать и т.д.
   Фрэнки
 
12 - 29.12.18 - 11:29
Вот ниже пример.
Получил М-11 типовую и дополнительно в нее нужно было выдавать в ячейки ФИО ответственных лиц.
Ответственных в документы Заказчик согласился сохранять в ДопСведениях

&Вместо("ПечатьМ11")
Функция ИЗО1_ПечатьМ11(МассивОбъектов, ОбъектыПечати)
    
    ТабДокумент = ПродолжитьВызов(МассивОбъектов, ОбъектыПечати);
    
    ЗначениеСсылка = ОбъектыПечати[0].Значение;
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ДополнительныеСведения.Значение КАК Значение,
        |    ДополнительныеСведения.Свойство.Имя КАК ИмяСвойства
        |ИЗ
        |    РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
        |ГДЕ
        |    ДополнительныеСведения.Объект = &ЗначениеСсылка";
    
    Запрос.УстановитьПараметр("ЗначениеСсылка", ЗначениеСсылка);
    
    РезультатЗапроса = Запрос.Выполнить();
    Если РезультатЗапроса.Пустой() Тогда
        Возврат ТабДокумент;
    КонецЕсли;
// дальше всякие манипуляции с ячейками ТабДокумента

    Возврат ТабДокумент;
КонецФункции
   Фрэнки
 
13 - 29.12.18 - 11:31
в продолжение к 12

отдельно можно с использованием Расширения допилить возможность редактирования ДопСведений не типовым образом, который не всякому пендитному заказчику придется по вкусу, в тоже в расширяемой форме от типового документа.

т.е. типовой замок остается на конфе - типовая полностью типовая. Допил исключительно средствами расширения
   Aleksey
 
14 - 29.12.18 - 11:39
(12) Ну правка это одно. А вот новые ПФ это другое.
К примеру если нужно добавить МХ-1, МХ3 в БП.
И вот тут встает вопрос Расширение VS ВПФ
   Фрэнки
 
15 - 29.12.18 - 11:44
Абсолютно уверен, что для тебя такое программирование не составляет трудностей, так что за копипасту кода прошу не обижаться :-)

&Вместо("ДобавитьКомандыПечати")
Процедура ИЗО1_ДобавитьКомандыПечати(КомандыПечати)
    
    // Добавляемая форма в расширение - Акт списания ТН

    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.Идентификатор = "АктСписанияТН";
    КомандаПечати.Представление = НСтр("ru = 'Акт списания ТН'");
    КомандаПечати.Обработчик    = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
    КомандаПечати.СписокФорм    = "ФормаСписка,ФормаВыбора,ФормаДокумента";// здесь перечислены все формы - куда добавлять кнопку

    КомандаПечати.Порядок = 10;

    ПродолжитьВызов(КомандыПечати);
КонецПроцедуры

&Вместо("Печать")
Процедура ИЗО1_Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)
    
    // Добавляемая форма в расширение - по идентификатору, указанному выше ДобавитьКомандыПечати

    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "АктСписанияТН") Тогда
        
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            "АктСписанияТН",
            "Акт списания ТН",
            ИЗО1_ПечатьФормыАктСписанияТН(МассивОбъектов, ОбъектыПечати));
            
    КонецЕсли;
    
    ПродолжитьВызов(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КонецПроцедуры
   Фрэнки
 
16 - 29.12.18 - 11:46
и дальше в 15

добавляем всю писанину абсолютно также как с ВПФ

Функция ИЗО1_ПечатьФормыАктСписанияТН(МассивОбъектов, ОбъектыПечати) Экспорт
    
    УстановитьПривилегированныйРежим(Истина);
    
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.АвтоМасштаб            = Истина;
    ТабДокумент.ОриентацияСтраницы    = ОриентацияСтраницы.Портрет;
    ТабДокумент.ИмяПараметровПечати    = "ПАРАМЕТРЫ_ПЕЧАТИ_ТребованиеНакладная_АктСписания";

// дальше всякий код


    Возврат ТабДокумент;
КонецФункции

Список тем форума
Рекламное место пустует  Рекламное место пустует
Компьютер — устройство разработанное для ускорения и автоматизации человеческих ошибок.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует