Почему в Синтаксис-помощнике 1С не отображается свойство РасширенныеРежимыЗамещения?

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

При переходе на платформу 1С:Предприятие версий 8.3.26 и 8.3.27 разработчики могут столкнуться с ситуацией, когда новые возможности платформы не видны в дереве Синтаксис-помощника. В частности, для наборов записей регистров может отсутствовать свойство РасширенныеРежимыЗамещения, хотя в коде платформы оно поддерживается. Разберем по шагам причины такого поведения конфигуратора, способы настройки отображения справки, а также особенности применения этого свойства на практике.

Выясним причину скрытия объектов в Синтаксис-помощнике

Синтаксис-помощник в конфигураторе 1С по умолчанию фильтрует дерево объектов в зависимости от текущего режима совместимости открытой конфигурации. Проанализируем, почему это происходит:

  1. Если конфигурация работает в режиме совместимости с версиями ниже 8.3.26 (например, 8.3.25 или 8.3.21), платформа скрывает методы, свойства и типы, появившиеся в более поздних версиях.
  2. Это поведение реализовано для того, чтобы разработчик случайно не использовал функционал, недоступный при текущем уровне совместимости прикладного решения.

Как настроить отображение справки в Конфигураторе

Рассмотрим способы, с помощью которых можно вернуть отображение новых объектов и свойств в Синтаксис-помощнике:

  1. Настройка параметров справки без изменения конфигурации. Перейдем в главное меню: Сервис — Параметры — Справка. Здесь можно включить опцию отображения нерекомендуемых или скрытых объектов, либо переключить фильтрацию по версии платформы в положение «Не использовать» (или выбрать целевую версию платформы 8.3.26 / 8.3.27). Это позволит просматривать полную справку без редактирования метаданных конфигурации.
  2. Изменение режима совместимости конфигурации. Если разрабатываемое решение переводится на новые механизмы платформы, перейдем в свойства корневого элемента конфигурации и изменим свойство РежимСовместимости на значение «Не использовать» или версию не ниже «Версия 8.3.26». После этого дерево Синтаксис-помощника автоматически обновит состав доступных свойств.

Особенности свойства РасширенныеРежимыЗамещения и неточность справки

Проанализируем работу самого свойства РасширенныеРежимыЗамещения. В первых редакциях документации для версий 8.3.26 и 8.3.27 присутствовала неточность: в Синтаксис-помощнике было указано, что свойство доступно только для чтения. На практике это свойство имеет доступ «Чтение и запись» и тип Булево.

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


НаборЗаписей = РегистрыНакопления.Взаиморасчеты.СоздатьНаборЗаписей();
НаборЗаписей.РасширенныеРежимыЗамещения = Истина;

Назначение и возможности расширенных режимов замещения

Рассмотрим подробнее, зачем используется свойство РасширенныеРежимыЗамещения:

  1. Редактирование номера строки. Включение данного режима снимает запрет на изменение стандартного реквизита НомерСтроки для подчиненных регистратору регистров (регистры накопления, подчиненные регистры сведений). Это позволяет выполнять точечное обновление существующих записей по их исходным номерам.
  2. Сброс отбора по регистратору. Появляется возможность вызвать НаборЗаписей.Отбор.Сбросить(), что дает возможность массово обновлять или удалять записи сразу по нескольким регистраторам без необходимости поэлементной перезаписи каждого набора. Это критично для оптимизации длительных процедур, таких как пересчет последовательностей или регламентное закрытие месяца.

Ограничения платформы при работе со свойством

При использовании расширенных режимов замещения важно учитывать архитектурные ограничения платформы:

  1. Поддерживаемые режимы записи. Для подчиненных регистров поддерживаются только режимы РежимЗамещения.Обновление и РежимЗамещения.Удаление. Режим РежимЗамещения.Слияние для подчиненных регистров не поддерживается платформой (он применяется только для независимых регистров сведений).
  2. Контроль номеров строк. При использовании режимов Обновление и Удаление реквизит НомерСтроки должен быть заполнен для каждой строки набора, а дублирование номеров в пределах одного регистратора недопустимо. Если же используется режим Добавление (или значение Ложь), номера строк генерируются платформой автоматически.

Альтернативное поведение при несовместимости

Если проект вынужденно сохраняет режим совместимости ниже 8.3.26, оптимизация через свойство РасширенныеРежимыЗамещения недоступна. В таком случае применяем стандартные алгоритмы:

  1. Полная перезапись движений документа через набор записей с установленным отбором по конкретному регистратору с параметром замещения Истина.
  2. Дозапись строк в конец таблицы с передачей параметра замещения Ложь в метод Записать() с обязательным контролем возможных дублей на уровне прикладного кода.
← На главную