Как найти список неподдерживаемых процедур и функций при изменении режима совместимости 1С

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

При сопровождении и развитии информационных систем на базе «1С:Предприятие 8», особенно таких исторически сложившихся, как «Управление производственным предприятием 1.3» (УПП), часто возникает вопрос повышения производительности и использования современных возможностей платформы. Одним из ключевых шагов в этом направлении является изменение (повышение) режима совместимости конфигурации. Однако этот процесс сопряжен с рисками: часть программного кода может перестать работать, а некоторые привычные методы могут быть объявлены устаревшими или вовсе удалены.

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

Где найти документацию по изменениям платформы

Рассмотрим основной источник информации, который всегда находится у вас под рукой, даже если нет доступа к интернету или подписке ИТС. С каждой установленной версией платформы поставляется файл V8Update.htm. В нем детально описываются все изменения, включая те, что требуют доработки конфигурации при отключении или изменении режима совместимости.

Найти этот файл можно в каталоге установки платформы на вашем компьютере или сервере. Путь обычно выглядит следующим образом:

C:\Program Files\1cv8\<номер_версии_платформы>\docs\ru\V8Update.htm

Проанализируем структуру этого документа. В нем выделен специальный раздел «Изменения, требующие изменения конфигурации». Именно этот раздел является библией программиста при миграции. Если вы перепрыгиваете через несколько версий (например, с 8.2.16 сразу на 8.3.12), вам необходимо изучить все промежуточные изменения для каждой версии платформы в этом файле.

На портале ИТС аналогичная информация собрана в разделе «Руководство по переходу на новые версии». Там представлена сводная таблица изменений, разбитая по категориям: интерфейс, запросы, блокировки, работа с файлами и т. д.

Основные критические изменения при переходе на 8.3

Разберем наиболее значимые изменения, с которыми сталкиваются разработчики при повышении режима совместимости выше 8.2.16.

1. Переход на асинхронные вызовы

Начиная с режима совместимости 8.3.3, платформа начала планомерный отказ от синхронных методов, которые блокируют работу интерфейса. Это критично для работы в веб-клиенте и мобильных приложениях. Если в режиме 8.2.16 метод Вопрос() работал без проблем, то в новых режимах он может вызывать ошибки или требовать переработки.

Посмотрим на пример изменения кода. Раньше мы писали так:


Ответ = Вопрос("Продолжить выполнение операции?", РежимДиалогаВопрос.ДаНет);
Если Ответ = КодВозвратаДиалога.Да Тогда
    // Логика выполнения
КонецЕсли;

В новых режимах совместимости (особенно при подготовке к отказу от модальности) следует использовать асинхронный аналог:


ОписаниеОповещения = Новый ОписаниеОповещения("ПослеВопроса", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения, "Продолжить выполнение операции?", РежимДиалогаВопрос.ДаНет);

// В отдельной процедуре:
Процедура ПослеВопроса(Результат, ДополнительныеПараметры) Экспорт
    Если Результат = КодВозвратаДиалога.Да Тогда
        // Логика выполнения
    КонецЕсли;
КонецПроцедуры

2. Изменения в работе с запросами и СУБД

Выясним причину, по которой аудиторы часто рекомендуют повышать режим совместимости. Это связано с оптимизацией работы с базой данных:

Инструменты автоматизированного анализа кода

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

Встроенная проверка конфигурации

Проанализируем ситуацию с помощью штатного механизма «1С:Предприятия». Это самый быстрый способ получить список проблемных мест:

  1. Откройте Конфигуратор.
  2. Зайдите в меню «Конфигурация» — «Проверка конфигурации».
  3. В появившемся окне обязательно установите флажок «Проверка на соответствие версии платформы».
  4. В выпадающем списке выберите целевой режим совместимости (например, 8.3.12).
  5. Нажмите «ОК» и дождитесь завершения процесса.

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

Использование инструментов разработчика (ИР)

Существуют внешние инструменты, такие как «Инструменты разработчика» (автор Tormozit), которые содержат расширенный синтакс-помощник. В нем можно увидеть доступность того или иного метода в разрезе различных режимов совместимости и версий платформы. Это крайне полезно, когда нужно быстро понять, с какой именно версии появилась или исчезла конкретная возможность GlobalContext.

Рекомендации по повышению режима для УПП 1.3

Рассмотрим специфику УПП 1.3. Поскольку эта конфигурация построена на обычных формах, радикальное повышение режима до актуальных (8.3.24+) может быть избыточным и болезненным.

Оптимальный путь миграции:

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

Выясним напоследок: стоит ли верить аудиторам? В целом — да. Современная платформа 8.3 работает с SQL гораздо эффективнее, чем 8.2. Но без тщательного тестирования (особенно в части транзакций и блокировок) приступать к обновлению на рабочей базе категорически нельзя.

← На главную