Почему не применяется быстрый отбор по сотруднику в расчетных листках 1С?

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

При формировании зарплатных отчетов пользователи часто сталкиваются с ситуацией, когда быстрый отбор на панели настроек игнорируется программой. В типовой конфигурации «Комплексная автоматизация 1.1» (на обычных формах) в отчете «Расчетные листки организаций» выбор конкретного сотрудника через панель «Настройки» может приводить к тому, что документ все равно формируется по всей организации. В то же время установка того же самого сотрудника через форму «Настройка структуры» отрабатывает корректно. Разберем детально, почему так происходит и как исправить поведение системы.

Причина 1. Пустые строки и незаполненные элементы в списке отборов

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

Если в списке отбора присутствует хотя бы одна строка с незаполненным значением, отчет может полностью проигнорировать фильтр и сформироваться без отбора.

Разберем по шагам, как очистить параметры отбора:

  1. Откроем форму отчета «Расчетные листки организаций».
  2. Нажмем кнопку «Настройки» на командной панели отчета.
  3. Внимательно просмотрим список доступных и включенных отборов. Проверим, нет ли среди них строк с установленным флажком, где поле значения не заполнено.
  4. Если используется вид сравнения «В списке», откроем список значений и убедимся, что там нет пустых строк. При наличии пустых записей удалим их.
  5. Снимем флажки со всех неиспользуемых параметров или удалим лишние строки отбора клавишей Delete.
  6. Установим флажок только напротив нужного сотрудника и нажмем «Сформировать».

Причина 2. Рассинхронизация пользовательских настроек и структуры отчета

Выясним причину различия между кнопкой быстрых настроек и пунктом «Настройка вариантов отчета» — «Настройка структуры». В архитектуре СКД настройки разделены на две группы:

1. Настройки компоновщика — это базовая схема варианта отчета, которая напрямую изменяется через диалоговое окно «Настройка структуры».

2. ПользовательскиеНастройки — это те элементы, которые вынесены на форму для оперативного редактирования пользователем.

Если в макете компоновки данных отбор для панели быстрых настроек привязан к общему уровню отчета, а в самой структуре отчета группировки настроены автономно (без наследования родительских фильтров), быстрый отбор не будет оказывать влияния на вывод расчетных листков. При ручном редактировании структуры пользователь принудительно внедряет условие прямо в рабочую группировку, поэтому такой отчет формируется корректно.

Для устранения этой рассинхронизации выполним следующие действия:

  1. В меню действий отчета нажмем «Установить стандартные настройки». Это восстановит заводские связи между панелью быстрых настроек и структурой компоновщика.
  2. Если сброс не помог, откроем «Настройка вариантов отчета», перейдем в «Настройка структуры» и проверим вкладку «Отбор» на верхнем уровне («Отчет») и на уровне группировок («Организация», «Подразделение», «Сотрудник»).
  3. Убедимся, что отбор по сотруднику установлен на самом верхнем уровне дерева структуры, а не внутри подчиненной группировки.

Причина 3. Ошибки программного формирования отчета (для разработчиков)

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

Когда разработчик берет настройки напрямую из объекта КомпоновщикНастроек.Настройки, любые изменения из пользовательской панели игнорируются, поскольку они хранятся в КомпоновщикНастроек.ПользовательскиеНастройки.

Рассмотрим правильный пример инициализации настроек в коде 1С:


// Неправильно:
// НастройкиСКД = КомпоновщикНастроек.Настройки;

// Правильно: получаем настройки с учетом пользовательских фильтров
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
НастройкиСКД = КомпоновщикНастроек.ПолучитьНастройки();

МакетКомпоновки = КомпоновщикМакета.Выполнить(
    СхемаКомпоновкиДанных, 
    НастройкиСКД, 
    ДанныеРасшифровки
);

Метод ПолучитьНастройки() объединяет основные настройки структуры и быстрые пользовательские отборы в единую результирующую структуру, гарантируя корректное применение фильтрации по сотруднику.

Рекомендации по сохранению рабочего варианта

Чтобы бухгалтеру не приходилось каждый раз заходить в глубокие настройки структуры, настроим отчет один раз и зафиксируем его:

  1. Откроем «Настройка вариантов отчета» — «Настройка структуры».
  2. На вкладке «Отбор» добавим поле Сотрудник, выберем нужного человека и нажмем кнопку подтверждения.
  3. Сформируем отчет и проверим, что расчетный листок выводится ровно по указанному лицу.
  4. Нажмем кнопку «Сохранить вариант отчета», введем понятное наименование (например, «Расчетный листок по сотруднику») и сохраним вариант для себя или для всех пользователей базы.

В дальнейшем бухгалтер сможет выбирать этот сохраненный вариант из списка, изменяя только ФИО сотрудника без риска сбоя отборов.

← На главную