Разработка и Конфигурация · 11 мин
Как просклонять ФИО в 1С
Как просклонять ФИО в 1С: функция ПросклонятьФИО, внешняя компонента NameDecl, склонение в печатных формах и кадровых документах, типичные ошибки и примеры кода.
В кадровых документах, доверенностях, приказах и печатных формах фамилия, имя и отчество сотрудника должны стоять в нужном падеже: «выдать Иванову Ивану Ивановичу», «в лице директора Петровой Анны Сергеевны». Хранить шесть падежных форм каждого ФИО вручную неудобно, поэтому склонение в 1С выполняется программно — либо штатными механизмами типовых конфигураций, либо через внешние компоненты склонения.
Подход зависит от конфигурации и платформы. В современных конфигурациях на БСП (ЗУП, Бухгалтерия, ERP, Управление нашей фирмой) склонение встроено и работает «из коробки». В старых или самописных решениях приходится подключать отдельные средства. Ниже разобраны оба пути, примеры кода, ограничения и способы проверить результат.
Как устроено склонение ФИО в типовых конфигурациях
В конфигурациях на базе Библиотеки стандартных подсистем склонение реализовано как отдельная подсистема. В момент записи физического лица система автоматически формирует падежные формы ФИО и сохраняет их в служебном регистре или реквизитах. При выводе печатной формы программа берёт уже готовую форму нужного падежа, а не склоняет «на лету».
Само склонение выполняет внешняя компонента, поставляемая в составе конфигурации (макет с компонентой в общих макетах). Она работает на платформах Windows и Linux, подключается автоматически при первом обращении. Пользователю ничего настраивать не нужно: если в карточке физлица корректно заполнены фамилия, имя, отчество и пол, падежные формы строятся сами.
Важный нюанс: пол физического лица влияет на склонение фамилии. «Иванов» и «Иванова» склоняются по-разному, а фамилии типа «Коваленко» или «Гуцало» у мужчин склоняются, а у женщин — нет. Если пол не указан, система пытается определить его по отчеству, но при неоднозначных данных результат может быть неверным.
Программный вызов склонения в коде 1С
Когда нужно просклонять ФИО в собственном отчёте, обработке или доработанной печатной форме, используют программный интерфейс подсистемы склонения. Точное имя метода зависит от конфигурации и версии БСП: в Зарплате и управлении персоналом это функции модуля работы с физическими лицами, в других решениях — общий модуль склонения представлений.
Типовой вызов выглядит так: передаётся строка с ФИО, номер падежа (1 — именительный, 2 — родительный, 3 — дательный, 4 — винительный, 5 — творительный, 6 — предложный), пол и признак, является ли строка именем физического лица. Функция возвращает строку в нужном падеже.
// Пример для конфигурации на БСП (имя модуля зависит от версии)
Результат = СклонениеПредставленийОбъектов.ПросклонятьФИО(
"Петрова Анна Сергеевна", 3, Перечисления.ПолФизическогоЛица.Женский);
// Результат: "Петровой Анне Сергеевне"
Если конфигурация самописная и подсистемы склонения в ней нет, подключают внешнюю компоненту напрямую. Распространённый вариант — компонента склонения ФИО (NameDecl и аналоги), которая добавляется в конфигурацию как макет двоичных данных и подключается методом ПодключитьВнешнююКомпоненту.
// Упрощённый пример работы с компонентой склонения
ПодключитьВнешнююКомпоненту("ОбщийМакет.NameDecl", "Decl", ТипВнешнейКомпоненты.Native);
Склонение = Новый("AddIn.Decl.CNameDecl");
Результат = Склонение.Просклонять("Иванов Иван Иванович", 2);
// Результат: "Иванова Ивана Ивановича"
Падеж = 2; // родительный
ФИОРод = СклонениеПредставленийОбъектов.ПросклонятьФИО("Сидоров Олег Петрович", Падеж);
// Сидорова Олега ПетровичаСклонение в печатных формах и документах
На практике чаще всего склонение нужно в доверенностях, приказах о приёме и увольнении, трудовых договорах и справках. В типовых конфигурациях эти формы уже используют падежные формы: например, в доверенности ФИО выводится в дательном падеже («выдана кому»), а в приказе — в родительном или именительном в зависимости от формулировки.
Если вы дорабатываете макет печатной формы, не вставляйте ФИО напрямую из реквизита документа — оно хранится в именительном падеже. Вместо этого в модуле менеджера печати получите падежную форму через программный интерфейс склонения и передайте её в параметр макета. Для физлиц в ЗУП есть готовые функции получения ФИО в нужном падеже по ссылке на сотрудника или физическое лицо.
Отдельный случай — представление «в лице кого» для руководителя в договорах. Здесь ФИО ставится в родительный падеж, а должность тоже должна склоняться или согласовываться. Должности компонента склонения не обрабатывает: их формулируют заранее в родительном падеже в настройках (например, «директора», «главного бухгалтера») либо выводят через конструкцию «в лице директора Иванова Ивана Ивановича».
- 1Определите, в каком падеже должно стоять ФИО по смыслу фразы (кому — дательный, кого — родительный и т.д.)
- 2В модуле формирования печатной формы вызовите функцию склонения, передав ФИО, номер падежа и пол физлица
- 3Передайте результат в отдельный параметр макета, не смешивая с именительным падежом
- 4Сформируйте печатную форму на тестовом сотруднике и сверьте форму с грамматической нормой
Склонение в ЗУП: готовые механизмы и настройка
В «1С:Зарплате и управлении персоналом» склонение работает без дополнительной настройки. При записи физического лица программа автоматически строит падежные формы ФИО и хранит их. Кадровые отчёты, приказы и справки (например, справка с места работы) берут нужные формы автоматически.
Если в печатной форме ФИО выводится неправильно, причина обычно в данных, а не в механизме. Проверьте: корректно ли записано ФИО (без лишних пробелов, сокращений и инициалов вместо полного имени), указан ли пол, нет ли в фамилии символов, которые компонента не распознаёт. После исправления данных перезапишите физическое лицо, чтобы падежные формы пересчитались.
Для нестандартных фамилий, которые компонента склоняет неверно, в некоторых конфигурациях предусмотрена возможность вручную скорректировать падежные формы. Если такой возможности нет, крайний вариант — доработка: переопределить результат склонения для конкретного физлица в собственном модуле. Это безопаснее, чем править типовой механизм, так как не ломает обновление.
Ограничения, ошибочные случаи и как их обойти
Автоматическое склонение — это алгоритм на основе словарей и правил, и у него есть предсказуемые слабые места. Фамилии иностранного происхождения, двойные фамилии через дефис, редкие имена и фамилии, совпадающие с существительными (Кузнец, Воробей), иногда склоняются неверно или не склоняются вовсе.
Ещё одна типичная проблема — передача в функцию склонения неполных данных. Если передать «Иванов И. И.» вместо полного ФИО, результат будет непредсказуемым: инициалы алгоритм не склоняет. Склонять нужно полную строку «Фамилия Имя Отчество», а сокращение до инициалов выполнять уже после склонения, отдельной функцией формирования представления.
Также учитывайте производительность: вызов компоненты склонения — относительно «тяжёлая» операция. В цикле на тысячи строк отчёта склонять каждое ФИО заново не стоит. В типовых конфигурациях для этого и хранятся готовые падежные формы; в собственных разработках имеет смысл кэшировать результат или склонять один раз при записи данных.
Проверка результата и альтернативные подходы
Проверять склонение нужно на репрезентативном наборе: обычная русская фамилия, фамилия на -ова/-ина, мужская и женская фамилия на -ко, двойная фамилия, иностранная фамилия. Для каждой сформируйте все шесть падежей и сверьте с грамматической нормой. Если хотя бы один случай неверен, решите, критично ли это для ваших документов, и предусмотрите ручную корректировку.
Альтернативы встроенной компоненте существуют, но у каждой есть цена. Можно использовать веб-сервисы склонения — это требует доступа в интернет и передачи персональных данных третьей стороне, что для ФИО сотрудников обычно неприемлемо. Можно реализовать правила склонения чисто на встроенном языке — так делают в старых конфигурациях, но качество правил обычно ниже, чем у словарной компоненты. Наконец, можно хранить падежные формы вручную в дополнительных реквизитах — трудоёмко, но даёт полный контроль для небольшого числа ключевых сотрудников, например руководителя и главбуха.
Сравнение вариантов
Подходит для типовых конфигураций; не требует настройки, но доступна только там, где подсистема внедрена
Для самописных конфигураций; требует добавления макета и кода подключения, работает локально
Без внешних зависимостей, но точность ниже и много кода для исключений
Полный контроль для единичных сотрудников; не масштабируется на весь штат
Как проверить результат
Фамилия не изменилась (Коваленко Анны — верно: Коваленко)
Фамилия изменилась, как у мужчины
«Иванову Ивану Ивановичу»
Именительный падеж или обрезанное отчество
Падежная форма обновилась после перезаписи физлица
Выводится старая форма — вероятно, используется кэш или старый реквизит
Частые вопросы
Как просклонять ФИО в 1С без программирования?
В типовых конфигурациях (ЗУП, Бухгалтерия, ERP) склонение уже встроено: достаточно правильно заполнить карточку физического лица, и печатные формы будут использовать падежные формы автоматически. Отдельной кнопки «просклонять» нет — механизм срабатывает при записи физлица и формировании документов.
Что означают номера падежей 1–6 в функциях склонения?
Это порядок падежей русского языка: 1 — именительный (кто), 2 — родительный (кого), 3 — дательный (кому), 4 — винительный (кого), 5 — творительный (кем), 6 — предложный (о ком). Для доверенностей обычно нужен падеж 3, для формулировок «в лице» — падеж 2.
Почему фамилия сотрудницы склоняется как мужская?
Почти всегда причина в незаполненном поле «Пол» у физического лица. Укажите пол, перезапишите физлицо и сформируйте печатную форму заново. Если пол указан, а ошибка осталась — фамилия может относиться к исключениям, которые алгоритм обрабатывает неверно; тогда нужна ручная корректировка падежных форм.
Можно ли склонять должности и названия организаций той же функцией?
Нет. Компоненты склонения предназначены только для фамилий, имён и отчеств. Должности и организации либо хранят заранее в нужной форме (например, «в лице директора»), либо выводятся в именительном падеже с грамматически нейтральной конструкцией фразы.
Где хранятся падежные формы ФИО в типовых конфигурациях?
Обычно в служебном регистре сведений или табличной части, связанной с физическим лицом, — точное место зависит от конфигурации и версии. Пользователю напрямую обращаться туда не нужно: формы пересчитываются автоматически при записи физлица и используются механизмами печати.
Работает ли склонение на Linux-сервере и в веб-клиенте?
Компоненты из состава типовых конфигураций поставляются в вариантах для Windows и Linux и подключаются на сервере, поэтому в веб-клиенте склонение также работает. Если вы используете стороннюю компоненту, проверьте наличие сборки под вашу серверную платформу — иначе вызов завершится ошибкой подключения.
Что важно запомнить
В типовых конфигурациях склонение ФИО уже встроено и зависит от корректности карточки физлица, прежде всего пола и полного написания ФИО. В коде используйте программный интерфейс подсистемы склонения с указанием падежа от 1 до 6, а доработки делайте через расширение, не трогая типовые модули. Результат всегда проверяйте на нескольких типах фамилий, включая женские, на -ко и двойные.