К статье
Практический материал

Разработка и Конфигурация · 9 мин

Как сделать ФИО в 1С: объединение фамилии, имени и отчества

Как сделать ФИО в 1С: объединение фамилии, имени и отчества в запросе, коде и печатных формах. Примеры функций, склонение, инициалы и типичные ошибки.

Задача «сделать ФИО» в 1С возникает в нескольких типовых ситуациях: собрать полное имя из отдельных полей «Фамилия», «Имя», «Отчество» в запросе или коде, вывести ФИО в печатной форме, сформировать инициалы вида «Иванов И.И.» или заполнить наименование сотрудника при создании элемента справочника. Во всех случаях логика одинакова: отдельные части имени склеиваются в одну строку с учётом пробелов и пустых значений.

Конкретный способ зависит от того, где нужно получить результат. В конфигурациях на основе Библиотеки стандартных подсистем (БСП) — «Управление торговлей», «ERP», «Бухгалтерия», «Зарплата и управление персоналом» — уже есть готовые функции для работы с ФИО. В самописных конфигурациях строку собирают вручную оператором конкатенации или функцией СтрШаблон. В запросах используется оператор соединения строк «+» или ВЫРАЗИТЬ с объединением.

Где в 1С хранятся части ФИО

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

В справочнике «Сотрудники» или «Пользователи» наименование обычно заполняется автоматически из связанного физического лица. Если вы создаёте физлицо программно, наименование сформируется само при записи — вручную склеивать строку не требуется. Но если конфигурация самописная и реквизиты разнесены по полям, склейку придётся делать вручную.

Как собрать ФИО в коде на встроенном языке

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

Функция ПолучитьФИО(Фамилия, Имя, Отчество) Экспорт

Части = Новый Массив;

Если Не ПустаяСтрока(Фамилия) Тогда

Части.Добавить(СокрЛП(Фамилия));

КонецЕсли;

Если Не ПустаяСтрока(Имя) Тогда

Части.Добавить(СокрЛП(Имя));

КонецЕсли;

Если Не ПустаяСтрока(Отчество) Тогда

Части.Добавить(СокрЛП(Отчество));

КонецЕсли;

Возврат СтрСоединить(Части, " ");

КонецФункции

Функция СтрСоединить доступна в современных версиях платформы и удобнее ручной склейки: она не оставляет лишних пробелов между частями. Если платформа старая и СтрСоединить недоступна, собирайте строку через СтрШаблон с последующим СокрЛП или через накопление с проверкой на пустоту.

Для наименования физлица при программном создании элемента достаточно заполнить реквизиты «Фамилия», «Имя», «Отчество» и записать объект — типовой обработчик заполнит наименование сам. Если этого не происходит, значит в конфигурации нет такой логики, и наименование нужно присвоить явно: НовыйЭлемент.Наименование = ПолучитьФИО(Фамилия, Имя, Отчество);

bsl
ФИО = СокрЛП(Фамилия) + " " + СокрЛП(Имя) + ?(ПустаяСтрока(Отчество), "", " " + СокрЛП(Отчество));

Как получить ФИО в запросе

В языке запросов 1С строки соединяются оператором «+». Типовой приём — собрать ФИО прямо в выборке, чтобы не обрабатывать результат в коде:

ВЫБРАТЬ

ФизЛица.Фамилия + " " + ФизЛица.Имя + " " + ФизЛица.Отчество КАК ФИО

ИЗ

Справочник.ФизическиеЛица КАК ФизЛица

Если отчество может быть пустым, используйте конструкцию ВЫБОР, чтобы не получить двойной пробел или висячий пробел в конце:

ВЫБРАТЬ

ФизЛица.Фамилия + " " + ФизЛица.Имя

+ ВЫБОР

КОГДА ФизЛица.Отчество = ""

ТОГДА ""

ИНАЧЕ " " + ФизЛица.Отчество

КОНЕЦ КАК ФИО

ИЗ

Справочник.ФизическиеЛица КАК ФизЛица

Для получения ФИО на конкретную дату из регистра «ФИО физических лиц» нужен срез последних: соединение с регистром по условию «период меньше или равен дате» и выбор записи с максимальным периодом. В типовых отчётах это делается через левое соединение с вложенным запросом по максимальному периоду.

Как сделать инициалы и сокращённое ФИО

В печатных формах часто требуется формат «Иванов И.И.» — фамилия с инициалами. В конфигурациях на БСП есть готовая функция, например ФизическиеЛицаКлиентСервер.ФамилияИнициалы(Фамилия, Имя, Отчество) или её аналоги в общих модулях работы с физлицами. Перед написанием своей функции проверьте состав общих модулей конфигурации — велика вероятность, что нужная уже есть.

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

Как вывести ФИО с инициалами в печатной форме
  1. 1
    Определите, откуда брать данные: реквизиты физлица или регистр «ФИО физических лиц» на дату документа.
  2. 2
    Проверьте наличие типовой функции (например, ФамилияИнициалы в модулях БСП) и используйте её.
  3. 3
    Если функции нет — сформируйте строку: Фамилия + " " + Лев(Имя,1) + "." + ?(ПустаяСтрока(Отчество), "", " " + Лев(Отчество,1) + ".").
  4. 4
    Подставьте результат в параметр макета и выведите тестовую печатную форму.
  5. 5
    Проверьте сотрудника без отчества и с двойной фамилией — строка не должна содержать лишних пробелов и точек.

Склонение ФИО по падежам

В кадровых документах ФИО часто нужно в дательном или родительном падеже: «выдать Иванову Ивану Ивановичу». В типовых конфигурациях с БСП есть механизм склонения — общий модуль работы со склонением ФИО, который использует внешнюю компоненту или встроенные алгоритмы. Вызов обычно выглядит как передача ФИО, падежа и пола физлица.

Пол важен: женские фамилии на «-ова», «-ина» склоняются иначе, чем мужские, а фамилии на «-ко», «-енко» не склоняются вовсе. Если пол не задан, результат склонения может быть неверным. В самописных конфигурациях без БСП надёжного встроенного способа нет — либо подключают компоненту склонения, либо хранят падежные формы в дополнительных реквизитах, что надёжнее для небольшого числа сотрудников.

Типичные ошибки при работе с ФИО

Самая частая проблема — лишние пробелы при пустом отчество. Вторая по частоте — использование наименования справочника вместо актуального ФИО из регистра: после смены фамилии в старых документах и отчётах выводится устаревшее значение или, наоборот, новое там, где нужна фамилия на дату документа.

Ещё одна ошибка — хранение ФИО одной строкой без разделения на части. Такой подход ломает сортировку по фамилии, формирование инициалов и склонение. Если вы проектируете собственный справочник, всегда заводите отдельные реквизиты «Фамилия», «Имя», «Отчество», а полное ФИО собирайте программно.

Типичные ошибки
01
Простая склейка без проверки пустого отчества — в результате двойные пробелы и висячие пробелы в конце строки.
02
Использование наименования справочника вместо среза регистра «ФИО физических лиц» — в документах прошлых периодов выводится неактуальная фамилия.
03
Хранение ФИО одной строкой — невозможно корректно сортировать, формировать инициалы и склонять.
04
Игнорирование пола при склонении — женские фамилии склоняются по мужскому шаблону.
05
Ручное исправление наименования сотрудника вместо изменения данных физлица — рассинхронизация данных между справочниками.

Проверка результата

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

Контрольные точки

Как проверить корректность ФИО

Сотрудник без отчества
Норма

Строка вида «Иванов Иван» без лишних пробелов

Тревожный признак

Двойной пробел или пробел в конце строки

Документ прошлого периода после смены фамилии
Норма

Выводится фамилия, актуальная на дату документа

Тревожный признак

Везде выводится текущая фамилия из наименования

Инициалы
Норма

Формат «Иванов И.И.», без отчества — «Иванов И.»

Тревожный признак

Точка без буквы или лишний пробел перед инициалами

FAQ

Как сделать ФИО при программном создании физлица?

Заполните реквизиты «Фамилия», «Имя», «Отчество» и запишите элемент — в типовых конфигурациях наименование сформируется автоматически. Если автозаполнения нет, присвойте наименование вручную через склейку частей с проверкой пустых значений.

Как получить фамилию сотрудника на дату документа?

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

Почему в ФИО появляются двойные пробелы?

Потому что отчество пустое, а строка собрана простой конкатенацией с пробелами. Используйте конструкцию ВЫБОР в запросе или проверку ПустаяСтрока в коде, либо собирайте части в массив и соединяйте через СтрСоединить.

Как склонять ФИО в самописной конфигурации без БСП?

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

Можно ли изменить ФИО сотрудника задним числом?

Менять нужно не сотрудника, а физическое лицо: добавьте новую запись в регистр «ФИО физических лиц» с датой начала действия новой фамилии. Тогда документы до этой даты будут выводить старую фамилию, после — новую.

Как вывести ФИО в формате «И.И. Иванов»?

Поменяйте порядок склейки: сначала инициалы, затем фамилия. Проверьте, нет ли в конфигурации готовой функции с таким форматом — в БСП-подобных конфигурациях варианты представления ФИО часто уже предусмотрены.

Итог

Что важно запомнить

ФИО в 1С собирается из отдельных полей конкатенацией с проверкой пустых значений. В типовых конфигурациях используйте готовые функции БСП и регистр «ФИО физических лиц» для получения данных на дату. Храните фамилию, имя и отчество раздельно — это сохранит сортировку, инициалы и склонение.