Рано или поздно перед каждым системным администратором или разработчиком 1С встает задача обновления технологической платформы. Это необходимо для поддержки новых стандартов безопасности, исправления накопившихся багов или обеспечения совместной работы различных конфигураций (например, когда на одном сервере работают историческая 1С:Управление производственным предприятием 1.3 и современный управляемый 1С:Документооборот).
Однако при переходе на новые релизы платформы (начиная с ветки 8.3.11, например, на релиз 8.3.11.3034) технические специалисты часто сталкиваются с неприятной проблемой. База данных, разработанная на обычных формах (такая как УПП 1.3 или Комплексная автоматизация 1.1), при запуске под новой платформой упорно открывается в режиме управляемого приложения. При этом на старых релизах платформы (например, 8.3.10) та же самая база без проблем запускалась в привычном интерфейсе обычного приложения.
В этой статье мы подробно разберем, почему так происходит, изучим внутренние механизмы изменения логики платформы 1С:Предприятие 8.3.11 и рассмотрим четыре эффективных способа решения этой проблемы — от быстрых индивидуальных настроек до глобальных административных методов.
Чтобы понять первопричину такого поведения системы, давайте проанализируем, как работает программа запуска 1С (стартер 1cestart.exe) и как она выбирает тип клиента для подключения к базе данных.
В настройках списка информационных баз для каждого подключения по умолчанию установлен параметр «Основной режим запуска» со значением «Выбирать автоматически».
Здесь кроется важное техническое ограничение: Тонкий клиент физически не содержит в себе библиотек для отрисовки и обработки обычных (неуправляемых) форм. Он спроектирован исключительно для работы с управляемым интерфейсом. Соответственно, когда платформа 8.3.11 запускает Тонкий клиент, конфигурация открывается в режиме управляемого приложения, полностью игнорируя настройки пользователя и конфигуратора.
То же самое происходит при запуске базы в обход стандартного списка (например, через сторонние утилиты запуска или внешние ярлыки без явно указанных параметров). Платформа инициализирует сеанс Тонкого клиента, что приводит к принудительному старту управляемого интерфейса. Выяснив причину, перейдем к способам решения.
Рассмотрим самый простой способ, который позволяет мгновенно заставить платформу использовать нужный клиент. Для этого используется специальный ключ командной строки.
Если нам необходимо гарантированно запустить базу данных в режиме обычного приложения, мы можем прописать в свойствах ярлыка запуска или в параметрах командной строки ключ /RunModeOrdinaryApplication.
Посмотрим на пример строки запуска для ярлыка на рабочем столе:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\DB\UPP" /RunModeOrdinaryApplication
Этот параметр сообщает стартеру, что базу нужно открыть строго в режиме обычного приложения (используя Толстый клиент).
Хотя данный метод отлично работает и позволяет быстро устранить проблему, у него есть существенный недостаток. В корпоративной среде, где с базой работают десятки или сотни пользователей, изменять ярлыки на каждом рабочем месте вручную крайне неэффективно. Поэтому разберем более масштабируемые решения.
Вместо того чтобы прописывать параметры запуска в ярлыках каждого пользователя, мы можем скорректировать настройки подключения непосредственно в списке баз данных 1С. Этот метод более предпочтителен, так как настройки сохраняются в файле списка баз (ibases.v8i), который можно централизованно распространить среди сотрудников.
Разберем этот процесс по шагам:
После этого платформа перестанет пытаться использовать Тонкий клиент при старте данной базы. Она сразу инициализирует Толстый клиент, который, обратившись к свойствам конфигурации, запустит базу в режиме обычного приложения.
Иногда причина кроется в том, что в карточках пользователей в конфигураторе для параметра «Режим запуска» установлено значение «Авто». При автовыборе на новых платформах это значение может интерпретироваться некорректно.
Давайте настроим этот параметр принудительно для конкретных пользователей:
Этот способ гарантирует, что независимо от того, как именно пользователь запускает базу, платформа будет пытаться запустить именно обычный интерфейс для данной учетной записи.
Если вышеописанные методы не приносят желаемого результата, необходимо проверить глобальные свойства самой конфигурации. При переходе на новые платформы или в процессе проведения доработок разработчики могли случайно изменить режим совместимости метаданных.
Проанализируем этот момент:
Если режим совместимости был изменен на «Не использовать» или установлен на ветку «8.3.Х», платформа начинает игнорировать устаревшие механизмы обычного интерфейса, принудительно инициализируя управляемый режим. Возврат корректного режима совместимости решает эту проблему на уровне ядра метаданных.
Если мы принимаем решение использовать платформу версии 8.3.11 и выше для работы со старыми конфигурациями, нам необходимо учитывать важные особенности и ограничения новых платформ:
1. Контроль модальности и синхронных вызовов. Начиная с версии 8.3.11, фирма «1С» существенно усилила контроль за использованием модальных окон и синхронных методов. Если в коде вашей конфигурации или внешних обработок используются устаревшие конструкции (например, модальное открытие окон), система будет выдавать критические ошибки работы. При необходимости этот контроль можно отключить в свойствах конфигурации или использовать специальные ключи запуска (например, /EnableCheckModal).
2. Прекращение развития обычных форм. Платформа 8.3.10 стала последней веткой, где разработчики 1С активно занимались поддержкой и исправлением ошибок интерфейса обычного приложения. Начиная с 8.3.11, все усилия направлены на развитие управляемых форм, системы взаимодействия, механизма расширений и мобильной платформы. При работе обычного приложения на платформе 8.3.11 и старше вы можете столкнуться с тем, что элементы форм будут масштабироваться со сдвигами при высоком DPI экрана, а шрифты табличных частей могут отображаться некорректно.
Мы подробно изучили проблему автоматического перехода на управляемый интерфейс при обновлении платформы до 8.3.11 и выше. Наиболее быстрым локальным решением является использование ключа запуска /RunModeOrdinaryApplication. Однако для постоянной работы в корпоративной среде мы рекомендуем перенастроить тип клиента в настройках списка баз (изменив режим на «Толстый клиент») или жестко задать режим запуска в карточках пользователей в Конфигураторе. Это позволит избежать лишней рутины с настройкой ярлыков пользователей и обеспечит стабильную работу системы.