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

20.04.23

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    

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

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

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

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

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

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

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

См. также

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

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    1738    PROSTO-1C    0    

18

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

Эта ошибка была обнаружена мной в типовой конфигурации 1С:Комплексная автоматизация 2 (2.5.16.115), БСП версия 3.1.9.302. Возникает она после того, как вы добавляете в расширение бизнес-процесс или задачу, выполняете обновление идентификаторов метаданных расширений, но ошибка при записи любого элемента справочника "Профили групп доступа" всё равно остаётся.

01.07.2024    1747    Vidz    0    

11

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Очень часто в написании кода требуется обращаться к предопределённым значениям. Если идёт обращение к типовым предопределённым значениям, то проблем не возникает.

24.06.2024    1106    olja-ljaaa    0    

3

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Статистическая выборка сценариев и точек изменения отчетов на общей форме ФормаОтчета в типовых конфигурациях. Примеры кода.

03.06.2024    4893    Serg2000mr    32    

108

Механизмы типовых конфигураций Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

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

1 стартмани

11.04.2024    1058    tango    5    

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

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

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