Перевод старой конфигурации, такой как Управление торговлей 10.3, на современные режимы совместимости платформы 8.3 — задача нетривиальная. Она требует не просто изменения одного параметра в свойствах конфигурации, но и серьезного аудита программного кода и метаданных. При простом переключении режима совместимости разработчик неизбежно сталкивается с каскадом ошибок: от конфликтов имен картинок до полной неработоспособности интерфейса из-за блокировки модальных окон.
В этой статье мы подробно разберем, почему возникают эти ошибки и как их последовательно устранить, чтобы конфигурация корректно работала на актуальных версиях платформы 1С:Предприятие 8.3.
Первое, на что «ругается» конфигуратор при попытке обновить режим совместимости, — это Общие картинки. Проанализируем ситуацию: в новых версиях платформы 8.3 (начиная с 8.3.1) многие графические элементы стали системными. Если в вашей старой «древней» конфигурации есть картинки с именами Справка, Информация, Внимание, Предупреждение, Ошибка, Очистить или Поиск, возникнет конфликт имен.
Рассмотрим варианты решения этой проблемы:
Внимание на ит_Внимание.После переименования нам потребуется выполнить глобальный поиск по конфигурации и заменить все ссылки на старые имена картинок новыми именами. Это гарантирует сохранение визуального интерфейса.
Следующий этап — исправление ошибок компиляции программного кода. Выясним причину: начиная с версии 8.3.3, функции для работы с двоичными данными, такие как ПобитовоеИ, ПобитовоеИЛИ, ПобитовоеНе и другие, стали встроенными в язык платформы.
В УТ 10.3 (особенно в модулях, связанных с торговым оборудованием или защитой конфигурации) эти функции часто реализованы программно в общих модулях. При отключении режима совместимости возникает ошибка: «Процедура или функция с указанным именем уже определена». Нам необходимо найти эти реализации. Чаще всего они встречаются в модулях интеграции с драйверами ККТ или сканерами штрихкодов.
Посмотрим на пример того, как можно адаптировать код с помощью инструкций препроцессора, чтобы избежать конфликтов на разных версиях платформы:
#Если Не (СистемноеПеречисление("ВерсияПлатформы") >= "8.3.3") Тогда
Функция ПобитовоеИ(Значение1, Значение2) Экспорт
// Старая программная реализация для совместимости
Возврат Значение1 & Значение2;
КонецФункции
#КонецЕсли
Однако правильнее всего будет полностью закомментировать программные функции и использовать системные, так как они работают значительно быстрее на уровне ядра платформы.
Самая критическая проблема при полном снятии режима совместимости в УТ 10.3 — это использование модальных окон. Старая конфигурация буквально пронизана вызовами Вопрос(), Предупреждение() и ОткрытьФормуМодально().
Если мы установим режим совместимости «Не использовать», но оставим старый код, программа будет аварийно завершаться при каждом удобном случае. Рассмотрим, как это обойти без переписывания тысяч строк кода на асинхронные вызовы:
Режим использования модальности.Это позволит платформе 8.3 исполнять старый код, хотя и ограничит использование конфигурации в веб-клиенте. Аналогичную операцию необходимо проделать и для параметра Режим использования синхронных вызовов расширений платформы и внешних компонентов. Без этого перестанут работать многие обработки, взаимодействующие с файловой системой и внешними библиотеками (например, загрузка из Excel).
При переходе на новые режимы важно помнить о безопасности. Платформа 8.3 более строго относится к подключению внешних компонент. Если после смены режима совместимости перестали подключаться драйверы, нам следует проверить настройки профилей безопасности или изменить код инициализации оборудования, чтобы он соответствовал требованиям безопасности новой платформы.
Также проанализируем ситуацию с базой данных. При смене режима совместимости (особенно на крупных базах) 1С инициирует масштабную реструктуризацию. Выясним, почему это опасно: в процессе могут пересчитываться итоги и меняться структура таблиц SQL. Перед выполнением этой операции обязательно:
SQL в режим Simple.Для успешного перехода мы рекомендуем придерживаться следующего алгоритма:
ОбщиеКартинки.Соблюдение этих шагов позволит вам использовать все преимущества новой платформы (скорость работы, новые возможности HTTP-сервисов, расширения), сохранив при этом стабильность работы проверенной временем УТ 10.3.