Запуск внешних отчетов и внешних обработок из программного кода

17.08.11

Разработка - Универсальные функции

Часть внешних обработок и отчетов хотелось бы запускать из программного кода. Вот почти штатный способ это сделать. Это примерно как у улитки, у которой всё с собой (всё в базе).

 

 

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

           
ЭтоОбработка = ?(СсылкаНаОбъект.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Обработка
, Истина, Ложь);
           
ЭтоОтчет = ?(СсылкаНаОбъект.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет
, Истина, Ложь);

            Если НЕ (
ЭтоОбработка ИЛИ ЭтоОтчет
) Тогда
                Возврат;
            КонецЕсли;

           
ИмяФайла = ПолучитьИмяВременногоФайла
();
           
ДвоичныеДанные = СсылкаНаОбъект.ХранилищеВнешнейОбработки.Получить
();
           
ДвоичныеДанные.Записать(ИмяФайла
);

            Попытка
                Если
ЭтоОбработка
Тогда
                   
Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла
);
                Иначе
                   
Форма = ВнешниеОтчеты.ПолучитьФорму(ИмяФайла
);
                КонецЕсли;

                Если Не
Форма
= Неопределено Тогда
                    
Форма.Открыть();
                Иначе
                   
Сообщить("Форма открываемой обработки или отчета не определена.", СтатусСообщения.БезСтатуса
);
                КонецЕсли;
            Исключение
                Если
ЭтоОбработка
Тогда
                   
Предупреждение(
"Выбранный файл не является внешней обработкой.
                                    |Либо, данная обработка не предназначена для
                                    |запуска в этой конфигурации."
);
                Иначе
                   
Предупреждение(
"Выбранный файл не является внешним отчетом.
                                    |Либо, данный отчет не предназначена для
                                    |запуска в этой конфигурации."
);
                КонецЕсли;
            КонецПопытки;

           
УдалитьФайлы(ИмяФайла
);



Спасибо alexk-is за Разукрашку на регулярных выражениях.

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

См. также

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

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

14.05.2025    5407    DeerCven    15    

57

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

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

21.05.2024    46316    dimanich70    83    

164

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    6845    6    John_d    13    

59

Универсальные функции Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    57364    atdonya    31    

68

Универсальные функции Программист 1С:Предприятие 8 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    8610    ke.92@mail.ru    17    

68

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

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    22765    YA_418728146    8    

174
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
0. ::Green:: 52 18.08.11 08:12 Сейчас в теме
Часть внешних обработок и отчетов хотелось бы запускать из программного кода. Вот почти штатный способ это сделать. Это примерно как у улитки, у которой всё с собой (всё в базе).

Перейти к публикации

1. anig99 2861 18.08.11 08:12 Сейчас в теме
За беспричинное передирание кода из типовых и изобретение велосипеда
2. mr zafod 23 18.08.11 13:34 Сейчас в теме
Вы извините конечно, все здорово, вы молодец, что написали материал, но код откуда?
6. anig99 2861 18.08.11 20:27 Сейчас в теме
(2) выдран из типовых, справочник ВнешниеОбработки
(4) тогда давайте сканы детсадовских прописей выкладывать...Надо же с чего-то начинать.

Ещё раз. На..уй с пляжа с такими публикациями. Вообще уже никакого смысла не несут.
3. Yashazz 4886 18.08.11 16:24 Сейчас в теме
Пхе. Вы бы, мил человек, действительно что дельное написали. Например, что делать, когда справочника "ВнешниеОбработки" или ему подобного нет в помине, а версия платформы 8.1 и ниже. Потому как в 8.2 и без того можно в режиме внешнего соединения использовать внешки. А так - ну, кусок кода как он есть, и что?
4. kote 537 18.08.11 17:52 Сейчас в теме
(1,2,3) Ладно, не ругайтесь :) Все с чего-то начинают..
Мах; MasterTonLab; +2 1 Ответить
5. Cat-MF 18.08.11 18:00 Сейчас в теме
На самом деле, многие об этой возможности даже не знают, а тут прозрели.
Кстати что-то со строчкой
Форма.АвтоРежим = Истина;
у меня работать не хочет.
IgorKoenigsberg; ivan453; ::Green::; +3 1 Ответить
7. anig99 2861 18.08.11 20:29 Сейчас в теме
(5) тупые может и не знают. А если вдруг надо, то можно открыть справочник по языку, синтаксис-помощник, типовой код в конце концов.
8. zfilin 2376 25.08.11 14:07 Сейчас в теме
Как-то слишком уж для начинающих... =(
10. ::Green:: 52 03.10.11 01:44 Сейчас в теме
(8) zfilin, снобизм - очень нехорошая черта многих программистов, тут форум не для пантов, а для того чтобы взаимно помогать себе и другим, поэтому я посчитал нужным, что возможно это поможет другим
arbeitenmail; HaIIpuKoJIe; YanTsys; +3 Ответить
11. zfilin 2376 03.10.11 10:11 Сейчас в теме
(10) Хыхыхы. Я сам точно так же писал в ответ на критику собственных публикаций. =)
Ладно, я для себя уяснил, что нужно быть проще. Надеюсь вы уяснили из комментариев (не только моих), что уровень публикаций надо бы подтянуть.
Удачи в начинаниях, будем ждать чего-нибудь интересненького.

P.S.: Кстати, по теме! Чего действительно стоило бы сделать, так это подробный обзор БСП. А-то им тоже многие не пользуются, а она как раз и делалась как средство борьбы с "велосипедизмом". Там вам будут и внешние обработки и все что хотите.
12. anig99 2861 03.10.11 10:30 Сейчас в теме
(11) полное описание БСП есть на сайте ИТС
13. zfilin 2376 03.10.11 10:55 Сейчас в теме
9. quarion 27.09.11 18:08 Сейчас в теме
Большое спасибо! обработка очень помогла
14. mvgfirst 6 08.02.12 19:47 Сейчас в теме
Возможно я покажусь вам ламером, но как же не изобретая велосипед, как это сделал автор, открыть из программного кода внешнюю обработку зарегистрированную в справочнике Внешних обработок.
Существует экспортная функция или процедура обладающая данным функционалом? Да? Скажите как называется? Я у себя в УТП не нашел... (возможно мне нужно открыть глаза).
18. Zebar 69 13.08.12 13:42 Сейчас в теме
Присоединяюсь к (14)
Как назначить на кнопку на панели инструментов внешнюю обработку? Сможете подсказать более правильный вариант?
20. Ktuhh 30.07.14 12:49 Сейчас в теме
(18) Zebar, если уж дорабатывается панель инструментов, почему бы не сделать и обработку внутренней
21. Neromancer 22.09.14 13:21 Сейчас в теме
(20) Fannasankh, ну, допустим, что так проще обновлять обработку (добавление нового, убирать ошибки, и т.п.). Потому что проще - не надо лезть в конфигурацию, обновлять (зачастую динамически), протестить ее проще, откатить на более раннюю, если надо.
22. Ktuhh 30.09.14 16:00 Сейчас в теме
(21) Neromancer, мне сложно представить ситуацию, в которой обновление именно обработки будет таким частым, что станет проблемой при нахождении обработки в базе.
15. mika_mika 2 08.04.12 20:16 Сейчас в теме
По-моему, подобное решение имеет место быть и быть полезным. Например, для реализации вызова внешних отчетов/обработрк кнопками панелей инструментов (не настраиваемой пользовательской, а добавленной в конфигураторе). Или кто-то знает способ проще и изящнее? Поделитесь.
16. Трактор 1274 18.05.12 18:04 Сейчас в теме
Спамерская публикация.
17. Гость 25.06.12 20:55
Ну и что вы тут накинулись на человека, ну не нужно вам это - не читайте, а кому то пригодится...злыдни какие то.
Cthulhu; Dmitri93; +2 Ответить
19. rybusha 99 11.02.14 15:18 Сейчас в теме
Очень помогло ,спасибо.
23. XelOla 19 11.04.18 00:51 Сейчас в теме
а как исполнить отчет не открывая? и в своем отчете использовать результат другого?
Для отправки сообщения требуется регистрация/авторизация