Имя: Пароль:
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) Поэтому ВПФ лучше чем расширение

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