Обычное приложение. Обращение к функциям и процедурам в модуле внешней обработки

20.04.23

Разработка - Механизмы типовых конфигураций

Обычное приложение. Обращение к функциям и процедурам в модуле внешней обработки по аналогии с обращением к общими модулям. Можно поставить на форму или модуль объекта в составе конфигурации в тех случаях , когда , например, порядок расчета некоторых данных может быть изменен, а пользователей из программы выгонять не хочется.

Доброго времени суток, уважаемые коллеги. 

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

В 1С 7.7 была интересная возможность - заменить модуль формы или модуль объекта на текст из каталога ExtForms. 

Это позволяло "на ходу" вносить изменения, не выгоняя пользователей из базы.  

В 8.3 есть замечательнейший механизм расширений, который эту задачу реализует ещё лучше. 

А если используется обычное приложение, да ещё с режимом совместимости (ну не все пока перешли на ERP), да пользователей не всегда хочется выгонять, а пересчитать нужно срочно (концепция вдруг поменялась - исключительно вымышленная ситуация).

Так вот, для таких случаев есть простой и не новый механизм. 

Заключается он в том, что некоторую часть расчетов можно поместить во внешнюю обработку и вполне себе ее оттуда заполучить как из общего модуля. 

Предположим, у нас есть внешняя обработка, которая "вживлена" в УПП. 

В модуле этой обработки есть экспортная (!) функция, в которой "зашит"   некий расчет

Функция РасчитатьВыпуск(НачДата,КонДата,Оргазация,Подразделение) Экспорт

.................

Итак, например, в модуле документа нам нужно посчитать именно этот "неустаканившийся" выпуск. 

Находим нашу обработку.

внОбработка = Справочники.ВнешниеОбработки.НайтиПоКоду("000000473");  

    

Сохраним ее двоичные данные (по сути это наша обработка), например, в каталог временных файлов

   ПутьКФайлу = КаталогВременныхФайлов()+"врВнешняяОбработка.epf";

     ДвоичныеДанные = внОбработка.ХранилищеВнешнейОбработки.Получить();  
    Если НЕ ДвоичныеДанные = Неопределено Тогда   
        Попытка
            ДвоичныеДанные.Записать(ПутьКФайлу);
            ФормаОбработки =ВнешниеОбработки.ПолучитьФорму(ПутьКФайлу); 
            ФормаОбработки.Открыть();  
            Результат = ФормаОбработки.РасчитатьВыпуск(НачДата,КонДата,Оргазация,Подразделение);
            ФормаОбработки.Закрыть();
        Исключение
        КонецПопытки;
        
    КонецЕсли;    

Через двоичные данные получаем саму обработку, и сохраняем ее;

Открываем как обычную обработку. Причем, как в мультике "Следствие ведут колобки" - "Слон не нужен- нужен бумага" и нам сама обработка не нужна нужен момент обращения к ней. В момент открытия спокойно обращаемся к экспортным процедурам и функциям, расположенным в модуле этой обработки.

Вот такой простой способ, абсолютно не претендующий на новизну.

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

Обычное приложение. Обращение к модулям внешней обработки.

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Программист 1С 8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

Данное расширение — это механизм, сделанный при помощи двух модулей из БСП (3.1.11.415), который позволяет динамически добавлять команды (кнопки и не только при желании) на формы управляемого приложения без изменения конфигурации. На примере данного механизма удобно рассмотреть некоторые возможности для расширения функционала объектов, которые подключены к механизму библиотеки стандартных подсистем.

1 стартмани

20.03.2026    3328    InFlach    0    

5

Механизмы типовых конфигураций Программист Стажер 1С 8.3 1С:Зарплата и Управление Персоналом 3.x Бесплатно (free)

Интервальные регистры в 1С:ЗУП 3.1 заменяют тяжелые срезы последних, ускоряя отчеты по кадровым данным через интервалы ДатаНачала–ДатаОкончания. Разбираем отличия, примеры кода, плюсы и способы синхронизации.

12.03.2026    4912    AlexeyPROSTO_1C    4    

20

Механизмы типовых конфигураций Программист Стажер 1С 8.3 1С:Зарплата и Управление Персоналом 3.x Бесплатно (free)

Как в ЗУП работает механизм расстановки времени в регистрах сведений с помощью подписки на события?Рассматривается логика сдвигов для разных типов документов (прием, увольнение, отпуск) и дается инструкция по подключению нового регистра к этому механизму.

03.03.2026    3001    YA_1100893639    1    

8

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

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

11.08.2025    10718    user1988284    0    

25
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. AneJIbcuH 39 19.09.23 13:46 Сейчас в теме
Что-то немного перемудрено, зачем получать форму, открывать, закрывать..

Обработка = ВнешниеОбработки.Создать(ПутьКФайлу,Ложь);

Всё, модуль объекта доступен и его экспортные процедуры и функции
2. daa147 6 14.11.23 15:02 Сейчас в теме
Для отправки сообщения требуется регистрация/авторизация