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

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

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

Причина невыполнения кода: автоматическая генерация форм платформой

В конфигурации УТ 10.3 все стандартные формы объектов созданы как обычные формы. Когда пользователь запускает систему в режиме управляемого приложения, платформа 1С не использует эти обычные формы, а автоматически сгенерирует для документа упрощенную управляемую форму «на лету».

В результате этого процесса происходят следующие события:

  1. Модуль обычной формы объекта полностью игнорируется платформой и не загружается в память.
  2. Все обработчики событий (например, нажатия кнопок или изменения реквизитов), описанные в модуле обычной формы, не вызываются.
  3. Отладчик не останавливается в модуле формы, так как код этого модуля просто не исполняется.

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

Правильный перенос логики в модуль объекта

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

Разберем пример переноса записи во внешний источник данных в модуль объекта:


Процедура ПриЗаписью(Отказ)
    
    // Код выполняется на сервере для всех типов приложений
    Если Не Отказ Тогда
        Попытка
            // Вызов внешней базы данных или внешнего источника
            ЗаписатьВоВнешнийИсточник();
        Исключение
            ЗаписьЖурналаРегистрации("ОшибкаЗаписиВнешнегоИсточника", 
                УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
        КонецПопытки;
    КонецЕсли;

КонецПроцедуры

Если же бизнес-требования действительно требуют наличия уникального интерфейса управляемой формы в УТ 10.3, такую управляемую форму необходимо явно нарисовать и добавить в дерево конфигурации у соответствующего объекта.

Настройка отладки на сервере 1С:Предприятие

При работе в режиме управляемого приложения выполнение серверного кода и событий модуля объекта происходит на стороне сервера 1С. Чтобы точки останова срабатывали в серверном коде, проанализируем необходимые настройки сервера и Конфигуратора.

Пошаговый алгоритм настройки отладки:

  1. Включение ключа отладки на сервере: Убедимся, что служба «Агент сервера 1С:Предприятия» запущена с параметром -debug (или -debug -http для отладки по протоколу HTTP).
  2. Перезапуск службы: После добавления ключа -debug обязательно перезапустим службу сервера 1С через оснастку служб Windows или командную строку.
  3. Автоматическое подключение в Конфигураторе: В Конфигураторе откроем меню Отладка -> Подключение..., нажмем кнопку Автоматическое подключение... и установим флажки напротив пунктов Сервер и Фоновые задания.

Особенности работы с внешними источниками данных на сервере

При переносе логики взаимодействия с внешними СУБД из клиента на сервер нужно учитывать нюансы серверного окружения:

  1. Разрядность и наличие драйверов: ODBC-драйверы или клиентские библиотеки внешних БД должны быть установлены непосредственно на серверную машину, где запущен рабочий процесс rphost. Разрядность драйвера должна соответствовать разрядности платформы 1С (32 или 64 бита).
  2. Права службы сервера 1С: Учетная запись, от имени которой запущен агент сервера 1С (например, usr1cv8), должна иметь сетевые права для доступа к внешнему серверу БД.
  3. Настройки подключения: Строка подключения и параметры доступа к внешнему источнику данных должны быть заданы как общие через системную обработку Управление внешними источниками данных.
← На главную