Подсистема “Дополнительные отчеты и обработки” является одной из ключевых подсистем Библиотеки стандартных подсистем (БСП) для 1С:Предприятие, предназначенной для расширения функционала типовых конфигураций без изменения их метаданных. В современных версиях БСП 3.1.x эта подсистема обеспечивает мощные возможности для интеграции внешних обработок и отчетов с сохранением конфигурации на поддержке.
Архитектура и основные компоненты
Структура подсистемы
Подсистема входит в группу “Средства администрирования и обслуживания” БСП и включает несколько ключевых компонентов:
Справочник “Дополнительные отчеты и обработки” служит центральным хранилищем метаданных о подключенных внешних файлах. Он содержит табличные части для команд, назначений, разрешений и расписаний, обеспечивая полное управление жизненным циклом внешних обработок.
Система общих модулей обеспечивает клиент-серверное взаимодействие:
ДополнительныеОтчетыИОбработки
- серверные процедуры управленияДополнительныеОтчетыИОбработкиКлиент
- клиентские процедурыДополнительныеОтчетыИОбработкиКлиентСервер
- общие функцииДополнительныеОтчетыИОбработкиВызовСервера
- вызовы сервера с клиента
Типы поддерживаемых разработок
Дополнительные отчеты включают обычные отчеты и глобальные отчеты, доступные из всех разделов интерфейса.
Дополнительные обработки охватывают широкий спектр функциональности:
- Обычные и глобальные обработки
- Внешние печатные формы
- Обработки заполнения документов/справочников
- Создание связанных объектов
- Загрузка данных из внешних файлов
Требования к внешним обработкам
Обязательные технические требования
Совместимость с версией БСП является критически важным фактором. Для современных версий БСП 3.1.11 требуется платформа 1С:Предприятие 8.3.24 и выше с режимом совместимости 8.3.24-8.3.27.
Безопасный режим настоятельно рекомендуется для всех внешних обработок. При БезопасныйРежим = Истина
ограничивается доступ к файловой системе, запрещаются COM-соединения и загрузка внешних DLL, блокируется привилегированный режим.
Функция регистрации СведенияОВнешнейОбработке()
должна быть обязательно экспортной в модуле объекта обработки.
Ограничения и особенности
В безопасном режиме действуют строгие ограничения: недоступен привилегированный режим, запрещены COM-соединения, ограничен доступ к файловой системе и интернету, запрещена загрузка внешних DLL. Эти ограничения обеспечивают безопасность, но требуют использования специальных разрешений для расширенного функционала.
Детальная реализация функции СведенияОВнешнейОбработке()
Базовая структура функции
Функция СведенияОВнешнейОбработке() Экспорт
ВерсияБСП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки();
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(ВерсияБСП);
// Обязательные параметры
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Наименование = "Наименование обработки";
ПараметрыРегистрации.Версия = "1.0.0";
ПараметрыРегистрации.БезопасныйРежим = Истина;
ПараметрыРегистрации.Информация = "Описание функциональности";
// Назначение - объекты, с которыми работает обработка
ПараметрыРегистрации.Назначение.Добавить("Документ.ПоступлениеТоваровУслуг");
// Настройка команд
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = "Выполнить обработку";
НоваяКоманда.Идентификатор = "ВыполнитьОбработку";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
НоваяКоманда.ПоказыватьОповещение = Истина;
Возврат ПараметрыРегистрации;
КонецФункции
Ключевые параметры структуры
Обязательные поля включают вид обработки, наименование, версию и режим безопасности. Вид определяет тип обработки (ДополнительнаяОбработка, ПечатнаяФорма, ЗаполнениеОбъекта, СозданиеСвязанныхОбъектов, Отчет). Наименование служит для отображения в интерфейсе. Версия должна быть в формате “x.x.x”. БезопасныйРежим контролирует режим выполнения.
Дополнительные поля расширяют функциональность: информация содержит описание функционала, назначение определяет массив объектов конфигурации для привязки, команды описывают доступные действия, разрешения настраивают права для небезопасного режима.
Механизм загрузки и управления внешними обработками
Процесс регистрации
Создание элемента справочника начинается с добавления новой записи в справочник “Дополнительные отчеты и обработки”. При выборе .epf файла система автоматически анализирует его содержимое, вызывая функцию СведенияОВнешнейОбработке()
для автоматического заполнения полей карточки.
Настройка размещения позволяет точно указать разделы командного интерфейса, где будут доступны команды обработки. После сохранения обработка становится доступной пользователям согласно настроенным правам доступа.
Программное управление
// Пример программной загрузки
ИмяОбработки = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(СсылкаНаОбработку);
ПараметрыФормы = Новый Структура("ПараметрОтбора", ЗначениеОтбора);
ОткрытьФорму("ВнешняяОбработка." + ИмяОбработки + ".Форма", ПараметрыФормы);
Хранение данных осуществляется через ХранилищеОбработки
(двоичные данные .epf файла), ХранилищеНастроек
(пользовательские настройки) и ДополнительныеСвойства
(метаданные обработки).
Настройка команд и типы выполнения
Основные типы команд
ОткрытиеФормы открывает основную форму обработки без дополнительных обработчиков. ВызовСерверногоМетода вызывает процедуру ВыполнитьКоманду()
на сервере и требует реализации соответствующего обработчика. ВызовКлиентскогоМетода выполняется на клиенте и подходит для интерфейсных операций. Печать предназначена для печатных форм и требует реализации процедуры Печать()
.
Структура команды
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = "Отображаемое название";
НоваяКоманда.Идентификатор = "УникальныйИдентификатор";
НоваяКоманда.Использование = ТипКоманды;
НоваяКоманда.ПоказыватьОповещение = Истина;
НоваяКоманда.Модификатор = ""; // Для специальных случаев
Размещение в интерфейсе
Команды могут размещаться в формах объектов (появляются в меню “Еще”), разделах интерфейса (в подменю “Дополнительные обработки”), или настраиваться как быстрый доступ для выбранных пользователей.
Система безопасности и права доступа
Основные роли
Интерактивное открытие внешних отчетов и обработок предоставляет базовые права для работы с внешними обработками. Дополнительные отчеты и обработки дает полномочия для управления справочником. Администрирование дополнительных отчетов и обработок предоставляет административные права.
Механизмы контроля безопасности
Безопасный режим выполнения по умолчанию активен для всех внешних обработок. Защита от опасных действий настраивается на уровне пользователя и обеспечивает дополнительные предупреждения при выполнении потенциально опасных операций.
Система разрешений
// Примеры разрешений для безопасного режима
РаботаВБезопасномРежиме.РазрешениеНаИспользованиеВнешнегоМодуля()
РаботаВБезопасномРежиме.РазрешениеНаИспользованиеВнешнейКомпоненты()
РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса()
РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов()
Профили безопасности управляются через константу “Используются профили безопасности” и обеспечивают глобальный контроль над выполнением обработок.
Регламентные задания и автоматизация
Настройка автоматического выполнения
В таблице команд доступна колонка “Выполнять команду по расписанию”, позволяющая настроить автоматический запуск обработок. Основная концепция БСП - передавать регламентному заданию заранее подготовленную настройку.
Практический пример
// Настройка двух команд: интерактивной и для расписания
ДобавитьКоманду(ТаблицаКоманд, "Обновить часы", "Обновить", "ВызовСерверногоМетода", Ложь);
ДобавитьКоманду(ТаблицаКоманд, "Обновить часы (расписание)", "ОбновитьПоРасписанию", "ВызовСерверногоМетода", Ложь, Истина);
Особенности работы
Клиент-серверный режим является обязательным для корректной работы регламентных заданий. При записи справочника внешних обработок регламентное задание может перезаписываться, что требует учета при настройке. Параметризация позволяет сохранять параметры настроек для использования при автоматическом выполнении.
Логирование и мониторинг
Встроенные механизмы
Оповещения через параметр ПоказыватьОповещение
обеспечивают появление окна оповещения перед началом и после окончания выполнения команд. Режимы публикации включают “Используется”, “Режим отладки”, “Отключена” для контроля доступности обработок.
Продвинутый мониторинг
Фоновые задания интегрируются с механизмом длительных операций БСП:
// Использование механизма длительных операций
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне();
ПараметрыВыполнения.НаименованиеФоновогоЗадания = "Выполнение дополнительной обработки";
ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне("ВыполнитьОбработку", ПараметрыВыполнения);
Индикаторы прогресса позволяют отслеживать выполнение многопоточных обработок, а журналирование фиксирует события выполнения в стандартном журнале регистрации.
Интеграция с другими подсистемами БСП
Основные интеграции
Подсистема “Печать” обеспечивает автоматическое размещение печатных форм в подменю “Печать” объектов. Заполнение объектов интегрируется с механизмом заполнения через подменю “Заполнение”. Пользователи и права доступа позволяют настраивать быстрый доступ для конкретных пользователей.
Программная интеграция
// Программное открытие внешней обработки
ИмяОбработки = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(СсылкаНаОбработку);
ПараметрыФормы = Новый Структура("ПараметрОтбора", ЗначениеОтбора);
ОткрытьФорму("ВнешняяОбработка." + ИмяОбработки + ".Форма", ПараметрыФормы);
Практические примеры реализации
Внешняя печатная форма
Функция СведенияОВнешнейОбработке() Экспорт
ВерсияБСП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки();
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(ВерсияБСП);
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Наименование = "ТОРГ-12 (альтернативная)";
ПараметрыРегистрации.БезопасныйРежим = Истина;
ПараметрыРегистрации.Назначение.Добавить("Документ.РеализацияТоваровУслуг");
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = "ТОРГ-12 (альтернативная)";
НоваяКоманда.Идентификатор = "ТОРГ12_альтернативная";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыПечать();
Возврат ПараметрыРегистрации;
КонецФункции
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"ТОРГ12_альтернативная",
"ТОРГ-12 (альтернативная)",
СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати));
КонецПроцедуры
Обработка с разрешениями безопасности
Функция СведенияОВнешнейОбработке() Экспорт
ВерсияБСП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки();
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(ВерсияБСП);
// Разрешение на работу с временными файлами
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(
Истина, Истина, "Работа с файлами Excel");
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
// Разрешение на интернет-ресурс
РазрешениеИнтернет = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(
"HTTPS", "api.example.com", 443, "Обращение к внешнему API");
ПараметрыРегистрации.Разрешения.Добавить(РазрешениеИнтернет);
Возврат ПараметрыРегистрации;
КонецФункции
Отладка и лучшие практики
Методы отладки
Встроенный механизм отладки БСП использует специальные обработки для отладки внешних обработок. Временное подключение через Файл→Открыть позволяет тестировать обработки в процессе разработки.
Обработка ошибок
&НаСервере
Процедура ВыполнитьКоманду(ПараметрыВыполнения) Экспорт
Попытка
ВыполнитьОсновнуюЛогику();
ОбщегоНазначения.СообщитьПользователю("Обработка выполнена успешно");
Исключение
ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ОбщегоНазначения.СообщитьПользователю("Ошибка выполнения: " + ТекстОшибки);
КонецПопытки;
КонецПроцедуры
Рекомендации по безопасности
Всегда используйте безопасный режим для продуктивных систем. Запрашивайте только необходимые разрешения и избегайте отключения безопасного режима без крайней необходимости. Регулярно проводите аудит зарегистрированных обработок и используйте группы доступа для управления правами пользователей.
Заключение
Подсистема “Дополнительные отчеты и обработки” БСП представляет собой мощный и гибкий механизм для расширения функциональности 1С:Предприятие. Современные версии БСП 3.1.x предоставляют комплексное решение для управления внешними обработками, включающее автоматизацию через регламентные задания, продвинутый мониторинг выполнения, глубокую интеграцию с другими подсистемами и надежную систему безопасности.
Правильная реализация функции СведенияОВнешнейОбработке()
, соблюдение требований безопасности и использование лучших практик разработки позволяют создавать профессиональные решения, которые расширяют возможности типовых конфигураций без нарушения их архитектуры и поддерживаемости.
Ключевые преимущества подсистемы включают сохранение конфигурации на поддержке, простоту развертывания, централизованное управление и возможность автоматического выполнения по расписанию, что делает её незаменимым инструментом для адаптации типовых решений 1С под специфические требования организаций.