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

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

Как просклонять ФИО в 1С

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

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

Подход зависит от конфигурации и платформы. В современных конфигурациях на БСП (ЗУП, Бухгалтерия, ERP, Управление нашей фирмой) склонение встроено и работает «из коробки». В старых или самописных решениях приходится подключать отдельные средства. Ниже разобраны оба пути, примеры кода, ограничения и способы проверить результат.

Как устроено склонение ФИО в типовых конфигурациях

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

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

Важный нюанс: пол физического лица влияет на склонение фамилии. «Иванов» и «Иванова» склоняются по-разному, а фамилии типа «Коваленко» или «Гуцало» у мужчин склоняются, а у женщин — нет. Если пол не указан, система пытается определить его по отчеству, но при неоднозначных данных результат может быть неверным.

Программный вызов склонения в коде 1С

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

Типовой вызов выглядит так: передаётся строка с ФИО, номер падежа (1 — именительный, 2 — родительный, 3 — дательный, 4 — винительный, 5 — творительный, 6 — предложный), пол и признак, является ли строка именем физического лица. Функция возвращает строку в нужном падеже.

// Пример для конфигурации на БСП (имя модуля зависит от версии)

Результат = СклонениеПредставленийОбъектов.ПросклонятьФИО(

"Петрова Анна Сергеевна", 3, Перечисления.ПолФизическогоЛица.Женский);

// Результат: "Петровой Анне Сергеевне"

Если конфигурация самописная и подсистемы склонения в ней нет, подключают внешнюю компоненту напрямую. Распространённый вариант — компонента склонения ФИО (NameDecl и аналоги), которая добавляется в конфигурацию как макет двоичных данных и подключается методом ПодключитьВнешнююКомпоненту.

// Упрощённый пример работы с компонентой склонения

ПодключитьВнешнююКомпоненту("ОбщийМакет.NameDecl", "Decl", ТипВнешнейКомпоненты.Native);

Склонение = Новый("AddIn.Decl.CNameDecl");

Результат = Склонение.Просклонять("Иванов Иван Иванович", 2);

// Результат: "Иванова Ивана Ивановича"

bsl
Падеж = 2; // родительный
ФИОРод = СклонениеПредставленийОбъектов.ПросклонятьФИО("Сидоров Олег Петрович", Падеж);
// Сидорова Олега Петровича

Склонение в печатных формах и документах

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

Если вы дорабатываете макет печатной формы, не вставляйте ФИО напрямую из реквизита документа — оно хранится в именительном падеже. Вместо этого в модуле менеджера печати получите падежную форму через программный интерфейс склонения и передайте её в параметр макета. Для физлиц в ЗУП есть готовые функции получения ФИО в нужном падеже по ссылке на сотрудника или физическое лицо.

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

Как добавить склонённое ФИО в печатную форму
  1. 1
    Определите, в каком падеже должно стоять ФИО по смыслу фразы (кому — дательный, кого — родительный и т.д.)
  2. 2
    В модуле формирования печатной формы вызовите функцию склонения, передав ФИО, номер падежа и пол физлица
  3. 3
    Передайте результат в отдельный параметр макета, не смешивая с именительным падежом
  4. 4
    Сформируйте печатную форму на тестовом сотруднике и сверьте форму с грамматической нормой

Склонение в ЗУП: готовые механизмы и настройка

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

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

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

Ограничения, ошибочные случаи и как их обойти

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

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

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

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

Проверка результата и альтернативные подходы

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

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

Сравнение вариантов

Встроенная подсистема БСП

Подходит для типовых конфигураций; не требует настройки, но доступна только там, где подсистема внедрена

Внешняя компонента NameDecl и аналоги

Для самописных конфигураций; требует добавления макета и кода подключения, работает локально

Правила на встроенном языке

Без внешних зависимостей, но точность ниже и много кода для исключений

Ручное хранение падежных форм

Полный контроль для единичных сотрудников; не масштабируется на весь штат

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

Как проверить результат

Форма фамилии в родительном падеже для сотрудницы с фамилией на -ко
Норма

Фамилия не изменилась (Коваленко Анны — верно: Коваленко)

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

Фамилия изменилась, как у мужчины

Дательный падеж в доверенности
Норма

«Иванову Ивану Ивановичу»

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

Именительный падеж или обрезанное отчество

Печатная форма после исправления данных физлица
Норма

Падежная форма обновилась после перезаписи физлица

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

Выводится старая форма — вероятно, используется кэш или старый реквизит

Частые вопросы

Как просклонять ФИО в 1С без программирования?

В типовых конфигурациях (ЗУП, Бухгалтерия, ERP) склонение уже встроено: достаточно правильно заполнить карточку физического лица, и печатные формы будут использовать падежные формы автоматически. Отдельной кнопки «просклонять» нет — механизм срабатывает при записи физлица и формировании документов.

Что означают номера падежей 1–6 в функциях склонения?

Это порядок падежей русского языка: 1 — именительный (кто), 2 — родительный (кого), 3 — дательный (кому), 4 — винительный (кого), 5 — творительный (кем), 6 — предложный (о ком). Для доверенностей обычно нужен падеж 3, для формулировок «в лице» — падеж 2.

Почему фамилия сотрудницы склоняется как мужская?

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

Можно ли склонять должности и названия организаций той же функцией?

Нет. Компоненты склонения предназначены только для фамилий, имён и отчеств. Должности и организации либо хранят заранее в нужной форме (например, «в лице директора»), либо выводятся в именительном падеже с грамматически нейтральной конструкцией фразы.

Где хранятся падежные формы ФИО в типовых конфигурациях?

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

Работает ли склонение на Linux-сервере и в веб-клиенте?

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

Итог

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

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