В современных типовых конфигурациях, таких как 1С:Бухгалтерия предприятия 3.0, работающих на базе Библиотеки стандартных подсистем (БСП), пользователи часто сталкиваются с ситуацией, когда привычные реквизиты исчезают из списка доступных для редактирования в обработке Групповое изменение реквизитов. Особенно часто это касается таких ключевых полей, как ВидОперации в документе Авансовый отчет или других системных полей. Рассмотрим подробнее, какими механизмами регулируется этот список и как мы можем на него повлиять.
Разберем ситуацию, когда реквизит присутствует в форме документа и виден в списке, но отсутствует в обработке группового изменения. Основной точкой контроля в БСП является модуль менеджера конкретного объекта метаданных. Выясним причину: разработчики 1С внедряют специальную процедуру, которая жестко определяет, какие поля пользователю разрешено менять массово, а какие — нет.
Проанализируем процедуру ПриОпределенииНастроекГрупповогоИзмененияРеквизитов. Она располагается в модуле менеджера объекта (например, документа АвансовыйОтчет). Если мы заглянем в код, то увидим примерно следующую структуру:
Процедура ПриОпределенииНастроекГрупповогоИзмененияРеквизитов(Настройки) Экспорт
// Добавление реквизитов в список исключений
Настройки.РеквизитыИсключаемыеИзРедактирования.Добавить("ВидОперации");
Настройки.РеквизитыИсключаемыеИзРедактирования.Добавить("Организация");
КонецПроцедуры
Когда обработка ГрупповоеИзменениеРеквизитов инициализируется, она опрашивает менеджер объекта. Если реквизит ВидОперации добавлен в массив исключений, он будет скрыт от пользователя вне зависимости от установленных галочек в настройках самой обработки. Это делается для обеспечения логической целостности данных, так как смена вида операции «на лету» может потребовать пересчета всей табличной части и изменения счетов учета, что групповая обработка делать не умеет.
Посмотрим на еще один уровень защиты — внутренний макет самой обработки. В составе общей обработки ГрупповоеИзменениеРеквизитов (или одноименной обработки в составе БСП) существует макет под названием ФильтрРеквизитов. В этом макете (обычно это текстовый документ или таблица) прописаны правила фильтрации для различных типов объектов конфигурации.
Если реквизит внесен в этот «черный список» на уровне всей подсистемы, он также не появится в окне выбора. Это глобальное ограничение, которое распространяется на все объекты данного типа во всей базе данных.
Выясним, как настройки интерфейса влияют на состав доступных полей. Обработка Групповое изменение реквизитов учитывает текущую видимость полей для пользователя. Проанализируем следующие факторы:
ВалютаДокумента будет скрыт не только в формах, но и в групповой обработке.Дополнительные параметры. Однако, как показывает практика, флажок «Показывать служебные реквизиты» не всегда помогает, если поле заблокировано на программном уровне в модуле менеджера.Рассмотрим способы решения проблемы, если нам все же крайне необходимо изменить заблокированный реквизит. Мы рекомендуем использовать наиболее безопасные методы, не нарушающие поддержку конфигурации.
Разберем, как с помощью расширения конфигурации переопределить настройки БСП. Это самый правильный метод, так как он позволяет не менять основную конфигурацию 1С.
Авансовый отчет.
&После("ПриОпределенииНастроекГрупповогоИзмененияРеквизитов")
Процедура Расш_ПриОпределенииНастроекГрупповогоИзмененияРеквизитов(Настройки)
// Удаляем реквизит из списка исключаемых
РеквизитыДляУдаления = Настройки.РеквизитыИсключаемыеИзРедактирования;
Индекс = РеквизитыДляУдаления.Найти("ВидОперации");
Если Индекс <> Неопределено Тогда
РеквизитыДляУдаления.Удалить(Индекс);
КонецЕсли;
КонецПроцедуры
После применения такого расширения реквизит ВидОперации снова станет доступен в общем списке для изменения.
Посмотрим на важный нюанс: вызов обработки из списка документов (через контекстное меню или кнопку «Изменить выделенные») и запуск обработки через раздел Администрирование — Обслуживание — Корректировка данных — Групповое изменение реквизитов могут давать разные результаты. В ряде случаев запуск обработки как отдельного инструмента (с правами администратора) позволяет увидеть большее количество полей, особенно если настроить отбор объектов вручную.
Проанализируем риски. Разработчики 1С скрывают поля ВидОперации, Склад или Организация не случайно. Групповое изменение таких реквизитов без понимания внутренней логики проведения документа может привести к рассинхронизации данных. Например, в регистрах накопления останутся записи по старому виду операции, а в документе будет стоять новый. После массового изменения реквизитов мы настоятельно рекомендуем выполнить групповое перепроведение измененных документов, чтобы учетные данные в регистрах обновились в соответствии с новыми значениями реквизитов.