Переход на новые версии технологической платформы 1С:Предприятие часто сопровождается не только появлением новых возможностей, но и выявлением неочевидных ошибок. В этой статье мы подробно разберем ситуацию, с которой столкнулись многие разработчики при обновлении на версию 8.3.25.1257. Речь пойдет о некорректной работе конструктора запросов, а также о более серьезной проблеме — невозможности "простого" отката базы данных на предыдущие версии платформы после запуска на 8.3.25.
Проанализируем симптомы, найдем рабочие способы обхода ошибки и обсудим важные архитектурные изменения, которые необходимо учитывать при обновлении.
Разработчики, обновившие платформу до релиза 8.3.25.1257, обнаружили специфический баг при работе с составными запросами. Давайте рассмотрим, как это выглядит на практике.
При создании запроса, использующего объединение нескольких выборок (оператор ОБЪЕДИНИТЬ ВСЕ), мы обычно переходим на вкладку «Объединения/Псевдонимы». В левой части этого окна отображается дерево запросов, участвующих в объединении. В штатном режиме двойной клик или нажатие кнопки изменения на одном из подзапросов должно открывать его текст для редактирования в конструкторе. Однако в указанном релизе платформы при нажатии на запрос ничего не происходит — интерфейс просто игнорирует действие пользователя.
Это создает серьезные неудобства, так как редактировать сложные составные запросы вручную, без визуального конструктора, значительно дольше и повышает риск синтаксических ошибок.
Самым надежным способом устранения данной ошибки является обновление платформы.
По информации от сообщества и данным баг-трекера, ошибка была признана разработчиками платформы и исправлена в последующих релизах. Если вы столкнулись с таким поведением, проверим версию вашей платформы. Если это 8.3.25.1257, мы рекомендуем обновиться минимум до версии 8.3.25.1286 или более актуальной.
В версии 8.3.25.1286 механизм перерисовки интерфейса конструктора запросов был исправлен, и навигация по вкладке «Объединения» работает корректно.
Если обновление платформы на сервере и у всех клиентов прямо сейчас невозможно (например, из-за бюрократических процедур или необходимости длительного тестирования), мы можем воспользоваться обходными путями.
Как выяснилось в ходе обсуждения, ошибка проявляется именно в модальном окне конструктора, вызываемого из Конфигуратора. Однако, если использовать инструменты, работающие в режиме Предприятия (Толстый клиент или Тонкий клиент), проблема может не воспроизводиться.
Для редактирования текста запроса воспользуемся следующими инструментами:
После редактирования запроса во внешнем инструменте просто скопируйте полученный текст обратно в модуль или схему в Конфигураторе.
В процессе обсуждения ошибки конструктора мы затронули гораздо более важную тему, касающуюся архитектуры платформы 8.3.25. Многие администраторы, столкнувшись с багами новой версии, пытаются "откатиться" назад, например, на 8.3.24 или 8.3.21. И здесь нас подстерегает неприятный сюрприз.
При попытке открыть базу данных на старой платформе (после того, как она была запущена на 8.3.25), мы получаем сообщение об ошибке:
"Для использования конфигурации требуется более новая версия платформы".
Давайте разберем, почему это происходит и почему стандартные методы не работают.
Существует распространенное заблуждение, что если в свойствах конфигурации установлен РежимСовместимости (например, "Версия 8.3.21"), то базу можно свободно открывать на платформе 8.3.21. Это не так. Режим совместимости определяет поведение языка и доступность функционала, но не структуру хранения данных самой базы.
Выгрузка информационной базы в файл .dt сохраняет текущую структуру таблиц и системных данных. Начиная с версии 8.3.25, платформа вносит изменения в формат внутренних системных таблиц базы данных (включая новое хранилище двоичных данных). Старые версии платформы (8.3.24 и ниже) физически не умеют читать этот обновленный бинарный формат.
Поэтому алгоритм "Выгрузить в .dt на 8.3.25 -> Загрузить из .dt на 8.3.21" не сработает. База загрузится, но при первом же запуске выдаст ошибку требования новой платформы.
Если возникла критическая необходимость вернуться с 8.3.25 на более старую версию, у нас есть только два надежных пути:
Рассмотрим порядок действий для второго способа:
Выгрузка и загрузка данных XML (или аналогичный механизм стандартного обмена) для выгрузки всех данных предприятия в XML-файл.Чтобы быть объективными, отметим и улучшения. В обсуждении была выявлена важная доработка механизма Системы Компоновки Данных (СКД) при работе с расширениями конфигурации.
В версиях 8.3.21 – 8.3.24 существовала проблема: если внешний отчет на СКД использовал поля или таблицы, добавленные через Расширение конфигурации, то при открытии такого отчета часто происходил сброс настроек. Платформа выдавала предупреждение, что "Таблица не найдена" или "Поле не найдено", после чего очищала выбранные ресурсы и пользовательские настройки.
В версии 8.3.25 этот механизм стабилизировали. Теперь инициализация метаданных происходит корректно, и настройки отчетов, использующих данные из расширений, не сбрасываются при открытии. Это существенный плюс для разработчиков, активно использующих технологию расширений.
При работе с платформой 1С версии 8.3.25 важно помнить следующее:
Мы рекомендуем перед обновлением продуктивной среды всегда проводить тестирование на копии базы, проверяя не только основной функционал, но и работу инструментов разработки, если вы планируете дорабатывать конфигурацию.