Использование платформы 1С 8.3.20 в продуктивных базах: возможности, риски и проблемы совместимости

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

Часто перед разработчиками и системными администраторами встает вопрос о переходе на новую версию платформы 1С:Предприятие. С одной стороны, новые версии несут в себе исправления ошибок и полезные функциональные возможности. С другой — всегда есть риски, связанные со стабильностью и совместимостью, особенно в сложных, доработанных системах. Разберем на основе обсуждения специалистов, с какими реалиями столкнулось сообщество при попытке внедрения платформы 8.3.20 и почему ее adoption не был молниеносным.

Главный вопрос: кто и зачем переходит на 8.3.20?

Основной интерес к платформе 8.3.20 был вызван не просто общими улучшениями, а вполне конкретной и долгожданной возможностью для разработчиков: расширением определяемых типов в расширениях конфигурации. Рассмотрим, что это значит и почему это так важно.

В типовых конфигурациях часто используются определяемые типы данных, которые объединяют в себе несколько разных объектов. Например, тип ДокументСсылка может включать ссылки на все документы в системе. Раньше, если вы создавали в расширении новый документ, вы не могли включить его в этот составной тип, не изменяя саму основную конфигурацию. Это создавало массу проблем и ограничений при разработке в парадигме "без снятия с поддержки".

Платформа 8.3.20 решила эту проблему. Появилась возможность в расширении не только заимствовать, но и изменять состав определяемых типов, добавляя в них объекты, созданные в этом же расширении. Это настоящий прорыв, который снимает множество архитектурных ограничений и позволяет делать более глубокие и бесшовные доработки типовых решений.

Помимо этого, версия 8.3.20 принесла и другие значительные улучшения:

  1. Новые объекты для расширения: Стало возможно заимствовать и расширять планы видов характеристик и общие реквизиты.
  2. Предопределенные элементы в расширениях: Теперь можно создавать предопределенные элементы в справочниках, добавленных в расширении, что повышает надежность кода.
  3. Работа с внешними пользователями: Появилась возможность приглашать в Систему взаимодействия внешних участников, у которых нет учетной записи в базе 1С.
  4. Новые функции в СКД: В язык выражений Системы компоновки данных добавили полезные функции для работы со строками: СокрЛП(), Лев(), Прав(), СтрНайти() и другие.

Ключевое препятствие: Библиотека стандартных подсистем (БСП) и режим совместимости

Несмотря на все преимущества, массовый переход на 8.3.20, особенно в крупных компаниях, был сильно замедлен. Основная причина кроется в механизме режимов совместимости и его тесной связи с версией Библиотеки стандартных подсистем (БСП), на которой построены практически все типовые конфигурации.

Давайте разберемся в этой зависимости по шагам:

  1. Что такое режим совместимости? Это свойство конфигурации, которое "замораживает" поведение платформы на уровне определенной старой версии. Это делается для того, чтобы старый код конфигурации корректно работал на новой платформе, которая может содержать измененную логику или синтаксис.
  2. Как это связано с новыми возможностями? Чтобы использовать новые "фичи" платформы, такие как расширение определяемых типов, режим совместимости должен быть либо отключен (установлен в значение "Не использовать"), либо установлен на версию, где эта возможность уже появилась (например, "Версия 8.3.19" или выше).
  3. В чем проблема с БСП? Каждая версия БСП проектируется и тестируется для работы с определенным набором версий платформы и, соответственно, с определенными режимами совместимости. Разработчики БСП явно указывают, какие режимы поддерживаются.

Как справедливо было отмечено в обсуждении, на момент выхода платформы 8.3.20 актуальная версия БСП (например, 3.1.5) официально поддерживала разработку только в режимах совместимости "Версия 8.3.14", "8.3.15", "8.3.16" или "8.3.17". В документации к БСП было прямо сказано, что даже для более новых платформ (8.3.18 и выше) разработка в режиме совместимости "Не использовать" не предусмотрена.

Вывод: пока фирма "1С" не выпустит новую версию БСП, которая официально будет поддерживать работу в режиме совместимости 8.3.19 или выше, все типовые конфигурации на этой БСП не смогут использовать новые возможности платформы 8.3.20. Разработчики, работающие с типовыми решениями (например, УТ 11.4, которая на тот момент использовала еще более старую БСП 3.1.3), оказались в патовой ситуации: платформа есть, а воспользоваться ее преимуществами нельзя.

Именно поэтому в продуктивных средах крупных компаний, где используются типовые конфигурации, в то время можно было встретить максимум платформу 8.3.18, но никак не 8.3.20 с отключенной совместимостью.

А как же "самописные" конфигурации?

Ограничения БСП не распространяются на конфигурации, разработанные с нуля без использования этой библиотеки. Такие системы, которых, конечно, меньшинство, могут позволить себе более гибкий и быстрый переход. Их разработчики могут сразу после тестирования установить режим совместимости "Не использовать" и начать применять все новинки платформы. Однако, как было подмечено, таких "буйных" новаторов немного, и они составляют малую долю рынка.

Практические риски и выводы

Переход на свежую версию платформы — это не только вопрос совместимости, но и потенциальных ошибок. Хотя сама по себе платформа 8.3.20 была достаточно стабильной, разработчики сталкивались с неочевидными проблемами. Например, после обновления в некоторых запросах могла возникать ошибка "Повторяющийся псевдоним 'Ссылка'", которую было сложно отловить, так как она проявлялась глубоко внутри платформенных механизмов. Вероятно, это было связано с более строгой типизацией в новой версии.

Подведем итог:

В мире 1С, как и в любой крупной экосистеме, инерция велика. Новые технологии, даже самые полезные, проходят долгий путь, прежде чем стать стандартом де-факто. И история с платформой 8.3.20 — яркий тому пример.

← На главную