Почему не открывается дополнительная обработка из раздела программы в 1С:Бухгалтерия 3.0?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При интеграции внешних обработок в типовые конфигурации на базе БСП (Библиотеки стандартных подсистем), таких как 1С:Бухгалтерия предприятия 3.0, разработчики нередко сталкиваются со специфическим поведением интерфейса. Обработка успешно регистрируется в справочнике ДополнительныеОтчетыИОбработки, прекрасно запускается через меню «Файл - Открыть» или напрямую из формы элемента справочника дополнительных обработок в разделе «Администрирование», однако при попытке вызвать ее по кнопке «Выполнить» из панели команд конкретного раздела программы (например, «Продажи» или «Покупки») ничего не происходит: форма не появляется на экране, а в журнале регистрации отсутствуют какие-либо ошибки.

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

Причина 1: Свойство формы «Режим открытия окна»

Главная причина кроется в механизме работы диалоговых окон управляемого интерфейса платформы. Когда пользователь нажимает ссылку «Дополнительные обработки» в командном интерфейсе раздела, БСП открывает промежуточную форму выбора команд. Если у основной формы внешней обработки свойство Режим открытия окна (РежимОткрытияОкна) установлено по умолчанию или в значение Блокировать окно владельца, платформа связывает создаваемое окно обработки с временной формой списка команд. В момент завершения выполнения команды временное окно закрывается и автоматически закрывает подчиненную форму обработки, из-за чего пользователь визуально не видит никакой реакции интерфейса.

Разберем по шагам, как исправить эту настройку в конфигураторе:

  1. Откроем внешнюю обработку в конфигураторе.
  2. Перейдем к дереву метаданных обработки и откроем форму, которая должна запускаться по команде.
  3. В окне свойств формы найдем свойство Режим открытия окна.
  4. Изменим значение свойства со стандартного на Независимый.
  5. Сохраним внешнюю обработку в файл.
  6. В режиме «1С:Предприятие» перейдем в раздел Администрирование — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки, откроем нужный элемент и обновим файл обработки по кнопке Загрузить из файла.

Причина 2: Корректное описание экспортной функции в модуле объекта

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


Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
    ПараметрыРегистрации.Вставить("Наименование", НСтр("ru = 'Загрузка данных из УНФ'"));
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    ПараметрыРегистрации.Вставить("Информация", НСтр("ru = 'Обработка загрузки данных'"));
    
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    
    ДобавитьКоманду(ТаблицаКоманд,
        НСтр("ru = 'Загрузка данных из УНФ'"),
        "ЗагрузкаДанных",
        "ОткрытиеФормы",
        Истина,
        "");
        
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    
    Возврат ПараметрыРегистрации;
    
КонецФункции

Рассмотрим важные нюансы регистрации команд:

  1. Тип команды: При использовании значения ОткрытиеФормы платформа ожидает наличие управляемой формы, назначенной основной в свойствах обработки. Если обработка содержит несколько форм, убедимся, что целевая форма назначена основной.
  2. Безопасный режим: Если в обработке используется выгрузка/загрузка XML, прямое чтение файлов с диска или выполнение внешнего кода (например, правил обмена), параметр БезопасныйРежим необходимо устанавливать в значение Ложь. Значение Истина ограничит доступ к файловой системе и внешним источникам данных.
  3. Использование методов БСП: Вместо жесткого указания строковых литералов рекомендуется использовать стандартизированные методы общих модулей, такие как ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы() и ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка().

Очистка кэша и перезапуск сеанса

После внесения изменений в файл внешней обработки и его перезагрузки в справочник обязательно перезапустим клиентский сеанс «1С:Предприятие». Платформа кэширует скомпилированные модули и формы внешних обработок во временном хранилище текущего сеанса пользователя, из-за чего изменения свойств формы могут не примениться до полного перезапуска программы.

Альтернативный вариант: встроенные средства конфигурации

Если речь идет об обработке «Универсальный обмен данными в формате XML», выясним, требуется ли вообще подключать ее как внешнюю. Данная обработка уже встроена в типовую конфигурацию «Бухгалтерия предприятия 3.0». Получить доступ к ней можно штатными средствами:

  1. Открыть главное меню программы и перейти в Функции для технического специалиста (в более ранних версиях — «Все функции»).
  2. В списке обработок найти Универсальный обмен данными в формате XML.
  3. При необходимости постоянного быстрого доступа можно вынести команду открытия встроенной обработки на панель действий с помощью расширения конфигурации.
← На главную