При сопровождении конфигурации «1С:Бухгалтерия предприятия 3.0» разработчики и администраторы нередко сталкиваются с ситуацией: в документе (например, ОтчетПроизводстваЗаСмену) присутствуют реквизиты подразделений, обмен из внешней системы (например, из 1С:УНФ) успешно заполняет эти поля, однако стандартная обработка «Групповое изменение реквизитов» не показывает их в списке доступных полей. Более того, при попытке написать прямой запрос в Системе компоновки данных (СКД) поля подразделений просто исчезают из доступных полей отчета.
Выясним причину такого поведения платформы, проанализируем механизм функциональных опций и разберем по шагам, как решить эту проблему несколькими способами.
Главная причина кроется в механизме Функциональных опций (ФО) платформы «1С:Предприятие 8.3». Разберем подробно, как этот механизм влияет на различные компоненты системы:
Ложь, платформа автоматически исключает это поле из схемы компоновки данных в пользовательском режиме. Даже если в тексте запроса секция ВЫБРАТЬ содержит явное обращение к полям ОтчетПроизводстваЗаСмену.ПодразделениеЗатрат или ОтчетПроизводстваЗаСмену.ПодразделениеОрганизации, платформа скрывает их из доступных полей, группировок, отборов и колонок отчета.Проанализируем структуру реквизитов документов производства в «1С:Бухгалтерии 3.0». В конфигурации используются два совершенно разных разреза аналитики:
ПодразделениеЗатрат) — аналитический разрез учета производственных расходов (субконто затратных счетов 20, 23, 25, 26). Данный учет полноценно поддерживается в версии ПРОФ, но может быть отключен в общих параметрах учета информационной базы.ПодразделениеОрганизации) — сквозной балансовый учет по филиалам и обособленным подразделениям (с отдельным КПП и собственным балансом). Данный функционал реализован исключительно в версии КОРП. В версии ПРОФ этот реквизит физически присутствует в структуре метаданных документа, но наглухо скрыт неактивной функциональной опцией, включить которую в ПРОФ штатными настройками невозможно.Если речь идет о реквизите ПодразделениеЗатрат в версии ПРОФ, его видимость регулируется настройкой плана счетов. Разберем по шагам, как активировать необходимую функциональную опцию через интерфейс программы:
После сохранения этой настройки система активирует соответствующую константу и связанную с ней функциональную опцию. В результате реквизит ПодразделениеЗатрат станет доступен в формах документов, в отчетах СКД и в типовой обработке группового изменения реквизитов.
Если включать учет по подразделениям на постоянной основе не требуется, либо если требуется скорректировать реквизит, скрытый ограничениями версии КОРП (например, ПодразделениеОрганизации), рассмотрим обходной путь через типовую обработку БСП:
Отчет производства за смену).Посмотрим на пример алгоритма для массовой замены подразделения:
// В контексте обработки доступна переменная Объект
Если Объект.ПодразделениеЗатрат = СтароеПодразделение Тогда
Объект.ПодразделениеЗатрат = НовоеПодразделение;
КонецЕсли;
Если задача заключается в том, чтобы исправить последствия некорректной синхронизации, когда в базу попал дублирующий или ошибочный элемент справочника Подразделения, самым надежным штатным средством является замена ссылок:
Данный инструмент осуществляет поиск прямых ссылок во всех таблицах информационной базы на уровне СУБД, игнорируя активность функциональных опций. В результате все некорректные подразделения в документах будут корректно заменены на правильные без необходимости ручной правки документов.