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

1С 8.3 : Как открыть внешнюю обработку или отчет программно 1С УП?

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

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

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

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

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

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

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

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

2735fd8e8be74cfda73e21d4f8dc088d

Источник

Как программно открыть внешний отчет из «Дополнительных отчетов и обработок» и передать параметры (при помощи БСП)

Дано: конфигурация на платформе 1С 8.3. В «Дополнительные отчеты и обработки» загружен отчет или обработка.

Задача: открыть данный отчет/обработку программно в коде, например, по кнопке.

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

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

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

Итак, в БСП есть модуль работы со справочником «Дополнительные отчеты и обработки» (ДополнительныеОтчетыИОбработки), в частности есть процедура открытия отчета и функция подключения внешнего отчета:

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

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

Поэтому решила использовать функцию под номером 2, что подключает нужный отчет/обработку, который затем можно открыть по имени, возвращаемому данной функцией.

Итак, сам пример (полный код):

Пример формы с кнопками, вызывающими эти процедуры:

4b41344d712bfaf79d0a74833de955d6

Скачать пример данной формы можно в файлах к статье.

Если вызывается отчет на СКД, то нужно создать для него типовую форму. Подробнее см. Как добавить типовую форму для СКД

Примечание: создавать форму, как оказалось, не обязательно. См. вариант вызова СКД без создания формы

Чтобы сработал код передачи параметров в СКД (ОткрытьВнешнийОтчетСКДсПараметром), нужно в модуле объекта СКД добавить код, принимающий эти параметры:

Скачать пример данного СКД отчета можно в файлах к статье.

Также пробовала передавать параметры в СКД вот так:

Однако возникала ошибка: Невозможно применить фиксированные настройки. Пересекаются элементы отбора.

64c7828a2e0175459c59ac6578d4021b

Поэтому выше описала, как передавала параметры отбора в отчет СКД при котором такой ошибки не было.

Обработки тестировались на демо-базе БСП версии 2.4.5.

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

Источник

Как открыть внешнюю обработку или отчет программно 1С УП?

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

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

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

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

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

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

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

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

2735fd8e8be74cfda73e21d4f8dc088d

Источник

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

=== Для толстого клиента ===

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

Форму не назначаем отчету. Форма нужна только для работы события расшифровки элемента формы Результат. В примере расшифровка документа ПоступлениеТоваровУслуг

Это все правки в Отчете, т.е. в будущем его будет очень легко обновлять, если это типовая конфигурация.

2. В том месте, где нужно вызвать Отчет программно, пишем вызов отчета.

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

Чтобы работала расшифровка передаем ДанныеРасшифровкиКомпоновкиДанных в СкомпоноватьРезультат(). При этом создавать/править для простых случаев процедуру ПриКомпоновкеРезультата() в модуле объекта Отчета не требуется.

Пример будет работать в любой конфигурации на любой версии платформы 8.3.* под толстым клиентом.

=== Для тонкого клиента ===

Для полноты описания: в случае с УФ под тонкого клиента действия намного проще.

Создаем как раньше конструкторами а) макет СКД и назначаем его как основную схему компоновки данных, б) управляемую форму отчета. При создании Формы отчета достаточно только поставить галочку использовать СКД.

b06308b3f41ca1261e037ec17095dd5f

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

Расшифровка будет работать для выбранных полей ссылочного типа.

Источник

Как программно открыть внешнюю обработку?

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

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

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

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

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

Подробнее о режиме безопасного исполнения программного кода можно прочитать в документации:

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

027794069dc99169f60777eddbd180b6

Подробнее об использовании метода Подключить() можно прочитать в синтакс-помощнике:

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с открыть форму владелец
  • 1с открыть форму в отдельном окне программно