v8.2 УП: Практические нюансы подключения внешних обработок и печатных форм

29.08.13

Разработка - БСП (Библиотека стандартных подсистем)

Статья создана с целью помощь начинающим авторам внешних обработок, отчётов и печатных форм, подключаемых к типовым конфигурациям на базе БСП.

В своё время задался вопросом создания внешней обработки для УНФ и проштудировал несколько статей на эту тему, среди которых встретил и данную публикацию.

Однако, в статье нет примеров для каждого случая. На практике пришлось столкнуться с нюансами, один из которых присущ конкретному релизу УНФ, а второй, подозреваю универсален для всех конфигураций на БСП.

 

Нюанс конфигурации "Управление небольшой фирмой, редакция 1.4 (1.4.6.19)"

Замечена эта особенность мной была и на предыдущих релизах и до которого просуществует - неизвестно. Выглядит она так...

Подключение внешней обработки

В процессе подключения внешней обработки необходимо указать разделы командного интерфейса, в которых она будет размещаться. За это отвечает пункт "Размещение". Нажимаем гиперссылку "Не определено" и в открывшемся окне наблюдаем пустой список. Исследование показало, что в релизе 1.4.5.25 всё было хорошо. Что же случилось? Ответ кроется в общем модуле "ДополнительныеОтчетыИОбработкиПереопределяемый": процедуры "ОпределитьРазделыСДополнительнымиОбработками" и "ОпределитьРазделыСДополнительнымиОтчетами" пусты. Необходимо добавить в них нужные разделы, как это было раньше. Исходя из принципа внесения минимальных изменений в типовую конфигурацию, снимаем с поддержки только корневой элемент конфигурации для возможности создания новых объектов. Без этого никак.

Процедура ОпределитьРазделыСДополнительнымиОбработками(Разделы) Экспорт

  Разделы.Добавить(Метаданные.Подсистемы.НастройкаИАдминистрирование);

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

Процедура ОпределитьРазделыСДополнительнымиОтчетами(Разделы) Экспорт

  Разделы.Добавить(Метаданные.Подсистемы.НастройкаИАдминистрирование);

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

Если указать стандартный раздел "НастройкаИАдминистрирование", то всё заработает без дополнительных модификаций. Если же нужен иной раздел, надо проверить существование общей команды "ДополнительныеОбработки[НазваниеРаздела]". В типовой УНФ на данный момент присутствует команда "ДополнительныеОбработкиАдминистрирование" для одноимённого раздела. Допустим, нам нужно добавить обработку в свой раздел "Доработки". Копированием существующей команды "ДополнительныеОбработкиАдминистрирование" создаём свою команду "ДополнительныеОбработкиДоработки", включаем её в нужную подсистему, а в обработчике меняем только название подсистемы. Получается вроде этого:

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

  ДополнительныеОтчетыИОбработкиКлиент.ОткрытьФормуКомандДополнительныхОтчетовИОбработок(
  ПараметрКоманды,
  ПараметрыВыполненияКоманды,
  ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка(),
  "Доработки"
  );

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

Теперь в нужной нам подсистеме появляется пункт "Дополнительные обработки" и если мы включали эту подсистему в список выбора разделов в процедуре "ОпределитьРазделыСДополнительнымиОбработками", то для обработок отныне доступно указание этой подсистемы.

 

Теперь добрались и до второго нюанса. Это создание и подключение внешней обработки, аналогичной внешней обработке заполнения ТЧ для конфигураций с обычным интерфейсом. Такая обработка вызывается, например, из документа и каким-либо образом обрабатывает табличную часть. В упоминавшейся ранее статье указывается лишь перечень значений для параметра "Использование". Для обычных обработок это "ОткрытиеФормы". Нам же, допустим, надо каким-нибудь образом обработать табличную часть без открытия окон. Подозрение падает на значение "ВызовСерверногоМетода". Описание гласит, что "ВызовСерверногоМетода – вызов экспортного метода из модуля обработки". Если попробовать сделать экспортную процедуру в модуле обработки, то возникнет ошибка, ссылающаяся на процедуру "ВыполнитьНазначаемуюКомандуДополнительногоОтчетаИлиОбработки" модуля "ДополнительныеОтчетыИОбработки":

Процедура ВыполнитьНазначаемуюКомандуДополнительногоОтчетаИлиОбработки(ВнешнийОбъект, Знач ИдентификаторКоманды, ПараметрыКоманды, ОбъектыНазначения, Знач СценарийВБезопасномРежиме = Ложь)

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

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

Допускаю, что этот механизм, ранее мог вызывать экспортную процедуру, но сейчас он работает иначе. Вызывается экспортная процедура "ВыполнитьКоманду" с двумя (или тремя) параметрами: ИдентификаторКоманды и ОбъектыНазначения. В первом указывается название команды, которой воспользовался пользователь, а во втором - массив ссылок на объекты, к которым применяется данная команда. Соответственно, в модуле обработки необходимо добавить процедуру, куда можно вставить обработчик команды:

Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
  ЗаписьЖурналаРегистрации("Вызов команды " + ИдентификаторКоманды);
КонецПроцедуры

Вступайте в нашу телеграмм-группу Инфостарт

Внешняя обработка печатная форма управляемый интерфейс

См. также

Рефакторинг и качество кода БСП (Библиотека стандартных подсистем) Механизмы платформы 1С Программист 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Использование Библиотеки стандартных подсистем позволяет разработчикам 1С значительно ускорить процесс создания решений за счет готового универсального кода, поддерживаемого и обновляемого официальным вендором. В статье рассказывается про роль и применение «Библиотеки стандартных подсистем» (БСП), примеры интеграции и подключения подсистем.

23.09.2025    5625    AlexeyPROSTO_1C    1    

15

БСП (Библиотека стандартных подсистем) Программист 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Уже заезженная тема с выводом в Word макетов при помощи БСП, но некоторые коллеги все равно спрашивают. Поэтому размещаю тут материал, как это сделать за три простых шага. Решение, которым я успешно пользуюсь в случаях, когда не нужна универсальность подключаемых внешних печатных форм.

16.09.2025    3954    _seerco2002    0    

33

Нейросети БСП (Библиотека стандартных подсистем) Инструментарий разработчика Программист 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Telegram-бот для разработчиков 1С, работающих с БСП. Если не знаете нужный под задачу метод или не помните название, то опишите боту задачу и получите список подходящих экспортных методов из общих модулей БСП.

02.09.2025    5398    krasnov322    22    

41

Анализ учета БСП (Библиотека стандартных подсистем) 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Расширение для конфигураций на базе БСП 3.х. Позволяет создавать новые отчеты путем соединения или объединения других отчетов.

22.05.2025    3965    128    seperblunt    9    

25

Работа с интерфейсом БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Программист 1С:Предприятие 8 1C:ERP Бесплатно (free)

В этой статье я расскажу, как в конфигурации 1С:ERP 2.5 при начале работы системы настроить открытие своих нетиповых форм (в том числе и из внешних обработок). Данную методику можно использовать как на тонком клиенте, так и на мобильном или веб-клиенте, а также в мобильном приложении.

12.05.2025    4813    AlexeyPROSTO_1C    2    

18

БСП (Библиотека стандартных подсистем) Обновление 1С Программист 1C:ERP Бесплатно (free)

В данной статье рассмотрен один из вариантов добавления собственных обработчиков обновления в расширении конфигурации. При смене версии расширения - автоматический вызов процесса обновления информационной базы.

29.04.2025    5007    krasnoshchekovpavel    7    

19

БСП (Библиотека стандартных подсистем) Механизмы платформы 1С Программист 1С:Предприятие 8 Бесплатно (free)

Описание способа создания глобального обработчика оповещений (событие формы), не привязанного к какой-то конкретной форме.

01.04.2025    3536    krasnoshchekovpavel    0    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. serge_focus 4 06.09.13 13:41 Сейчас в теме
Спасибо за "розжовыване" темы. Пригодится.
2. serge_focus 4 06.09.13 13:45 Сейчас в теме
Плохо, что в новой версии сайта исчезла кнопка печать (или версия для печати). Приходится Копи-пастить ;)
3. tr75 17.05.14 08:25 Сейчас в теме
Согласен.Статья полезная
Для отправки сообщения требуется регистрация/авторизация