1С открыть форму внешнего отчета

В версии 8.2 и старше: приложение не работает непосредственно с локальными файлами, расположенными на компьютере. Файлы должны находиться на сервере.

Поэтому для открытия внешней обработки нужно выполнить следующую последовательность действий:

  • Передать файл внешней обработки на сервер
  • Подключить внешнюю обработку
  • Открыть форму внешней обработки

Чтобы передать файл на сервер, его нужно поместить во временное хранилище. Для этого сначала на клиенте, в обработчике команды открытия внешней обработки, методом глобального контекста ПоместитьФайл() мы помещаем файл из локальной файловой системы во временное хранилище.

В четвертом параметре этого метода указывается признак интерактивного режима выбора файла внешней обработки. Если этот параметр Истина, то появляется диалог выбора файла, в котором можно выбрать файл для помещения в хранилище. В нашем примере этот параметр — Ложь, а путь к файлу, данные из которого будут помещены во временное хранилище, явно задан во втором параметре метода.

При вызове метода ПоместитьФайл() первым его параметром, АдресХранилища, мы указываем пустую строку. После выполнения метода в нее будет помещен путь к файлу внешней обработки во временном хранилище. Этот путь мы используем для того, чтобы подключить внешнюю обработку.

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

Для открытия формы внешней обработки используется метод глобального контекста ОткрытьФорму(), в который передается имя формы в виде следующей строки: "ВнешняяОбработка."+ ИмяОбработки +".Форма". В приведенном варианте открывается основная форма обработки.

При работе с внешними обработками нужно учитывать, что по-умолчанию они запускаются в безопасном режиме исполнения программного кода. Это значит, что некоторые возможности встроенного языка будут для них недоступны. Если есть уверенность, что внешняя обработка не содержит вредоносного кода, ее можно подключить в обычном режиме исполнения программного кода. Для этого используется третий параметр метода Подключить() менеджера внешних обработок.

Подробнее о режиме безопасного исполнения программного кода можно прочитать в документации: 1С:Предприятие 8.2. Руководство разработчика, Раздел 5.5.4.3: Объекты конфигурации — Ветвь конфигурации «Общие» — Роли и права доступа — Безопасный режим работы.

Подробнее об использовании метода ПоместитьФайл() можно прочитать в синтакс-помощнике: Глобальный контекст — Процедуры и функции работы с файлами.

Подробнее об использовании метода Подключить() можно прочитать в синтакс-помощнике: Прикладные объекты — Внешние обработки и отчеты — ВнешниеОбработкиМенеджер — Методы.

У объекта ВнешняяОбработкаОбъект, есть свойство ИспользуемоеИмяФайла, доступное в контексте сервера — может пригодиться.

Жизненный пример

Форма с деревом значений, в котором перечислены обработки из каталога на сервере:

При двойном щелчке по названию файла — происходит его программное открытие:

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

Содержание
  1. Программное открытие внешней обработки
  2. Программное открытие внешнего отчета
  3. Специальные предложения
  4. См. также
  5. Полезные процедуры и функции для программиста 141
  6. Таблица значений. Нюансы 192
  7. [Шпаргалка] Программное создание элементов формы 284
  8. Агрегатные функции СКД, о которых мало кто знает 343
  9. Три костыля. Сказ про фокусы в коде 123
  10. Отслеживание выполнения фонового задания 141
  11. Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив 254
  12. Фоновое выполнение кода в 1С — это просто 120
  13. Процедура ПриКомпоновкеРезультата 270
  14. СКД — наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты 131
  15. СКД — использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ 148
  16. Регистры сведений. За кулисами 129
  17. "Меньше копипаста!", или как Вася универсальную процедуру писал 183
  18. Создание отчетов с помощью СКД — основные понятия и элементы 209
  19. Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017 179
  20. Регистры накопления. Структура хранения в базе данных 176
  21. Выполнение внешней обработки в фоновом задании 149
  22. Выгрузка документа по условию 5
  23. Как прикрутить ГУИД к регистру сведений 23
  24. О расширениях замолвите слово. 193
  25. Git-репозитории для 1С-кода (опыт использования при небольших проектах) 202
  26. Трюки с внешними источниками данных 166
  27. Разработка и сценарное тестирование с Vanessa-ADD. Отчетность Allure. Автоматизация запуска сценариев 120
  28. Этюды по программированию. Хитрости создания расширений для конфигураций на БСП. Часть 1. 114
  29. Возможности типовых шаблонов ограничения доступа на уровне записей (RLS) 166
  30. Разработка и сценарное тестирование с Vanessa-ADD. Концепция, теория и сквозной пример создания сценария 222
  31. EnterpriseData – часть 2. Процесс выгрузки данных 127
  32. Новый подход к обмену данными EnterpriseData 207
  33. EnterpriseData — пример доработки правил конвертации без использования КД 3.0 в расширении конфигурации 119
  34. Программное заполнение пользовательских параметров и отборов СКД 136
  35. Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С 127
  36. Вспомогательные инструкции в коде 1С 106
  37. Произвольный код в фоновом режиме 165
  38. Основные понятия и механизмы оптимизации клиент-серверного взаимодействия в 1C 147
  39. Тестер: частые вопросы 156
  40. Повышаем эффективность разработки правил обмена 124
  41. Введение в механизм представлений в ЗУП ред. 3 156
  42. Как сделать запрос на изменение данных 75
  43. Строим графы средствами 1С (без GraphViz) 43

Программное открытие внешней обработки

Программное открытие внешней обработки состоит из нескольких этапов:

  1. Помещение внешней обработки во временное хранилище;
  2. Передача внешней обработки на сервер;
  3. Подключение внешней обработки на сервере;
  4. Открытие формы подключенной обработки на клиенте.

Рассмотрим описанные действия на примере. Открытие обработки производится при нажатии на кнопку (процедура КомандаОткрытьВнешнююОбработку () ).

Для передачи файлов с клиента на сервер (и наоборот) предназначено временное хранилище. Помещение файла во временное хранилище осуществляется методом

После успешного помещения файла во временное хранилище происходит передача управления в процедуру, указанную в описании оповещения (параметр ОписаниеОповещенияОЗавершении > ).

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

Заключительным этапом осуществляется открытие внешней обработки методом ОткрытьФорму () .

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

В представленном примере внешняя обработка должна храниться по фиксированному пути и иметь определенное имя: «D:МояОбработка.epf». Для предоставления пользователю возможности интерактивно выбрать внешнюю обработку необходимо немного доработать код:

Программное открытие внешнего отчета

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

Рассмотрим пример. Открытие отчета производится при нажатии на кнопку (процедура КомандаОткрытьВнешнийОтчет () ):

Остались вопросы?
Спросите в комментариях к статье.

Прописываем в форме следующий код:

Затем получаем форму на клиенте вызовом процедуры ПолучитьФормуВнешнегоОтчета(ИмяФормы), где ИмяФормы — строка с именем нужной формы.

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

Идея сыровата, но может кому поможет.

Специальные предложения

См. также

Полезные процедуры и функции для программиста 141

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

07.10.2019 9112 HostHost 23

Таблица значений. Нюансы 192

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019 8658 Yashazz 35

[Шпаргалка] Программное создание элементов формы 284

Программное создание практически всех популярных элементов формы.

06.09.2019 9941 rpgshnik 41

Агрегатные функции СКД, о которых мало кто знает 343

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019 13218 ids79 44

Три костыля. Сказ про фокусы в коде 123

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

03.09.2019 9319 YPermitin 68

Отслеживание выполнения фонового задания 141

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019 10681 ids79 16

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив 254

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019 14344 ids79 30

Фоновое выполнение кода в 1С — это просто 120

Как легко запускать выполнение в фоне, не прибегая к долгому описанию фоновых процедур.

02.08.2019 11509 avalakh 21

Процедура ПриКомпоновкеРезультата 270

26.07.2019 12588 2 vasilev2015 54

СКД — наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты 131

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019 12984 ids79 6

СКД — использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ 148

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «<…>», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019 11377 ids79 27

Регистры сведений. За кулисами 129

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019 8906 YPermitin 12

"Меньше копипаста!", или как Вася универсальную процедуру писал 183

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019 8139 SeiOkami 49

Создание отчетов с помощью СКД — основные понятия и элементы 209

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019 21222 ids79 17

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017 179

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019 12786 dmurk 134

Регистры накопления. Структура хранения в базе данных 176

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019 19221 YPermitin 27

Выполнение внешней обработки в фоновом задании 149

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019 11415 Eret1k 23

Выгрузка документа по условию 5

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий. А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019 6242 m-rv 2

Как прикрутить ГУИД к регистру сведений 23

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

16.04.2019 8889 m-rv 16

О расширениях замолвите слово. 193

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019 17920 ellavs 122

Git-репозитории для 1С-кода (опыт использования при небольших проектах) 202

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий").

28.03.2019 14080 ellavs 83

Трюки с внешними источниками данных 166

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019 14429 YPermitin 52

Разработка и сценарное тестирование с Vanessa-ADD. Отчетность Allure. Автоматизация запуска сценариев 120

Формируем отчетность о результатах выполнения сценариев. Автоматизируем запуск.

26.02.2019 10509 Vladimir Litvinenko 23

Этюды по программированию. Хитрости создания расширений для конфигураций на БСП. Часть 1. 114

Некоторые нюансы, если вы захотите создавать свои расширения.

04.02.2019 10906 milkers 8

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS) 166

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019 17450 ids79 9

Разработка и сценарное тестирование с Vanessa-ADD. Концепция, теория и сквозной пример создания сценария 222

Первая часть цикла публикаций, посвященных Vanessa-ADD

09.01.2019 27704 Vladimir Litvinenko 69

EnterpriseData – часть 2. Процесс выгрузки данных 127

Основные этапы выгрузки данных через ED, обработчики событий выгрузки, правила обработки данных, правила конвертации объектов, конвертация свойств первого и второго этапов, процедуры БСП, используемые при выгрузке данных, структура «КомпонентыОбмена».

26.12.2018 13899 ids79 27

Новый подход к обмену данными EnterpriseData 207

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

14.12.2018 23292 ids79 72

EnterpriseData — пример доработки правил конвертации без использования КД 3.0 в расширении конфигурации 119

В статье подробно описан реальный пример доработки обмена данными через EnterpriseData (универсальный формат обмена) между конфигурациями УТ 11.4 и Бухгалтерия 3.0

16.11.2018 20485 ids79 20

Программное заполнение пользовательских параметров и отборов СКД 136

Публикация представляет из себя краткие примеры того, как можно заполнять параметры СКД программно так, чтобы все параметры и отборы были доступны в быстрых настройках и в обычных (типовых) настройках параметров и отборов СКД.

13.11.2018 22293 Unk92 19

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С 127

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018 22386 ids79 40

Вспомогательные инструкции в коде 1С 106

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018 21590 tormozit 100

Произвольный код в фоновом режиме 165

Задача: реализовать выполнение произвольного кода в фоновом режиме без изменения конфигурации, т.е. во внешней обработке.

03.09.2018 15844 nikita0832 42

Основные понятия и механизмы оптимизации клиент-серверного взаимодействия в 1C 147

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

23.08.2018 23017 Rain88 42

Тестер: частые вопросы 156

Ошибкам бой — тесты норма жизни!

25.07.2018 21084 grumagargler 24

Повышаем эффективность разработки правил обмена 124

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018 20323 olegtymko 47

Введение в механизм представлений в ЗУП ред. 3 156

В нашей организации на первом же телефонном собеседовании на должность разработчика по ЗУП ред. 3 вас обязательно спросят о том, что такое "Представления".

04.06.2018 25707 xrrg 82

Как сделать запрос на изменение данных 75

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018 22273 m-rv 21

Строим графы средствами 1С (без GraphViz) 43

Множество статей на Инфостарте описывают, как работать с компонентой GraphViz, чтобы построить ориентированный граф. Но практически нет материалов, как работать с такими графами средствами 1С. Сегодня я расскажу, как красиво строить графы с минимальным пересечением. Нам этот метод пригодился для отрисовки алгоритмов в БИТ.Финансе, т.к. типовой механизм не устраивал. Еще это может быть полезно для визуализации различных зависимостей: расчета себестоимости, графы аффилированности компаний и т.д. Надеюсь, эта статья поможет сделать мир 1С красивее и гармоничней:) Итак, поехали.

23.05.2018 18070 slozhenikin_com 19

Оцените статью
Много толка
Добавить комментарий