Имя: Пароль:
1C
1С v8
Опыт замены ВПФ расширением.
,
0 kachesov
 
20.10.16
13:50
Добрый день!
Хочу запилить ВПФ расширением.

Читаю на сайте ИТС:
"Вместо поставки внешних печатных форм в виде внешних обработок рекомендуется вести их разработку с помощью расширений конфигурации. Для поставки команд печати внешних печатных форм в расширении конфигурации необходимо:
1. Добавить в расширение конфигурации обработку и включить ее в состав подсистемы ПодключаемыеОтчетыИОбработки."

И тут возникла первая проблема: отсутствие подсистемы "ПодключаемыеОтчетыИОбработки".
Есть подсистемы: "ДополнительныеОтчетыИОбработки" в подсистеме "СтандартныеПодсистемы" и "ДополнительныеОтчетыИОбработкиВМоделиСервиса" в подсистеме "ТехнологияСервиса".
Но добавление в эти подсистемы не даёт результата..

Код обработки в модуле менеджера:

#Область ПрограммныйИнтерфейс

// Определяет состав программного интерфейса для интеграции с конфигурацией.
//
// Параметры:
// Настройки - Структура - Настройки интеграции этого объекта.
// См. возвращаемое значение функции ПодключаемыеКоманды.НастройкиПодключаемыхОтчетовИОбработок().
Процедура ПриОпределенииНастроек(Настройки) Экспорт
    Сообщить("ПриОпределенииНастроек");
    
    Настройки.Размещение.Добавить(Метаданные.Документы.РеализацияТоваровУслуг);
    Настройки.ДобавитьКомандыПечати = Истина;
    
КонецПроцедуры

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

#КонецОбласти

И ещё процедура печати..
Но все эти функции не вызываются.
Подскажите, как быть)
1 oslokot
 
20.10.16
14:09
Жесть какая. они реально это рекомендуют?

ВПФ-то хороша тем что для ее правки не надо никого выгонять из базы. Чего не скажешь про расширения.
2 kachesov
 
20.10.16
14:14
(1) но некоторые ПФ очень сложно сделать ВПФ..
я вот взялся за это после того как изрядно намучился с ВПФ УПД для БП 3.0
3 kachesov
 
20.10.16
14:16
(1) плюс во ВПФ нельзя использовать отладчик
4 oslokot
 
20.10.16
14:23
че там сложного то? нарисовать табдокумент или вывести его?

и отлаживать как обычную обработку, потом за минуту ввести ее в ВПФ
5 kachesov
 
20.10.16
14:41
(4) а у вас случайно нет любого примера ВПФ УПД для БП 3.0?)
я сделал несколько ВПФ, но с этой не разобрался..
6 oslokot
 
20.10.16
14:43
(5) к сожалению, нет
7 kachesov
 
20.10.16
14:48
(6) А можете порекомендовать какой либо материал по созданию ВПФ? (инструкции, книги, видео-уроки, ссылки и т.д)
8 oslokot
 
20.10.16
14:50
так в интернетах полно информации

может кто еще из участников форума подкинет
9 mszsuz
 
20.10.16
14:51
Скачайте демо БСП - там есть пример
10 kachesov
 
20.10.16
17:14
(8) Подскажете пожалуйста)
Я сделал ВПФ УПД. Она работает.
У меня есть форма из которой раньше запрашивался ТОРГ-12, а теперь нужно запросить УПД.
В форме есть кнопка, которая обращается к процедуре "Печать".
Для печати УПД в функцию "Печать" необходимо передать 4 параметра:

Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)

С первым всё понятно:

    МассивОбъектов = Новый Массив;
    МассивОбъектов.Добавить(Объект.СсылкаНаОбъект);

А вот остальные три мне неясно откуда взять) Не подскажете?)
11 kachesov
 
20.10.16
17:54
(8) КоллекцияПечатныхФорм, ПараметрыВывода прожевал так..

    КоллекцияПечатныхФорм = Новый ТаблицаЗначений;
    ПараметрыВывода = Новый Структура;

Осталось с ОбъектыПечати разобраться.
12 kachesov
 
20.10.16
18:00
Казалось бы
    ОбъектыПечати = Новый СписокЗначений;
        ОбъектыПечати.ЗагрузитьЗначения(МассивОбъектов);
Но нет..
13 kachesov
 
20.10.16
18:23
Всё не так.. Ночевать сегодня буду на работе)
14 Dmitrii
 
гуру
20.10.16
19:40
(0) >>  отсутствие подсистемы "ПодключаемыеОтчетыИОбработки"

Потому что надо смотреть какая версия БСП встроена в твою конфигурацию.
В последних версия БП 3.0 эта подсистема уже есть. Там БСП версии 2.3.3.76 или выше.
15 Dmitrii
 
гуру
20.10.16
19:44
(1) >> они реально это рекомендуют?

Да. Идеалогия такова, что расширения - это миниконфигурация, позволяющая более тесно интегрировать отчеты и обработки с основной конфой. Например, делать отчеты связанными с контекстом (как, внешние обработки заполнения и печати).

>> ВПФ-то хороша тем что для ее правки не надо никого выгонять из базы. Чего не скажешь про расширения.

Не вижу в этом особых проблем с расширениями. Насколько я знаю, обновление расширения тоже не требует обязательного выхода из базы.
16 oslokot
 
21.10.16
07:31
(15)  "Не вижу в этом особых проблем с расширениями. Насколько я знаю, обновление расширения тоже не требует обязательного выхода из базы."
обновление нет, применение изменений - да
17 Курцвейл
 
21.10.16
07:37
(16) Поэтому ВПФ лучше чем расширение

Задача расширения это облегчения обновления типовых.
Все остальное от лукавого (включая фантазии созидателей БСП)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший