В процессе работы с 1С ЗУП пользователи и специалисты часто сталкиваются с двумя типами вопросов, касающимися табельных номеров и данных сотрудников. Первый вопрос относится к желанию видеть полные табельные номера с префиксами в печатных формах, а второй – к более глубокой технической проблеме, когда у сотрудника по какой-то причине отсутствует привязка к физическому лицу. В этой статье мы подробно рассмотрим обе эти ситуации и предложим исчерпывающие решения.
Начнем с первого вопроса, который задает автор: «Где настройка, чтобы печатались префиксы в табельных номерах в печатных формах? Кадровые приказы, а табельные номера где?». Многие пользователи 1С ЗУП сталкиваются с желанием выводить полные табельные номера, включая префиксы организации или информационной базы, непосредственно в печатных формах, таких как кадровые приказы или другие отчеты. Давайте выясним, насколько это реализуемо стандартными средствами программы.
Стандартное поведение системы: По умолчанию, табельный номер сотрудника в 1С ЗУП может формироваться с учетом префикса информационной базы и префикса организации. Например, табельный номер может выглядеть как «00ЗК-000001». Однако, важно понимать, что при выводе табельного номера в большинстве типовых печатных форм эти префиксы удаляются, и отображается только числовая часть табельного номера. То есть, вместо «00ЗК-000001» мы увидим только «000001». Это сделано для упрощения восприятия и соответствия общепринятым стандартам документооборота, где табельный номер часто используется без служебных префиксов.
Настройка "Удалять префиксы организации и ИБ из номеров кадровых приказов": В программе 1С ЗУП существует настройка, которая может ввести в заблуждение, поскольку её название вызывает ассоциации с префиксами табельных номеров. Вы можете найти ее в разделе Настройка -> Дополнительные настройки. Если мы снимем галочку с опции «Удалять префиксы организации и ИБ из номеров кадровых приказов», то префиксы действительно будут выводиться, но не в табельных номерах сотрудников, а в номерах самих кадровых приказов. Это критически важно различать. Данная настройка регулирует форматирование номера приказа (например, «П00-000001» вместо «000001» для приказа), но она не оказывает влияния на отображение префиксов в табельном номере сотрудника, который указывается внутри текста приказа или в других отчетах.
Необходимость доработки конфигурации: Из вышеизложенного следует, что стандартными средствами программы вывод табельного номера с префиксом непосредственно в печатных формах (например, в кадровых приказах, табелях учета рабочего времени, справках) не предусмотрен. Если для вашей организации это требование является обязательным и критически важным, вам потребуется внести изменения в конфигурацию 1С ЗУП:
Доработка макетов печатных форм: Это основной и наиболее распространенный путь решения данной задачи. Мы должны будем получить доступ к конфигурации, открыть соответствующий макет печатной формы (например, для приказа о приеме на работу Т-1 или для табеля учета рабочего времени) в режиме конфигуратора и изменить код, который отвечает за формирование и вывод табельного номера. Наша задача будет заключаться в том, чтобы модифицировать этот код таким образом, чтобы он не удалял префикс из табельного номера при его отображении.
Разработка собственных дополнительных отчетов или обработок: В некоторых более сложных случаях, или если требуется вывод данных в особом формате, может быть проще и целесообразнее создать собственный внешний отчет или обработку. Такие пользовательские разработки позволят нам гибко управлять выводом всех необходимых данных, включая табельные номера с префиксами, без необходимости модификации типовых макетов, что упрощает дальнейшие обновления конфигурации.
Таким образом, если вы столкнулись с такой задачей, будьте готовы к тому, что это потребует привлечения квалифицированного программиста 1С для адаптации системы под специфические нужды вашей организации.
Теперь перейдем ко второй, более технической проблеме, описанной автором: отсутствие привязки физического лица к сотруднику. Автор указывает, что программа "спотыкается на одном сотруднике", и переменная ТекСотрудник.ФизическоеЛицо оказывается пустой, несмотря на то, что другие данные по сотруднику и физическому лицу существуют. Это достаточно распространенная ситуация, требующая тщательной диагностики и пошагового подхода к исправлению.
Различие сущностей Сотрудник и ФизическоеЛицо: Прежде всего, давайте разберемся с ключевыми понятиями, поскольку их понимание критически важно для решения проблемы. В 1С ЗУП Сотрудник и ФизическоеЛицо – это две разные, хотя и тесно связанные, сущности:
ФизическоеЛицо представляет собой самого человека, его личные данные (ФИО, дата рождения, паспортные данные, СНИЛС, ИНН и т.д.). Этот объект существует независимо от того, работает человек в организации или нет. В рамках одной информационной базы ФизическоеЛицо должно быть уникальным.
Сотрудник – это запись о трудовых отношениях конкретного ФизическогоЛица с организацией. Одно и то же ФизическоеЛицо может быть оформлено как несколько Сотрудников (например, по основному месту работы и по совместительству в одной организации, или если человек увольнялся и потом снова был принят на работу). Сущность Сотрудник содержит ссылку на объект ФизическоеЛицо через соответствующий реквизит.
Анализ кода и симптомов: Автор предоставляет фрагмент кода, где пытается получить ФизическоеЛицо по коду сотрудника, сначала с префиксом, затем без него:
Функция ПолучитьФизЛицо(КодСотрудника)
КодСПрефиксом = "00ЗК-" + СокрЛП(КодСотрудника);
ТекСотрудник = Справочники.Сотрудники.НайтиПоКоду(КодСПрефиксом);
Если (ТекСотрудник = Справочники.Сотрудники.ПустаяСсылка()) Тогда
ТекСотрудник = Справочники.Сотрудники.НайтиПоКоду(КодСотрудника);
КонецЕсли;
Сообщить("1 - " + КодСПрефиксом + " / " + КодСотрудника + " / " + ТекСотрудник + " / " + ТекСотрудник.ФизическоеЛицо);
Возврат ТекСотрудник.ФизическоеЛицо;
КонецФункции
Из сообщения видно, что ТекСотрудник (сам элемент справочника Сотрудники) находится успешно, но его реквизит ФизическоеЛицо остается пустым. Это указывает на то, что связь между этими двумя объектами нарушена. Несмотря на то, что в отладчике ФизическоеЛицо пустое, автор также упоминает, что в регистрах сведений Основные сотрудники и ФИО данные есть, и даже запрос к справочнику ФизическиеЛица возвращает данные. Это означает, что само физическое лицо существует в базе, но его ссылка не записана или некорректно хранится в карточке проблемного сотрудника. Давайте разберем пошаговый алгоритм действий для диагностики и исправления этой проблемы.
Первое и наиболее очевидное действие, которое мы должны предпринять, это проверить карточку проблемного сотрудника напрямую. Вполне возможно, что реквизит ФизическоеЛицо просто не был заполнен при создании сотрудника, или был очищен в результате какой-либо ошибки или некорректной операции.
Сотрудники в режиме предприятия.ФизическоеЛицо. Если это поле пустое, попробуйте заполнить его вручную. Начните вводить ФИО физического лица, которое вы ожидаете увидеть (и которое, как мы выяснили, существует в базе), и выберите его из выпадающего списка предложенных вариантов.Иногда, даже если поле ФизическоеЛицо в карточке сотрудника не пустое и отображает ФИО, внутренняя ссылка на объект может быть "битой", некорректно проиндексированной или поврежденной. В таких случаях может помочь простое пересохранение данных самого физического лица. Этот процесс часто запускает внутренние механизмы обновления и связывания объектов.
ФизическоеЛицо, чтобы перейти непосредственно в карточку самого физического лица.Enter или перейдите курсором в другое поле, чтобы инициировать срабатывание обработчика изменения данных.Автор упоминал, что в регистрах сведений данные есть, что является важным диагностическим признаком. Это говорит о том, что сами данные о связи и ФИО существуют, но не корректно подтягиваются в справочник Сотрудники. Давайте посмотрим, как мы можем использовать эту информацию для дальнейшей диагностики.
Главное меню -> Все функции. (Если команда "Все функции" отсутствует, зайдите в Сервис -> Параметры и установите галочку Отображать команду "Все функции").Регистры сведений.Основные сотрудники физлиц (или ОсновныеСотрудники, в зависимости от версии конфигурации) и ФИО физических лиц (или ФИОФизическихЛиц).Сотрудники по-прежнему нарушена, нам нужно копать глубже.В случаях, когда стандартные методы через пользовательский интерфейс не помогают, и реквизит ФизическоеЛицо в карточке сотрудника остается пустым или некорректным, хотя сам сотрудник и физическое лицо существуют в базе, может потребоваться использование внешнего, более мощного инструмента – "Универсального редактора реквизитов".
Это сторонняя внешняя обработка, которая предоставляет возможность просматривать и редактировать любые реквизиты объектов базы данных 1С (таких как справочники, документы, регистры и т.д.). Она позволяет получить доступ к данным, которые могут быть скрыты из обычного пользовательского интерфейса или заблокированы типовой логикой конфигурации. Этот инструмент дает прямой доступ к информации, хранящейся в базе, и часто используется для исправления сложных или нетиповых ошибок данных.
Вы можете найти эту обработку, используя поисковые системы по запросу, например, "универсальный редактор реквизитов управляемый интерфейс скачать". Существует множество вариантов этой обработки, как платных, так и бесплатных, которые доступны на специализированных сайтах для 1С-разработчиков и пользователей (например, на портале Infostart.ru или в других каталогах внешних обработок). Выберите версию, совместимую с вашей платформой 1С (управляемые формы).
Будьте крайне осторожны при работе с этим инструментом, так как некорректные изменения могут привести к повреждению базы данных и нарушению ее целостности. Настоятельно рекомендуется предварительно сделать полную резервную копию информационной базы.
Файл -> Открыть и выберите скачанный файл универсального редактора.Справочник -> Сотрудники.ФизическоеЛицо. Если он пуст или содержит некорректную ссылку, вы сможете вручную выбрать нужное физическое лицо из соответствующего справочника ФизическиеЛица, используя встроенный механизм выбора.Иногда причиной кажущегося отсутствия физического лица является не его полное отсутствие, а задвоение. Это происходит, когда одно и то же физическое лицо было создано в базе дважды (например, при повторном приеме на работу программа не распознала существующего человека и создала новое физическое лицо). В этом случае у одного, "старого", физического лица может не быть привязки к текущему сотруднику, а у другого, дублирующего его, привязка может быть.
Кадры программы 1С ЗУП найдите обработку Объединение личных карточек. Эта обработка специально предназначена для работы с дубликатами физических лиц.ФизическихЛиц. Программа предложит вам выбрать "основное" физическое лицо (то, которое нужно оставить), к которому будут привязаны все данные (кадровые истории, документы, контактная информация и т.д.) от "дублирующего" физического лица.Мы подробно проанализировали несколько возможных причин и путей решения проблемы с отсутствием привязки физического лица к сотруднику. Всегда начинайте с самых простых и наименее инвазивных шагов, таких как ручная проверка и заполнение реквизитов через стандартный интерфейс. Переходите к более сложным инструментам, таким как универсальный редактор, только при крайней необходимости и всегда с обязательным предварительным созданием резервной копии информационной базы. Понимание структуры данных 1С ЗУП и последовательная диагностика помогут вам успешно справиться с этой задачей.