Почему не отображаются элементы справочника Виды оплаты в списке 1С:Бухгалтерия после обмена?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет Торговля и дистрибуция
← На главную

При настройке синхронизации между конфигурациями Розница 2.2 и Бухгалтерия предприятия 3.0 пользователи часто сталкиваются с загадочной ситуацией: данные из одной базы в другую передаются, объекты успешно создаются и даже видны через консоль запросов, но стандартная форма списка справочника ВидыОплатОрганизаций остается пустой. Рассмотрим детально, почему это происходит и как исправить ситуацию, когда «мистика» в 1С мешает работе бухгалтерии.

Проанализируем техническую суть проблемы

Если запрос ВЫБРАТЬ Ссылка ИЗ Справочник.ВидыОплатОрганизаций показывает наличие записей, значит, физически данные в таблицах СУБД присутствуют. Отсутствие их в форме списка чаще всего связано с работой механизма ДинамическийСписок. Этот объект отвечает за отображение данных в управляемых формах и накладывает на выборку ряд фильтров: явных (настройки пользователя), программных (код в модуле формы) и неявных (права доступа и функциональные опции).

Разберем по шагам основные причины и способы их устранения.

1. Проверка функциональных опций розничной торговли

В конфигурации 1С:Бухгалтерия предприятия 3.0 интерфейс и состав отображаемых данных сильно зависят от настроек функциональности. Если система «считает», что розничная торговля не ведется, она может программно скрывать элементы или ограничивать работу соответствующих справочников.

Выясним причину через интерфейс:

  1. Перейдем в раздел Главное — Настройки — Функциональность.
  2. Откроем закладку Торговля (в некоторых версиях — Розничная торговля).
  3. Проверим наличие флажка на пункте Розничные продажи. Если он снят, установим его.

Часто после включения этой опции динамические списки начинают корректно инициализироваться, и данные появляются без дополнительных манипуляций.

2. Анализ реквизита Организация и привязка к владельцу

Справочник Виды оплаты в БП 3.0 тесно связан с конкретными организациями. Рассмотрим ситуацию, которая часто возникает при обмене: в Рознице элемент справочника может не иметь жесткой привязки к организации, а в Бухгалтерии этот реквизит является ключевым для фильтрации в списках.

Проанализируем данные с помощью несложного кода, который можно запустить во внешней обработке или консоли кода:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	ВидыОплат.Ссылка КАК Ссылка,
    |	ВидыОплат.Наименование КАК Наименование,
    |	ВидыОплат.Организация КАК Организация,
    |	ВидыОплат.СпособОплаты КАК СпособОплаты
    |ИЗ
    |	Справочник.ВидыОплатОрганизаций КАК ВидыОплат";

Результат = Запрос.Выполнить().Выбрать();

Пока Результат.Следующий() Цикл
    Сообщить("Элемент: " + Результат.Наименование + " | Организация: " + Результат.Организация);
КонецЦикла;

Если в колонке Организация вы видите пустое значение или «Объект не найден», это и есть причина проблемы. Стандартная форма списка БП 3.0 при открытии автоматически устанавливает отбор по «Основной организации» из настроек пользователя или по первой найденной в базе. Если в справочнике у элементов организация не заполнена, они просто не попадают в этот фильтр.

3. Скрытые программные отборы в форме списка

Иногда стандартные средства «Установить стандартные настройки» не помогают, так как отбор прописан жестко в коде конфигурации в процедуре ПриСозданииНаСервере. Если вы не хотите снимать базу с поддержки, выполним проверку через создание собственной формы.

Рассмотрим этот метод подробнее:

  1. Создадим внешнюю обработку.
  2. Добавим на форму таблицу, тип значения которой установим как ДинамическийСписок, и укажем основной таблицей Справочник.ВидыОплатОрганизаций.
  3. Если в этой новой форме элементы видны — значит, проблема в «родной» форме списка БП (в её программных фильтрах или настройках).

Посмотрим на пример того, как система может накладывать фильтр программно:


// Пример кода, который может скрываться в недрах конфигурации
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Система может автоматически добавлять отбор по типу оплаты или организации
    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Организация", Параметры.Организация);
КонецПроцедуры

4. Ограничение доступа на уровне записей (RLS)

Даже если у пользователя есть Полные права, включенный механизм RLS (Record Level Security) может накладывать свои ограничения. Проанализируем ситуацию: если данные пришли через обмен под техническим пользователем, а их владельцем (организацией) значится объект, на который у текущего пользователя нет прав (или организация не заполнена), RLS просто исключит эти строки из динамического списка.

Что нужно сделать:

5. Очистка системных настроек пользователя

Бывают случаи, когда настройки динамического списка «зависают» в кэше базы данных. Обычная кнопка в форме не всегда очищает записи в системном регистре НастройкиПользователей.

Выполним следующие действия:

  1. Зайдем в Администрирование — Настройки пользователей и прав.
  2. Выберем Очистка настроек.
  3. Найдем нужного пользователя и в списке настроек найдем форму списка справочника ВидыОплатОрганизаций.
  4. Удалим именно эту настройку.

После этого при открытии справочника форма инициализируется «с нуля», что часто решает проблему невидимых строк.

6. Индексация и полнотекстовый поиск

Хотя динамический список чаще работает напрямую с таблицами, в некоторых случаях (особенно если используются расширенные поисковые формы) может влиять индекс полнотекстового поиска. Если объекты были загружены массово через Data Exchange, индекс мог не успеть обновиться.

Рекомендуем выполнить обновление индекса:

Администрирование — Обслуживание — Полнотекстовый поиск — Обновить индекс.

Резюме по решению задачи

Подводя итог, если вы столкнулись с «исчезновением» видов оплаты в 1С:Бухгалтерии, первым делом проверьте заполнение реквизита Организация у пришедших объектов и включите функциональность розничной торговли. В 90% случаев проблема кроется в автоматических фильтрах по организации, которые ДинамическийСписок накладывает «незаметно» для пользователя. Если это не помогло, создайте простейшую внешнюю форму списка без программного кода — это станет окончательным тестом, подтверждающим наличие данных и отсутствие влияния кода основной конфигурации.

← На главную