Какую версию платформы выбрать для УТ 11 и MS SQL Server 2014: 8.3.8 или 8.3.9?

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

Развертывание нового рабочего сервера 1С — ответственный процесс, требующий поиска баланса между требованиями конфигураций к минимальной версии платформы и реальной стабильностью конкретных релизов. Рассмотрим типовую архитектурную задачу: инфраструктура под управлением Windows Server 2012, 64-разрядный сервер 1С:Предприятие, СУБД MS SQL Server 2014, публикация баз через веб-сервер и порядка 30 пользователей тонкого клиента в трех типовых базах 1С:Управление торговлей 11. Выясним причину частых сбоев при переходе на новые ветки платформы и определим оптимальный вариант между линейками 8.3.8 и 8.3.9.

Анализ минимальных требований конфигурации и стабильности релизов

Разберем распространенное заблуждение: многие системные администраторы полагают, что указанный в документации к конфигурации минимальный номер сборки автоматически означает гарантированную стабильность. Проанализируем требования для типовой конфигурации УТ 11:

  1. Для версий ветки УТ 11.2.3 разработчики заявляют минимальные требования 8.3.7.2027.
  2. Для версий линейки УТ 11.3.1 минимальным порогом уже является платформа 8.3.8.2137.

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

Критическая ошибка временных таблиц #tt1 в ранних сборках 8.3.9

Выясним причину, по которой ранние сборки ветки 8.3.9 (включая 8.3.9.1818 и 8.3.9.1850) небезопасны для промышленной эксплуатации. Главной проблемой этого поколения платформы стала ошибка СУБД с сообщением о недопустимом имени объекта #tt1 (зарегистрированная ошибка 50010160).

Рассмотрим механизм возникновения данного сбоя подробнее:

  1. Платформа 1С активно использует пул переиспользования временных таблиц в системной базе данных tempdb на стороне MS SQL Server для ускорения сложных выборок.
  2. При выполнении типовых запросов с условием вхождения в массив (конструкция В (&Массив)), а также при динамическом поиске строк в больших списках документов и справочников «Управление торговлей», платформа повторно вызывает короткое имя таблицы #tt1.
  3. Из-за дефекта логики пула 1С обращается к объекту в момент, когда SQL Server уже разорвал контекст сеанса или очистил временную таблицу. В результате транзакция аварийно прерывается, а пользователь видит системное падение сеанса.
  4. В линейке 8.3.9 данная ошибка была окончательно ликвидирована только в поздних сборках, начиная с 8.3.9.2170. При этом в стабильных релизах ветки 8.3.8 (начиная с 8.3.8.2167) этот дефект практически исключен.

Особенности взаимодействия с MS SQL Server 2014

При совместной работе связки 1С и MS SQL Server 2014 необходимо учитывать специфику новой модели оценки кардинальности (Cardinality Estimator). По умолчанию включенный в SQL Server 2014 новый оптимизатор нередко формирует неоптимальные планы запросов к временным таблицам 1С, что выражается в зависаниях отчетов и взаимоблокировках. Для стабилизации работы рекомендуются следующие шаги:

  1. Установить уровень совместимости рабочей базы данных (Compatibility Level) в значение 110 (соответствует SQL Server 2012).
  2. В качестве альтернативы — активировать на уровне экземпляра MS SQL Server глобальный флаг трассировки 9481, возвращающий классический механизм оценки кардинальности для запросов.
  3. Установить на сервер приложений 1С актуальный драйвер Microsoft SQL Server Native Client 11.0.
  4. Корректно настроить системную базу tempdb: разбить файлы данных на несколько частей равного объема (по числу ядер процессора, выделив до 8 файлов), вынести их на скоростной массив накопителей и задать фиксированный шаг автороста не менее 512 МБ.

Разрядность клиента: x86 против x64 в реальной рознице и опте

Платформа 8.3.9 представила полноценный 64-битный клиент для рабочих станций Windows. Однако для конфигурации 1С:Управление торговлей поспешный переход на x64-клиент создает эксплуатационные риски. Торговый контур типовой УТ жестко завязан на внешние драйверы торгового оборудования: сканеры штрихкодов, фискальные регистраторы, принтеры чеков и банковские терминалы эквайринга. Большинство производителей поставляют внешние компоненты исключительно в 32-битной компиляции. Попытка загрузить 32-битную DLL в 64-битный процесс тонкого клиента завершится системной ошибкой. Поэтому на рабочих местах пользователей следует использовать исключительно 32-разрядный (x86) тонкий клиент.

Итоговый алгоритм выбора и внедрения релиза

Сформулируем конкретные рекомендации по выбору версии платформы для промышленной эксплуатации:

  1. Основная рекомендация: если конфигурация не требует эксклюзивных возможностей ветки 8.3.9, установите финальный релиз 8.3.8.2197 (или стабильный 8.3.8.2167). Это избавит пользователей от падений с ошибкой #tt1 и нестабильной работы кэша.
  2. Если требуется ветка 8.3.9: категорически откажитесь от ранних сборок (включая 8.3.9.1850). Рассматривайте только поздние корректирующие сборки (не ниже 8.3.9.2170 или 8.3.9.2233).
  3. Методика безопасного перехода: перед вводом сервера в бой разверните тестовый контур, поднимите две копии базы на параллельных портах кластера 1С и протестируйте типовые тяжелые сценарии (проведение закрытия месяца, пакетное проведение документов реализации, динамический поиск в журнале документов).
← На главную