Отчеты и Аналитика · 12 мин
Как в 1С сделать отбор по сотруднику
Как в 1С сделать отбор по сотруднику в журналах документов, справочниках и отчётах: кнопка «Найти», настройка списка, СКД, типовые ошибки и проверка результата.
Отбор по сотруднику — одна из самых частых операций в 1С: он нужен, чтобы посмотреть документы конкретного работника, проверить начисления, найти кадровые приказы или выгрузить данные для проверки. Механизм зависит от того, где вы работаете: в обычном списке документов, в динамическом списке или в отчёте на СКД. Во всех случаях логика одна — вы указываете поле «Сотрудник» (или связанное поле) и задаёте условие сравнения.
В типовых конфигурациях (1С:ЗУП, 1С:Бухгалтерия, 1С:ERP, Управление нашей фирмой) поле «Сотрудник» присутствует в кадровых документах, начислениях, ведомостях и большинстве отчётов по персоналу. Важно понимать разницу между физическим лицом и сотрудником: одно физлицо может иметь несколько записей справочника «Сотрудники» (основное место работы и совместительство), поэтому отбор по сотруднику и по физлицу может давать разные результаты.
Ниже разобраны все рабочие способы: быстрый поиск в списке, отбор через настройку списка, отбор в отчётах, а также программный отбор для разработчиков. Для каждого способа указаны условия применения и типичные ошибки.
Как устроен отбор в 1С и где искать поле «Сотрудник»
В управляемых формах 1С (такси-интерфейс) списки документов и справочников построены на динамических списках. Это значит, что отбор накладывается на запрос к базе данных, а не на уже загруженные строки: даже в журнале на сотни тысяч записей отбор сработает быстро, если поле проиндексировано. Поле «Сотрудник» в кадровых документах обычно индексировано, поэтому отбор по нему не тормозит систему.
Найти нужный журнал можно через раздел «Кадры» (приёмы, переводы, увольнения), «Зарплата» (начисления, ведомости) или «Персонал» в зависимости от конфигурации. Если документов несколько видов, отбор по сотруднику придётся настраивать в каждом журнале отдельно — либо использовать отчёт, где все кадровые события собраны вместе.
Быстрый поиск по списку без настройки отбора
Для разовой задачи проще всего воспользоваться строкой поиска. Откройте журнал документов, нажмите Ctrl+F или кликните в поле поиска в правой верхней части списка, введите фамилию и нажмите Enter. Система покажет строки, где введённый текст встречается в отображаемых колонках.
У этого способа есть ограничения. Поиск ищет по началу строки и только по видимым колонкам: если фамилия сотрудника не выведена в список отдельной колонкой, поиск может ничего не найти. Кроме того, поиск по подстроке в больших журналах работает медленнее отбора по ссылке на элемент справочника. Для постоянной работы лучше настроить полноценный отбор.
Ещё один быстрый вариант — найти сотрудника в справочнике «Сотрудники», открыть его карточку и перейти по связанным ссылкам: в карточке обычно доступны переходы к кадровым документам, начислениям и отсутствиям именно этого работника. Это удобно, когда нужно увидеть всю историю по человеку, а не один тип документов.
Отбор через «Настроить список» в журнале документов
Основной способ для регулярной работы — настройка отбора динамического списка. Откройте нужный журнал (например, «Кадры → Приёмы, переводы, увольнения»), нажмите кнопку «Ещё» в командной панели списка и выберите «Настроить список». Откроется окно с закладками «Отбор», «Сортировка», «Группировка» и «Условное оформление».
На закладке «Отбор» в левой части найдите поле «Сотрудник» — перетащите его в правую часть или дважды кликните. Затем задайте вид сравнения «Равно» и в поле значения выберите сотрудника из справочника. После нажатия «ОК» список покажет только документы выбранного работника. В шапке списка появится строка с активным отбором — её можно свернуть или сбросить одной кнопкой.
- 1Откройте журнал документов или справочник
- 2Нажмите «Ещё → Настроить список»
- 3На закладке «Отбор» перенесите поле «Сотрудник» вправо
- 4Установите вид сравнения «Равно» и выберите сотрудника
- 5Нажмите «ОК» и проверьте, что список отфильтрован
- 6При необходимости сохраните настройку как вариант списка
Если отбор нужен постоянно (например, руководитель смотрит только своих подчинённых), сохраните настройку: в окне настройки списка есть кнопка сохранения варианта. Вариант появится в меню выбора настроек и будет применяться одним кликом. Это избавляет от повторной настройки после каждого открытия журнала.
Виды сравнения и отбор по нескольким сотрудникам
Кроме «Равно» доступны другие виды сравнения. «В списке» позволяет выбрать сразу нескольких сотрудников — удобно для проверки документов небольшой группы. «В группе» работает, если справочник сотрудников имеет иерархию по подразделениям. «Не равно» и «Не в списке» пригодятся для исключения конкретных работников из выборки.
Условия можно комбинировать. Несколько строк отбора по умолчанию соединяются по «И»: например, «Сотрудник в списке (Иванов, Петров)» и «Проведён = Да». Чтобы объединить условия по «ИЛИ», сгруппируйте их кнопкой «Сгруппировать условия» и выберите тип группы. Это нужно, когда вы ищете документы либо одного, либо другого сотрудника без составления списка.
Отбор по сотруднику в отчётах
В отчётах (расчётный листок, справка о сотрудниках, остатки отпусков, штатная расстановка) отбор настраивается через кнопку «Настройки» или «Показать настройки». На вкладке «Отбор» добавьте поле «Сотрудник», задайте условие и сформируйте отчёт. Механика та же, что и в списках, но есть важное отличие: отбор в отчёте влияет на итоги, а не только на видимость строк.
Многие типовые отчёты имеют быстрые пользовательские настройки прямо на форме — поля «Организация», «Подразделение», «Сотрудник» вынесены в шапку. Если поле «Сотрудник» там есть, достаточно заполнить его и нажать «Сформировать», не заходя в полные настройки. Если поля нет, добавьте его: «Настройки → расширенный вид → Отбор → Добавить».
Для периодических проверок сохраните отчёт с отбором как вариант: кнопка «Ещё → Сохранить вариант отчёта» (или «Сохранить настройки» в старых версиях). Вариант будет доступен в списке отчётов и, при желании, вынесен на начальную страницу или в подписку на рассылку отчётов.
Программный отбор для разработчиков
Если вы дорабатываете конфигурацию или пишете внешнюю обработку, отбор по сотруднику задаётся через объект Отбор динамического списка или через параметры запроса СКД. Для динамического списка на форме используется установка элемента отбора компоновки данных.
ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Сотрудник");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = СотрудникСсылка;
ЭлементОтбора.Использование = Истина;
Для запросов к регистрам (начисления, кадровая история) надёжнее передавать сотрудника параметром виртуальной таблицы, а не в условии ГДЕ: отбор в параметрах виртуальной таблицы выполняется до соединений и работает заметно быстрее на больших объёмах. Например, в регистре сведений «КадроваяИсторияСотрудников» срез последних с отбором по сотруднику задаётся параметром виртуальной таблицы.
Запрос.Текст = "ВЫБРАТЬ * ИЗ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&Период, Сотрудник = &Сотрудник)"; Запрос.УстановитьПараметр("Сотрудник", СотрудникСсылка);Проверка результата и типичные ошибки
После применения отбора убедитесь, что он действительно сработал. В шапке списка должна отображаться строка активного отбора с условием. Проверьте несколько записей: откройте документ и убедитесь, что в нём указан нужный сотрудник. Если список пуст — не спешите делать вывод об отсутствии документов: сначала снимите отбор и проверьте, есть ли документы вообще, и за тот ли период вы смотрите.
Как проверить результат отбора
Показано условие «Сотрудник = ФИО»
Строки нет — отбор не применён или сброшен
Список непустой, записи соответствуют сотруднику
Пусто при наличии документов — неверное поле или вид сравнения
В открытом документе указан нужный сотрудник
Сотрудник другой — отбор идёт по другому полю (например, ответственный)
Отдельная группа ошибок связана с правами доступа. Если у пользователя настроено ограничение доступа на уровне записей (RLS) по организации или подразделению, он увидит не всех сотрудников даже без отбора. В этом случае отбор работает корректно, но данные урезаны правами — проверяйте под пользователем с полными правами или уточняйте настройки доступа у администратора.
Выбор способа под задачу
Как выбрать способ отбора
Для большинства пользовательских задач достаточно настройки списка и отборов в отчётах — программировать ничего не нужно. Программный отбор оправдан, когда условие должно применяться автоматически: например, менеджер по персоналу при входе видит только своё подразделение. Такие доработки делайте через расширения конфигурации, чтобы не усложнять обновление.
Что важно запомнить
Отбор по сотруднику в списке делается через «Ещё → Настроить список», в отчёте — через настройки на вкладке «Отбор». Различайте сотрудника и физлицо, проверяйте строку активного отбора в шапке списка и сохраняйте часто используемые настройки как варианты. Программный отбор — только через расширения и после теста на копии базы.
Частые вопросы
Почему отбор по сотруднику не находит документы, хотя они точно есть?
Чаще всего причина в том, что отбор наложен не на то поле (например, «Ответственный» вместо «Сотрудник»), задан неверный период журнала или остался старый отбор, который пересекается с новым. Снимите все отборы, проверьте наличие документов и наложите условие заново. Также проверьте, не переименован ли сотрудник: поиск по строке ФИО перестаёт работать после смены фамилии, а отбор по ссылке продолжает работать.
Как отобрать документы сразу по нескольким сотрудникам?
В настройке списка или отчёта выберите вид сравнения «В списке» и через кнопку выбора добавьте нужных сотрудников в список значений. Альтернатива — сгруппировать несколько условий «Равно» по «ИЛИ», но «В списке» нагляднее и легче редактируется.
Чем отличается отбор по сотруднику от отбора по физическому лицу?
Сотрудник — это конкретное трудовое отношение (должность, подразделение). Физлицо — сам человек. Если человек работает по совместительству, у него две записи сотрудника: отбор по одному сотруднику покажет только его документы, а отбор по физлицу — документы всех его позиций. Для проверки полной картины по человеку используйте физлицо.
Можно ли сделать отбор по подразделению, чтобы видеть всех его сотрудников?
Да. В настройке списка добавьте поле «Подразделение» с видом сравнения «В иерархии» — тогда в выборку попадут документы сотрудников указанного подразделения и всех вложенных. Поле «Подразделение» доступно в большинстве кадровых и зарплатных документов.
Как сохранить настроенный отбор, чтобы не настраивать его заново?
В окне настройки списка нажмите кнопку сохранения настройки (иконка с дискетой или пункт «Сохранить настройки» в меню «Ещё» окна настройки) и задайте имя варианта. В отчётах используйте «Сохранить вариант отчёта». Сохранённые варианты выбираются из списка настроек при следующем открытии.
Почему коллега видит в списке больше сотрудников, чем я, при одинаковом отборе?
Скорее всего, у вас разные права: в базе настроено ограничение доступа на уровне записей (RLS) по организациям или подразделениям. Отбор при этом работает одинаково, но часть данных вам недоступна. Вопрос решается настройкой ролей и профилей доступа — обратитесь к администратору 1С.