Как правильно изменить типовой объект конфигурации 1С:Бухгалтерия с сохранением поддержки?

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

При работе с типовыми конфигурациями, такими как Бухгалтерия 3.0, разработчики часто сталкиваются с необходимостью внесения точечных изменений в объекты метаданных. В процессе этой работы возникает вопрос: почему платформа требует изменения статуса всей конфигурации перед тем, как позволить редактировать один конкретный документ или справочник? Давайте разберем этот механизм по порядку, проанализируем логику работы 1С и рассмотрим лучшие практики разработки.

Почему 1С требует смены статуса конфигурации?

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

Для того чтобы включить режим Возможность редактирования с сохранением поддержки для отдельного объекта (например, документа РеализацияТоваровУслуг), система требует выполнения следующей последовательности действий:

  1. Откройте настройки поддержки конфигурации: Конфигурация -> Поддержка -> Настройка поддержки.
  2. Для корня конфигурации установите правило Объект поставщика не редактируется.
  3. Сохраните изменения.
  4. После сохранения в списке объектов для конкретных элементов станет доступным режим Возможность редактирования с сохранением поддержки.

Зачем это сделано? Этот механизм является предохранителем. Платформа переводит конфигурацию в режим «ручного управления». Когда вы разрешаете редактирование, вы берете на себя ответственность за слияние (merge) изменений, которые могут прийти от поставщика при обновлении. Устанавливая статус «не редактируется» на верхнем уровне, вы подтверждаете, что осознаете необходимость выборочного контроля за обновлением типовых модулей.

Основные риски изменения типовых объектов

Даже если вам кажется, что правка «всего лишь одного реквизита» безопасна, это несет в себе скрытые риски:

Современный стандарт: использование расширений конфигурации

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

Преимущества расширений:

Как реализовать контроль заполнения через расширение?

Допустим, вам нужно добавить контроль заполнения реквизита в табличной части Услуги. Вместо изменения типового модуля формы, мы поступим следующим образом:

  1. Создаем новое расширение конфигурации.
  2. Добавляем в него форму документа (заимствуем её).
  3. Используем аннотацию &Перед для процедуры обработки записи или проверки заполнения:

&Перед("ОбработкаПроверкиЗаполнения")
Процедура МойКонтрольЗаполнения(Отказ, ПроверяемыеРеквизиты)
    // Здесь мы проверяем наличие данных в табличной части
    Для Каждого СтрокаТЧ Из Объект.Услуги Цикл
        Если СтрокаТЧ.Количество = 0 Тогда
            Сообщить("Количество не может быть нулевым!");
            Отказ = Истина;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

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

Заключение: что выбрать?

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

← На главную