Как вывести префиксы в табельных номерах в печатных формах ЗУП и решить проблему отсутствия физического лица у сотрудника?

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

В процессе работы с 1С ЗУП пользователи и специалисты часто сталкиваются с двумя типами вопросов, касающимися табельных номеров и данных сотрудников. Первый вопрос относится к желанию видеть полные табельные номера с префиксами в печатных формах, а второй – к более глубокой технической проблеме, когда у сотрудника по какой-то причине отсутствует привязка к физическому лицу. В этой статье мы подробно рассмотрим обе эти ситуации и предложим исчерпывающие решения.

Печать префиксов в табельных номерах в печатных формах 1С ЗУП

Начнем с первого вопроса, который задает автор: «Где настройка, чтобы печатались префиксы в табельных номерах в печатных формах? Кадровые приказы, а табельные номера где?». Многие пользователи 1С ЗУП сталкиваются с желанием выводить полные табельные номера, включая префиксы организации или информационной базы, непосредственно в печатных формах, таких как кадровые приказы или другие отчеты. Давайте выясним, насколько это реализуемо стандартными средствами программы.

Стандартное поведение системы: По умолчанию, табельный номер сотрудника в 1С ЗУП может формироваться с учетом префикса информационной базы и префикса организации. Например, табельный номер может выглядеть как «00ЗК-000001». Однако, важно понимать, что при выводе табельного номера в большинстве типовых печатных форм эти префиксы удаляются, и отображается только числовая часть табельного номера. То есть, вместо «00ЗК-000001» мы увидим только «000001». Это сделано для упрощения восприятия и соответствия общепринятым стандартам документооборота, где табельный номер часто используется без служебных префиксов.

Настройка "Удалять префиксы организации и ИБ из номеров кадровых приказов": В программе 1С ЗУП существует настройка, которая может ввести в заблуждение, поскольку её название вызывает ассоциации с префиксами табельных номеров. Вы можете найти ее в разделе Настройка -> Дополнительные настройки. Если мы снимем галочку с опции «Удалять префиксы организации и ИБ из номеров кадровых приказов», то префиксы действительно будут выводиться, но не в табельных номерах сотрудников, а в номерах самих кадровых приказов. Это критически важно различать. Данная настройка регулирует форматирование номера приказа (например, «П00-000001» вместо «000001» для приказа), но она не оказывает влияния на отображение префиксов в табельном номере сотрудника, который указывается внутри текста приказа или в других отчетах.

Необходимость доработки конфигурации: Из вышеизложенного следует, что стандартными средствами программы вывод табельного номера с префиксом непосредственно в печатных формах (например, в кадровых приказах, табелях учета рабочего времени, справках) не предусмотрен. Если для вашей организации это требование является обязательным и критически важным, вам потребуется внести изменения в конфигурацию 1С ЗУП:

  1. Доработка макетов печатных форм: Это основной и наиболее распространенный путь решения данной задачи. Мы должны будем получить доступ к конфигурации, открыть соответствующий макет печатной формы (например, для приказа о приеме на работу Т-1 или для табеля учета рабочего времени) в режиме конфигуратора и изменить код, который отвечает за формирование и вывод табельного номера. Наша задача будет заключаться в том, чтобы модифицировать этот код таким образом, чтобы он не удалял префикс из табельного номера при его отображении.

  2. Разработка собственных дополнительных отчетов или обработок: В некоторых более сложных случаях, или если требуется вывод данных в особом формате, может быть проще и целесообразнее создать собственный внешний отчет или обработку. Такие пользовательские разработки позволят нам гибко управлять выводом всех необходимых данных, включая табельные номера с префиксами, без необходимости модификации типовых макетов, что упрощает дальнейшие обновления конфигурации.

Таким образом, если вы столкнулись с такой задачей, будьте готовы к тому, что это потребует привлечения квалифицированного программиста 1С для адаптации системы под специфические нужды вашей организации.

Диагностика и исправление проблемы "Отсутствие физического лица у сотрудника"

Теперь перейдем ко второй, более технической проблеме, описанной автором: отсутствие привязки физического лица к сотруднику. Автор указывает, что программа "спотыкается на одном сотруднике", и переменная ТекСотрудник.ФизическоеЛицо оказывается пустой, несмотря на то, что другие данные по сотруднику и физическому лицу существуют. Это достаточно распространенная ситуация, требующая тщательной диагностики и пошагового подхода к исправлению.

Различие сущностей Сотрудник и ФизическоеЛицо: Прежде всего, давайте разберемся с ключевыми понятиями, поскольку их понимание критически важно для решения проблемы. В 1С ЗУП Сотрудник и ФизическоеЛицо – это две разные, хотя и тесно связанные, сущности:

  1. ФизическоеЛицо представляет собой самого человека, его личные данные (ФИО, дата рождения, паспортные данные, СНИЛС, ИНН и т.д.). Этот объект существует независимо от того, работает человек в организации или нет. В рамках одной информационной базы ФизическоеЛицо должно быть уникальным.

  2. Сотрудник – это запись о трудовых отношениях конкретного ФизическогоЛица с организацией. Одно и то же ФизическоеЛицо может быть оформлено как несколько Сотрудников (например, по основному месту работы и по совместительству в одной организации, или если человек увольнялся и потом снова был принят на работу). Сущность Сотрудник содержит ссылку на объект ФизическоеЛицо через соответствующий реквизит.

Анализ кода и симптомов: Автор предоставляет фрагмент кода, где пытается получить ФизическоеЛицо по коду сотрудника, сначала с префиксом, затем без него:


Функция ПолучитьФизЛицо(КодСотрудника)
    КодСПрефиксом = "00ЗК-" + СокрЛП(КодСотрудника);
    ТекСотрудник = Справочники.Сотрудники.НайтиПоКоду(КодСПрефиксом);
    
    Если (ТекСотрудник = Справочники.Сотрудники.ПустаяСсылка()) Тогда
        ТекСотрудник = Справочники.Сотрудники.НайтиПоКоду(КодСотрудника);
    КонецЕсли;
    
Сообщить("1 - " + КодСПрефиксом + " / " + КодСотрудника + " / " + ТекСотрудник + " / " + ТекСотрудник.ФизическоеЛицо);
    Возврат ТекСотрудник.ФизическоеЛицо;
КонецФункции

Из сообщения видно, что ТекСотрудник (сам элемент справочника Сотрудники) находится успешно, но его реквизит ФизическоеЛицо остается пустым. Это указывает на то, что связь между этими двумя объектами нарушена. Несмотря на то, что в отладчике ФизическоеЛицо пустое, автор также упоминает, что в регистрах сведений Основные сотрудники и ФИО данные есть, и даже запрос к справочнику ФизическиеЛица возвращает данные. Это означает, что само физическое лицо существует в базе, но его ссылка не записана или некорректно хранится в карточке проблемного сотрудника. Давайте разберем пошаговый алгоритм действий для диагностики и исправления этой проблемы.

  1. Проверка и ручное заполнение реквизита "ФизическоеЛицо"

    Первое и наиболее очевидное действие, которое мы должны предпринять, это проверить карточку проблемного сотрудника напрямую. Вполне возможно, что реквизит ФизическоеЛицо просто не был заполнен при создании сотрудника, или был очищен в результате какой-либо ошибки или некорректной операции.

    1. Откройте справочник Сотрудники в режиме предприятия.
    2. Найдите проблемного сотрудника, для которого возникает ошибка.
    3. Откройте его карточку двойным щелчком или кнопкой "Изменить".
    4. В карточке сотрудника внимательно найдите поле, которое называется ФизическоеЛицо. Если это поле пустое, попробуйте заполнить его вручную. Начните вводить ФИО физического лица, которое вы ожидаете увидеть (и которое, как мы выяснили, существует в базе), и выберите его из выпадающего списка предложенных вариантов.
    5. После заполнения поля обязательно сохраните изменения в карточке сотрудника (кнопка "Записать и закрыть").
    6. Проверьте, решилась ли проблема с кодом или в отчетах.
  2. Перезаполнение ФИО физического лица для обновления данных

    Иногда, даже если поле ФизическоеЛицо в карточке сотрудника не пустое и отображает ФИО, внутренняя ссылка на объект может быть "битой", некорректно проиндексированной или поврежденной. В таких случаях может помочь простое пересохранение данных самого физического лица. Этот процесс часто запускает внутренние механизмы обновления и связывания объектов.

    1. В карточке проблемного сотрудника нажмите на ссылку ФизическоеЛицо, чтобы перейти непосредственно в карточку самого физического лица.
    2. В карточке физического лица перейдите на вкладку, где отображается ФИО (обычно она так и называется или является основной вкладкой с личными данными).
    3. Попробуйте внести незначительные изменения в поле ФИО. Например, удалите несколько символов из фамилии, имени или отчества, затем немедленно верните их на место. После этого нажмите клавишу Enter или перейдите курсором в другое поле, чтобы инициировать срабатывание обработчика изменения данных.
    4. Обязательно сохраните изменения в карточке физического лица (кнопка "Записать и закрыть").
    5. Вернитесь в карточку сотрудника и также сохраните её, если она была открыта.
    6. Проверьте, решилась ли проблема. Этот метод часто помогает "обновить" внутренние ссылки и кэшированные данные.
  3. Проверка регистров сведений "Основные сотрудники" и "ФИО физических лиц"

    Автор упоминал, что в регистрах сведений данные есть, что является важным диагностическим признаком. Это говорит о том, что сами данные о связи и ФИО существуют, но не корректно подтягиваются в справочник Сотрудники. Давайте посмотрим, как мы можем использовать эту информацию для дальнейшей диагностики.

    1. Откройте Главное меню -> Все функции. (Если команда "Все функции" отсутствует, зайдите в Сервис -> Параметры и установите галочку Отображать команду "Все функции").
    2. В окне "Все функции" найдите раздел Регистры сведений.
    3. Найдите и откройте регистры Основные сотрудники физлиц (или ОсновныеСотрудники, в зависимости от версии конфигурации) и ФИО физических лиц (или ФИОФизическихЛиц).
    4. Откройте каждый из этих регистров и используйте фильтр по проблемному сотруднику или физическому лицу (по ФИО, СНИЛС, ИНН). Убедитесь, что для нужного периода времени (обычно на текущую дату) данные корректно занесены и соответствуют ожидаемым. Если в этих регистрах данные отсутствуют или некорректны, это может быть причиной ошибки. Однако, если данные там есть, но связь в справочнике Сотрудники по-прежнему нарушена, нам нужно копать глубже.
  4. Использование "Универсального редактора реквизитов"

    В случаях, когда стандартные методы через пользовательский интерфейс не помогают, и реквизит ФизическоеЛицо в карточке сотрудника остается пустым или некорректным, хотя сам сотрудник и физическое лицо существуют в базе, может потребоваться использование внешнего, более мощного инструмента – "Универсального редактора реквизитов".

    1. Что такое "Универсальный редактор реквизитов"?

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

    2. Как получить "Универсальный редактор реквизитов"?

      Вы можете найти эту обработку, используя поисковые системы по запросу, например, "универсальный редактор реквизитов управляемый интерфейс скачать". Существует множество вариантов этой обработки, как платных, так и бесплатных, которые доступны на специализированных сайтах для 1С-разработчиков и пользователей (например, на портале Infostart.ru или в других каталогах внешних обработок). Выберите версию, совместимую с вашей платформой 1С (управляемые формы).

    3. Как использовать "Универсальный редактор реквизитов" для решения проблемы?

      Будьте крайне осторожны при работе с этим инструментом, так как некорректные изменения могут привести к повреждению базы данных и нарушению ее целостности. Настоятельно рекомендуется предварительно сделать полную резервную копию информационной базы.

      1. Запустите 1С Предприятие в пользовательском режиме.
      2. Откройте обработку через меню Файл -> Открыть и выберите скачанный файл универсального редактора.
      3. В интерфейсе обработки выберите тип объекта, который нужно редактировать, в нашем случае это Справочник -> Сотрудники.
      4. Найдите и выберите проблемного сотрудника из списка.
      5. В списке реквизитов объекта "Сотрудник" найдите реквизит ФизическоеЛицо. Если он пуст или содержит некорректную ссылку, вы сможете вручную выбрать нужное физическое лицо из соответствующего справочника ФизическиеЛица, используя встроенный механизм выбора.
      6. После выбора или корректировки ссылки обязательно сохраните изменения, используя соответствующие кнопки в обработке.
  5. Объединение личных карточек (при задвоении физических лиц)

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

    1. В разделе Кадры программы 1С ЗУП найдите обработку Объединение личных карточек. Эта обработка специально предназначена для работы с дубликатами физических лиц.
    2. С помощью этой обработки вы сможете найти и объединить дублирующиеся записи ФизическихЛиц. Программа предложит вам выбрать "основное" физическое лицо (то, которое нужно оставить), к которому будут привязаны все данные (кадровые истории, документы, контактная информация и т.д.) от "дублирующего" физического лица.
    3. После успешного объединения дубликатов, скорее всего, проблема с корректной привязкой к сотруднику будет устранена автоматически, так как все ссылки будут переведены на выбранное основное физическое лицо.

Мы подробно проанализировали несколько возможных причин и путей решения проблемы с отсутствием привязки физического лица к сотруднику. Всегда начинайте с самых простых и наименее инвазивных шагов, таких как ручная проверка и заполнение реквизитов через стандартный интерфейс. Переходите к более сложным инструментам, таким как универсальный редактор, только при крайней необходимости и всегда с обязательным предварительным созданием резервной копии информационной базы. Понимание структуры данных 1С ЗУП и последовательная диагностика помогут вам успешно справиться с этой задачей.

← На главную