Отчет и обработка находятся в разных ветвях дерева конфигурации

Добавил пользователь Евгений Кузнецов
Обновлено: 19.09.2024

Дополнительные отчеты и обработки — подсистема 1С БСП, предназначена для расширения функционала без изменения конфигурации.

Для более полного ознакомления можно развернуть демонстрационную конфигурацию по БСП. В ней есть необходимые примеры.

Что можно подключить

Виды разработок

Возможности БСП:

Сведения о внешней обработке

Значение поле может принимать одно из значений, возвращаемых функциями: ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработки ().

Эту табличную часть можно заполнить и вручную.

Колонки таблицы:

Идентификатор – строка (идентификатор команды).

Представление – описание команды.

Модификатор — строка (используется для дополнительных печатных форм).

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

Использование – режим запуска обработки.

Наиболее часто используются процедуры Печать() и ВыполнитьКоманду(), а также открытие формы без обращения к методу.

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

Таблица. Возможные варианты использования в таблице.

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

Строка, версия встроенной в конфигурации БСП. Необходима для поддержки совместимости. Можно не заполнять.

Булево, отображает режим запуска обработка. В безопасном режиме недоступен привилегированный режим, COM-соединение, загрузка dll, доступ к файловой системе и интернету.

Строка, комментарий, который характеризует обработку.

Строка, версия обработки.

Подготовка разработки к подключению.

Пример

Подключение к базе.

Отладка

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

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

Создание нового внешнего отчёта или обработки

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

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

Редактор форм

Панели инструментов для работы с формами

Сохранить как внешний отчет

Окно

Примечание: Любой существующий в конфигурации отчёт или обработка могут быть преобразованы во внешние, и наоборот. Кроме того, внешние отчеты и обработки могут быть добавлены в структуру прикладного решения как новые объекты.

Импорт внешних отчетов в систему

При этом на экран будет выведено стандартное окно открытия файла.

Окно открытия файла

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

Окно

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

Открытие внешнего отчёта (обработки) из программного кода

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

Для открытия формы в модальном режиме используется функция ОткрытьФормуМодально() , имеющая аналогичный синтаксис:

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

Возвращаемым значением обеих функций будет число 1, если действие выполнено (форма открыта), или 0, если действие не выполнено.


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

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

Кому интересно немного теории и ознакомиться с моим стандартом — переходите по ссылке, остальных томить не буду, переходим к делу и собственно шаблонам:

Вид обработки и Тип команды

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

Виды обработок

Дополнительная обработка

Заполнение объекта


Пример самой функции (ТипКомандыОткрытиеФормы):

Печатная форма

Создание связанных объектов

Пока нет примера

Пока нет примера

Дополнительный отчет

Предназначен для добавления произвольного отчета. Можно назначить в один или несколько подсистем (Продажи, Закупки и т.д.). Шаблон ниже:

Отчет

Немного теории и описание моего стандарта функции СведенияОВнешнейОбработке

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

Типы команд

ПараметрыРегистрации.Команды — это Таблица значений с колонками:

  • Идентификатор
  • Представление
  • Использование
  • Модификатор
  • ПоказыватьОповещение
  • ЗаменяемыеКоманды
  • Скрыть
  • ТипКомандыВызовСерверногоМетода
  • ТипКомандыВызовКлиентскогоМетода
  • ТипКомандыЗагрузкаДанныхИзФайла.
  • ТипКомандыЗаполнениеФормы
  • ТипКомандыОткрытиеФормы
  • ТипКомандыСценарийВБезопасномРежиме

С типами команд надо бы тему раскрыть, но как-нибудь в другой раз…

На этом пока все, тема не закрыта, эту статью, вероятно, буду подправлять, т.к. будет как справочник


2. Справочная информация о дополнительном отчете или обработке

3. Использование безопасного режима

4. Использование форм

5. Требования для проведения аудита

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

  • поставлять модули без исходных текстов или с установленным паролем на модуль
  • использовать средства запутывания (обфускации) исходных текстов

6. Требования к ресурсоемкости

Дополнительный отчет/обработка не должны приводить к чрезмерной нагрузке на компоненты сервиса или клиентское приложение

7. Требования к работоспособности

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

8. Требования к передаче данных за пределы сервиса

  1. Если в дополнительном отчете или обработке выполняется передача любых данных за пределы сервиса, эти операции должны подтверждаться пользователем.
  2. Если на этапе разработки дополнительного отчета или обработки существует возможность определить ресурсы сети Интернет, к которым будет выполняться обращение, необходимо реализовать запрос разрешений в программном интерфейсе дополнительного отчета и обработки. Такой запрос должен дать возможность пользователю еще перед установкой отчета или обработки ознакомиться, к каким ресурсам будет выполняться передача данных этим отчетом или обработкой.
  3. Если определить ресурсы сети Интернет, к которым будет выполняться обращение, невозможно, то:
    • для дополнительных отчетов или обработок, содержащих формы, перед выполнением операции следует запрашивать разрешение у пользователя (возможно, с сохранением полученного ответа). При запросе разрешения следует явно указывать, к каким ресурсам сети Интернет будет осуществляться обращение
    • для дополнительных отчетов/обработок, не содержащих форм (например, предназначенных для использования в качестве регламентного задания), рекомендуется: по умолчанию не выполнять операцию в коде серверной команды; создавать дополнительную команду с типом вызова Открытие формы, в которой реализовывать запрос подтверждения; начинать выполнение операции в серверном коде только после подтверждения пользователем выполнений операций

9. Юридические требования

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

9.2. Дополнительный отчет или обработка не должны содержать:

  1. Кода, который может повлечь порчу данных или дестабилизировать работоспособность сервиса
  2. Кода и данных, которые могут нарушать права третьих лиц, в том числе их авторское право
  3. Охраняемые законом сведения, в том числе коммерческую тайну или персональные данные третьих лиц

10. Требования к тестированию

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

Для каждого пользователя, созданного в п. 4, необходимо проверить:

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

11. Методические рекомендации

11.1. Примеры дополнительных отчетов и обработок

В демонстрационной информационной базе БСП:

  • открыв ее в режиме 1С:Предприятие — в справочнике Дополнительные отчеты и обработки
  • открыв ее Конфигуратором — в ветке конфигурации Общие / Общие макеты (например, _ДемоЗаполнениеКонтрагентов, _ДемоОтчетПоСчетамНаОплатуГлобальный и др

При необходимости, вы можете сохранить эти примеры в файлы и разрабатывать дополнительные отчеты и обработки на их основе

11.2. Рекомендации по разработке

11.3. Имена метаданных дополнительного отчета или обработки

  1. При разработке дополнительных отчетов и обработок для модели сервиса следует учитывать что имя метаданных дополнительного отчета и обработки может быть произвольным, а соответственно и полные имена всех форм дополнительного отчета и обработки
  2. Получить имя объекта метаданных можно на сервере методом РеквизитФормыВЗначение(ИмяОсновногоРеквизита).Метаданные().ПолноеИмя()
  3. Если при работе в модели сервиса при открытии дочерней формы дополнительного отчета или обработки возникает ошибка Неизвестное имя формы, то это скорее всего связано с неправильным использованием имен форм в дополнительном отчете или обработке

11.4. О копировании кода из типовой конфигурации

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

11.5. Заполнение справочной информации

Следует ясно и понятно указывать справочную информацию о дополнительном отчете или обработке. Это необходимо:

Читайте также: