Как запустить внешнюю обработку со старым интерфейсом (обычными формами) в пустой базе 1С

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

При работе с платформой 1С:Предприятие 8.2 и 8.3 пользователи часто сталкиваются с ситуацией, когда необходимо запустить старую внешнюю обработку (например, для настройки торгового оборудования или весов) в новой, пустой базе. Проблема заключается в том, что по умолчанию современные базы создаются с ориентацией на управляемый интерфейс. В результате при открытии файла через Ctrl+O обработка либо выдает ошибку, либо отображает абсолютно пустое окно без кнопок и полей ввода. Проанализируем причины такого поведения и разберем по шагам способы решения этой задачи.

Причина проблемы: Конфликт интерфейсов

Основная причина «пустого окна» кроется в различии архитектур. Старые обработки используют обычные формы, которые предназначены для работы в режиме Толстого клиента и Обычного приложения. Современные конфигурации по умолчанию запускаются в режиме управляемого приложения, где механизмы отрисовки окон работают иначе. Если система не проинструктирована должным образом, она просто не понимает, как отобразить элементы управления старого формата.

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

Рассмотрим самый быстрый способ, не требующий глубокого изменения настроек конфигурации. Мы можем заставить платформу запустить сеанс пользователя именно в том режиме, который необходим для старой обработки. Для этого выполним следующие действия:

  1. Откроем окно запуска 1С:Предприятия.
  2. Выберем нужную информационную базу и нажмем кнопку Изменить.
  3. Перейдем на последнюю закладку параметров запуска.
  4. В поле Дополнительные параметры запуска впишем специальный ключ:

/RunModeOrdinaryApplication

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

Способ 2: Настройка основного режима запуска в Конфигураторе

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

  1. Запустим базу в режиме Конфигуратор.
  2. Нажмем правой кнопкой мыши на самый верхний элемент в дереве объектов (имя конфигурации) и выберем пункт Свойства.
  3. В окне свойств найдем раздел Основные.
  4. Изменим значение свойства Основной режим запуска на Обычное приложение.

Важный нюанс: Если вы создали абсолютно новую конфигурацию «с нуля», то даже после смены режима запуска вы можете увидеть пустое серое поле без верхнего меню. Это происходит потому, что в базе не создан ни один объект типа Интерфейс. В режиме обычного приложения меню формируется именно на основе этого объекта.

Способ 3: Разрешение обычных форм в управляемом приложении

Бывают ситуации, когда нам нужно оставить современный интерфейс, но при этом иметь возможность открывать старые обработки. Посмотрим, как настроить такую «гибридную» работу. В свойствах конфигурации в Конфигураторе необходимо найти и установить флаг:

Использовать обычные формы в управляемом приложении

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

Проблема отсутствия элементов из-за языковых настроек

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

Выясним причину: если обработка была написана, например, в конфигурации, где основным языком был «Русский», а ваша новая пустая база создана с языком по умолчанию «Английский» (или наоборот), платформа может «потерять» надписи на кнопках и сами кнопки. Для исправления ситуации выполним следующие шаги:

  1. В Конфигураторе перейдем в ветку Общие -> Языки.
  2. Убедимся, что в списке присутствует язык с кодом ru (Русский).
  3. Если его нет — добавим его.
  4. Если язык есть, попробуем запустить базу, явно указав язык интерфейса в параметрах запуска: /L ru.

Техническая реализация программного открытия

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

Пример программного открытия внешней обработки (для Толстого клиента):


// Пример открытия обработки программно
ПутьКФайлу = "C:\MyFolder\MyProcessing.epf";
Обработка = ВнешниеОбработки.Создать(ПутьКФайлу, Ложь);
Обработка.ПолучитьФорму().Открыть();

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

Использование «Толстого клиента»

Выясним, чем отличается запуск через разные типы клиентов. Для работы со «старым меню» и старыми обработками в настройках информационной базы (в списке выбора баз) в поле Тип клиента всегда должно стоять Толстый клиент. В режиме Тонкого клиента вы получите ошибку о невозможности создания объекта или попытку открыть форму, которая завершится неудачей. Это критически важно для корректной работы с драйверами весов и другого торгового оборудования, так как их COM-объекты часто требуют прямого доступа к памяти, который обеспечивает только Толстый клиент.

Резюме по шагам для создания «пустой базы со старым меню»

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

  1. Создаем новую базу без конфигурации.
  2. Заходим в Конфигуратор.
  3. В свойствах конфигурации ставим Основной режим запуска — Обычное приложение.
  4. В дереве метаданных находим раздел Общие -> Интерфейсы, создаем новый интерфейс (назовем его «Основной»).
  5. В свойствах интерфейса включаем видимость стандартных панелей (Файл, Сервис и т.д.).
  6. Назначаем этот интерфейс основным для пользователя или всей конфигурации.
  7. Запускаем базу в режиме Толстый клиент (обычное приложение).

Следуя этим инструкциям, мы получим полнофункциональное «старое» окружение 1С, в котором любая внешняя обработка будет работать так, как было задумано её автором.

← На главную