При настройке синхронизации между конфигурациями Розница 2.2 и Бухгалтерия предприятия 3.0 пользователи часто сталкиваются с загадочной ситуацией: данные из одной базы в другую передаются, объекты успешно создаются и даже видны через консоль запросов, но стандартная форма списка справочника ВидыОплатОрганизаций остается пустой. Рассмотрим детально, почему это происходит и как исправить ситуацию, когда «мистика» в 1С мешает работе бухгалтерии.
Если запрос ВЫБРАТЬ Ссылка ИЗ Справочник.ВидыОплатОрганизаций показывает наличие записей, значит, физически данные в таблицах СУБД присутствуют. Отсутствие их в форме списка чаще всего связано с работой механизма ДинамическийСписок. Этот объект отвечает за отображение данных в управляемых формах и накладывает на выборку ряд фильтров: явных (настройки пользователя), программных (код в модуле формы) и неявных (права доступа и функциональные опции).
Разберем по шагам основные причины и способы их устранения.
В конфигурации 1С:Бухгалтерия предприятия 3.0 интерфейс и состав отображаемых данных сильно зависят от настроек функциональности. Если система «считает», что розничная торговля не ведется, она может программно скрывать элементы или ограничивать работу соответствующих справочников.
Выясним причину через интерфейс:
Часто после включения этой опции динамические списки начинают корректно инициализироваться, и данные появляются без дополнительных манипуляций.
Справочник Виды оплаты в БП 3.0 тесно связан с конкретными организациями. Рассмотрим ситуацию, которая часто возникает при обмене: в Рознице элемент справочника может не иметь жесткой привязки к организации, а в Бухгалтерии этот реквизит является ключевым для фильтрации в списках.
Проанализируем данные с помощью несложного кода, который можно запустить во внешней обработке или консоли кода:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВидыОплат.Ссылка КАК Ссылка,
| ВидыОплат.Наименование КАК Наименование,
| ВидыОплат.Организация КАК Организация,
| ВидыОплат.СпособОплаты КАК СпособОплаты
|ИЗ
| Справочник.ВидыОплатОрганизаций КАК ВидыОплат";
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
Сообщить("Элемент: " + Результат.Наименование + " | Организация: " + Результат.Организация);
КонецЦикла;
Если в колонке Организация вы видите пустое значение или «Объект не найден», это и есть причина проблемы. Стандартная форма списка БП 3.0 при открытии автоматически устанавливает отбор по «Основной организации» из настроек пользователя или по первой найденной в базе. Если в справочнике у элементов организация не заполнена, они просто не попадают в этот фильтр.
Иногда стандартные средства «Установить стандартные настройки» не помогают, так как отбор прописан жестко в коде конфигурации в процедуре ПриСозданииНаСервере. Если вы не хотите снимать базу с поддержки, выполним проверку через создание собственной формы.
Рассмотрим этот метод подробнее:
ДинамическийСписок, и укажем основной таблицей Справочник.ВидыОплатОрганизаций.Посмотрим на пример того, как система может накладывать фильтр программно:
// Пример кода, который может скрываться в недрах конфигурации
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Система может автоматически добавлять отбор по типу оплаты или организации
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Организация", Параметры.Организация);
КонецПроцедуры
Даже если у пользователя есть Полные права, включенный механизм RLS (Record Level Security) может накладывать свои ограничения. Проанализируем ситуацию: если данные пришли через обмен под техническим пользователем, а их владельцем (организацией) значится объект, на который у текущего пользователя нет прав (или организация не заполнена), RLS просто исключит эти строки из динамического списка.
Что нужно сделать:
RLS для тестирования.Виды оплаты привязаны к той же организации, которая выбрана в интерфейсе БП.Бывают случаи, когда настройки динамического списка «зависают» в кэше базы данных. Обычная кнопка в форме не всегда очищает записи в системном регистре НастройкиПользователей.
Выполним следующие действия:
ВидыОплатОрганизаций.После этого при открытии справочника форма инициализируется «с нуля», что часто решает проблему невидимых строк.
Хотя динамический список чаще работает напрямую с таблицами, в некоторых случаях (особенно если используются расширенные поисковые формы) может влиять индекс полнотекстового поиска. Если объекты были загружены массово через Data Exchange, индекс мог не успеть обновиться.
Рекомендуем выполнить обновление индекса:
Администрирование — Обслуживание — Полнотекстовый поиск — Обновить индекс.
Подводя итог, если вы столкнулись с «исчезновением» видов оплаты в 1С:Бухгалтерии, первым делом проверьте заполнение реквизита Организация у пришедших объектов и включите функциональность розничной торговли. В 90% случаев проблема кроется в автоматических фильтрах по организации, которые ДинамическийСписок накладывает «незаметно» для пользователя. Если это не помогло, создайте простейшую внешнюю форму списка без программного кода — это станет окончательным тестом, подтверждающим наличие данных и отсутствие влияния кода основной конфигурации.