При разделении единой информационной базы «1С:Бухгалтерия» на несколько независимых баз с помощью механизма распределенной информационной базы (РИБ) с отбором по организации пользователи часто сталкиваются с неприятной ошибкой: в стандартных бухгалтерских отчетах (оборотно-сальдовая ведомость, карточка счета, анализ счета) пропадают флаги включения показателей НУ (налоговый учет), ПР (постоянные разницы), ВР (временные разницы) и Контроль. В панели настроек эти флажки становятся не просто неактивными — они полностью исчезают из интерфейса.
Разберем детально, почему так происходит, какие системные механизмы платформы «1С:Предприятие» за это отвечают и какими способами можно быстро восстановить привычный вид отчетов.
Проанализируем внутреннее устройство типовой конфигурации. Видимость колонок и флагов налогового учета в отчетах жестко управляется механизмом функциональных опций. Включение тех или иных опций зависит от значений служебных констант (например, признака применения общей системы налогообложения ИспользуетсяОСНО, применения положений ПБУ 18/02 или учета по нескольким организациям).
Когда мы создаем начальный образ подчиненного узла РИБ с отбором по конкретной организации, срабатывает внутренняя логика плана обмена:
Организация.Ложь.Выясним, как заставить конфигурацию заново рассчитать и заполнить служебные константы. Для этого достаточно инициализировать обработчики записи параметров налогового учета в пользовательском режиме.
Выполним следующие шаги:
Если константы уже перезаписаны, но флажки в форме отчета все еще не появились, причина может заключаться в закешированной структуре схемы компоновки данных (СКД) конкретного пользователя.
Рассмотрим, как вернуть стандартный вид отчета:
Если требуется автоматизировать процесс или перезаписать параметры для нескольких организаций сразу, можно воспользоваться внешней обработкой или встроенным языком 1С. Посмотрим на пример вызова методов для обновления функциональных опций и интерфейса сеанса:
// Принудительно обновляем отображение интерфейса без перезапуска сеанса
ОбновитьИнтерфейс();
После вызова этого метода платформа перечитывает состояние функциональных опций из базы данных и перерисовывает все открытые и динамические формы.
Если распределенная информационная база создавалась исключительно как временный инструмент для разделения («распила») данных, подчиненный узел необходимо обязательно отключить от главного. Пока база находится в статусе узла РИБ, в ней могут блокироваться изменения настроек, а при случайной синхронизации настройки могут перезаписаться исходными значениями.
Для отключения главного узла запустим программу в режиме «1С:Предприятие» и через консоль кода или внешнюю обработку выполним команду:
// Отключаем главный узел, делая базу полностью автономной
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
После выполнения этого кода информационная база становится полностью автономной, снимаются все ограничения на редактирование служебных реквизитов и конфигурации.
Чтобы в будущем избежать проблем с «битыми» ссылками и потерей системных констант, рассмотрим альтернативные варианты разделения баз данных без применения механизма РИБ: