Как исправить ошибку «Поле "Имя" не заполнено» при создании физического лица или сотрудника в 1С?

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

При работе в современных конфигурациях на платформе 1С:Предприятие 8.3 (таких как 1С:Бухгалтерия 3.0, 1С:Зарплата и управление персоналом 3.1 или 1С:ERP 2) пользователи часто сталкиваются с крайне неприятной ошибкой при попытке записать новое физическое лицо или сотрудника. Программа выдает лаконичное, но малоинформативное сообщение: «Поле "Имя" не заполнено!!!». Ситуация усложняется тем, что ФИО в карточке заполнено полностью, а при попытке открыть историю изменений система может завершить работу аварийно.

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

Техническая суть проблемы: почему 1С «не видит» заполненное имя?

Чтобы понять природу ошибки, давайте заглянем «под капот» конфигураций 1С. В старых версиях (например, в 1С:ЗиК 7.7 или старых редакциях 1С 8) ФИО физического лица хранилось непосредственно в реквизитах самого справочника ФизическиеЛица. В современных решениях архитектура изменилась.

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

Когда мы заполняем строку «ФИО» на форме элемента и нажимаем кнопку «Записать», платформа выполняет транзакцию, состоящую из двух ключевых шагов:

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

Если на втором шаге запись в регистр сведений по какой-то причине блокируется системой, транзакция прерывается либо завершается некорректно. В итоге элемент справочника создан, но связанной записи в регистре сведений нет. При проверке заполнения реквизитов перед окончательной фиксацией программа пытается прочитать имя физлица из регистра, видит пустое значение и выдает ошибку: «Поле "Имя" не заполнено».

Давайте разберем основные причины, почему запись в регистр сведений ФИО может не происходить.

---

Причина 1. Ограничение прав доступа и сбой итератора

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

В этот момент также может возникнуть сопутствующая аппаратная ошибка:

{ОбщийМодуль.РедактированиеПериодическихСведенийКлиентСервер.Модуль(10)}: Итератор для значения не определен Для Каждого КлючЗначение Из Форма[ИмяРегистра + "Прежняя"] Цикл

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


// Фрагмент кода, вызывающий системный сбой при нехватке прав:
ИмяРегистра = "ФИОФизическихЛиц";
// Если у пользователя нет прав на этот регистр, 
// следующая конструкция возвращает Неопределено вместо Структуры:
Для Каждого КлючЗначение Из Форма[ИмяРегистра + "Прежняя"] Цикл
    // Здесь платформа выдает ошибку итератора
КонецЦикла;

Так как у пользователя ограничены права доступа к регистру, переменная на форме принимает значение Неопределено. Попытка обойти её циклом Для каждого закономерно вызывает критический сбой системы.

Решение: Точечная настройка прав доступа

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

  1. Перейдем в раздел Администрирование — Настройки пользователей и прав.
  2. Откроем профили групп доступа проблемного пользователя.
  3. Убедимся, что пользователю назначены типовые роли, отвечающие за работу с персональными данными. В частности, должны быть добавлены роли:
    • Чтение данных физических лиц зарплата кадры
    • Добавление и изменение данных физических лиц зарплата кадры
  4. Если в базе настроено разграничение на уровне записей (RLS), проверим, входит ли создаваемое физлицо в разрешенные группы доступа для данного пользователя.

---

Причина 2. Влияние даты запрета изменения данных

Эта проблема наиболее актуальна при переносе данных из старых конфигураций (например, при переходе с 1С:ЗиК 7.7 на 1С:ЗУП 3.1) или при повторном приеме на работу давно уволенных сотрудников.

Когда мы создаем сотрудника на базе перенесенного физического лица, программа пытается записать историю его ФИО. Датой начала действия этой записи система автоматически пытается установить дату рождения физлица (которая может быть 30-50 лет назад) либо дату первоначального приема на работу (которая находится в далеком закрытом периоде).

Если в информационной базе включена Дата запрета изменения данных (например, закрыт прошлый год или прошлый месяц), механизм контроля запрета редактирования блокирует создание записи в регистре сведений ФИОФизическихЛиц на «историческую» дату. При этом сам элемент справочника система разрешает записать, что и приводит к рассинхронизации данных и ошибке незаполненного имени.

Решение: Обход даты запрета редактирования

Давайте разберем по шагам, как решить эту проблему:

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

---

Причина 3. Ошибки копирования физических лиц и пустая история ФИО

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

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

Решение: Исправление истории ФИО и перезапись

Если физическое лицо уже создано, но повреждено (выдается ошибка при попытке создать сотрудника), нам необходимо восстановить целостность данных:

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

Таким образом, мы детально разобрали все возможные причины возникновения ошибки «Поле "Имя" не заполнено». Понимание внутренней архитектуры хранения данных в 1С позволяет быстро локализовать проблему и решить её корректными методами, сохраняя безопасность и права доступа в информационной базе на должном уровне. Для выявления учетных записей с избыточными полномочиями можно использовать инструмент для аудита опасных прав.

← На главную