Переход между ветками технологической платформы 1С:Предприятие всегда сопровождается рисками изменения поведения типовых механизмов, падения производительности или появления ошибок в запросах. Переход с версии 8.3.6 на ветку 8.3.9 часто обусловлен требованиями конфигураций и внешнего программного обеспечения. Разберем, какие сборки ветки 8.3.9 показали себя наиболее надежными в промышленной эксплуатации, с какими сложностями предстоит столкнуться и как заранее предотвратить сбои.
Проанализируем практический опыт эксплуатации релизов ветки 8.3.9 под нагрузкой в различных конфигурациях (включая крупные базы документооборота и управления автотранспортом):
Выясним причину одной из самых частых ошибок, появляющихся при смене платформы. Сбой Неверные параметры (VALUETYPE) возникает на уровне внутреннего транслятора запросов платформы (SDBL) при генерации SQL-кода к СУБД. Ошибка преимущественно падает в клиент-серверном режиме при обращении к полям составного типа (в динамических списках, регистрах или субконто), если в базе нарушена ссылочная целостность или присутствуют пустые реквизиты подчинения.
Для исправления данной проблемы применим следующие решения на уровне кода и данных:
Владелец часто провоцирует сбой транслятора.Посмотрим на пример оптимизации проблемного участка запроса:
// Проблемный вариант:
ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(Таблица.Субконто1) = ТИП(Справочник.Номенклатура) ТОГДА
Таблица.Субконто1.Артикул
ИНАЧЕ
""
КОНЕЦ
// Исправленный вариант с явной проверкой ссылки:
ВЫБОР
КОГДА Таблица.Субконто1 ССЫЛКА Справочник.Номенклатура ТОГДА
ВЫРАЗИТЬ(Таблица.Субконто1 КАК Справочник.Номенклатура).Артикул
ИНАЧЕ
""
КОНЕЦ
Если в коде необходимо проверить именно тип поля составного ссылочного типа, обратимся к полю через суффикс .Ссылка: конструкция ТИПЗНАЧЕНИЯ(Таблица.Субконто1.Ссылка) транслируется движком платформы корректно.
В платформе 8.3.9 разработчики 1С впервые представили механизм интерактивной защиты от опасных действий. При открытии внешних отчетов, обработок или загрузке внешних компонент система принудительно запрашивает подтверждение пользователя. Это нововведение вызывает сбои в ряде типовых сценариев:
Рассмотрим способы отключения механизма защиты:
Защита от опасных действий.conf.cfg, расположенный в каталоге bin/conf платформы. Добавим строку:
DisableUnsafeActionProtection=.*
Это регулярное выражение полностью отключает запрос подтверждения для всех баз, работающих на данном сервере или клиенте.БезопасныйРежим = Ложь.Разберем по шагам регламент перехода на ветку 8.3.9:
Режим совместимости. Если оставить его в значении Версия 8.3.6, мы минимизируем риск несовместимости прикладных алгоритмов, получая преимущества обновленного серверного кластера.