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