Склонение представлений объектов в ЗУП 3.1 — как это работает?




Эта статья о том, как устроен механизм автоматического склонения имен существительных (ФИО сотрудников, наименований подразделений и должностей) в ЗУП 3.1.

Для вывода на печать многочисленных печатных форм в ЗУП 3.1 часто бывает необходимо использовать различные падежи имен существительных – фамилий, имен, отчеств, должностей, подразделений. Я расскажу о том, как склоняются представления объектов в ЗУП 3.1.

Что склоняется?

Есть 2 типа объектов, наименования которых склоняются различными механизмами в ЗУП 3.1:

  1. ФИО физических лиц;
  2. остальные объекты.

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

Все остальные имена существительные (в частности, наименования должностей и подразделений) склоняются с помощью внешнего сервиса «Морфер».

Подключение сервиса находится в разделе «Администрирование – Интернет-поддержка и сервисы – Склонения представлений объектов».

Подключение сервиса «Морфер»

Рис. 1. Подключение сервиса «Морфер»

Анонимного входа на сервис вполне достаточно для работы.

Как просклонять имя?

В карточке нового сотрудника после ввода фамилии, имени и отчества нажмите гиперссылку «Склонения» (см. рис. 2).

Склонение фамилий, имен и отчеств сотрудников

Рис. 2. Склонение фамилий, имен и отчеств сотрудников

Откроется окно с уже заполненными значениями по всем падежам. Останется только записать их, нажав кнопку «ОК».

ФИО физических лиц в падежных формах хранится в регистре сведений «Склонения представлений объектов».

Как это работает?

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

Если в регистре нет записи по искомому ФИО, то программа просклоняет его «на лету».

Регистр сведений «Склонения представлений объектов»

Рис. 3. Регистр сведений «Склонения представлений объектов»

Посмотрим на регистр сведений изнутри – из Конфигуратора.

Регистр сведений «Склонения представлений объектов» - тип измерения «Объект»

Рис. 4. Регистр сведений «Склонения представлений объектов» — тип измерения «Объект»

Измерение «Объект» имеет тип «ОбъектСклонения» – это определяемый тип (см. рис. 5), в состав которого входят:

  • Физические лица
  • Должности
  • Подразделения
  • Позиции штатного расписания

Состав определяемого типа «ОбъектСклонения»

Рис. 5. Состав определяемого типа «ОбъектСклонения»

Именно эти объекты конфигурации могут склоняться. В карточке каждого из них есть гиперссылка «Склонения», по нажатию на которую открывается форма со всеми падежами.

На рис. 6 видно, как просклонялось наименование должности «Ведущий инженер» при включенном сервисе «Морфер».

Склонения элемента справочника «Должности»

Рис. 6. Склонения элемента справочника «Должности»

Если же выключить сервис «Морфер» и перезаполнить склонения (кнопка со стрелкой вниз), а затем записать полученное состояние в регистр, то потом, даже при включенном сервисе «Морфер», в документы будут подставляться значения без склонения. Эта проблема может быть решена повторным заполнением склонений объекта при включенном сервисе «Морфер» или же удалением записи по этому объекту в регистре сведений.

Программный вызов функции склонения объектов

Функции склонения представлений объектов находятся в общем модуле «СклонениеПредставленийОбъектов».

  1. Функция ПросклонятьФИО(ФИО, Падеж, Объект = Неопределено, Пол = Неопределено) Экспорт

    Описание:
    – Склоняет ФИО.
    – Только для работы на ОС Windows..
    .
    Параметры:
    ФИО — Строка — Строка, в которой содержится ФИО для склонения.
    Падеж — Число — падеж, в который необходимо просклонять представление объекта.
    1 — Именительный.
    2 — Родительный.
    3 — Дательный.
    4 — Винительный.
    5 — Творительный.
    6 — Предложный.
    Объект — ОбъектСклонения — Ссылка на объект, реквизит которого склоняется.
    Пол — Число — Число — пол физического лица,
    1 — мужской,
    2 — женский.

    Возвращаемое значение:
    Строка — Результат склонения ФИО в падеже.

    Пример вызова функции склонения ФИО сотрудника

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

  2. Функция ПросклонятьПредставление(Представление, Падеж, Объект = Неопределено) Экспорт

    Описание:
    – Склоняет представление объекта.
    – Только для работы на ОС Windows.

    Параметры:
    Представление — Строка — Строка, в которой содержится ФИО для склонения.
    Падеж — Число — падеж, в который необходимо просклонять представление объекта.
    1 — Именительный.
    2 — Родительный.
    3 — Дательный.
    4 — Винительный.
    5 — Творительный.
    6 — Предложный.
    Объект — ОбъектСклонения — Ссылка на объект, реквизит которого склоняется.

    Возвращаемое значение:

    Строка — Результат склонения представления объекта в падеже.
     

Обе функции после успешного выполнения и при заполненном параметре «Объект» записывают полученное значение в регистр сведений «СклоненияПредставленийОбъектов».

Несколько слов в заключение

Склонение представлений объектов – это часть БСП. Данный механизм встроен также и в другие типовые конфигурации, построенные на основе БСП – БП, КА, ERP и т.д.

Картинки и примеры взяты из демо-базы конфигурации «Зарплата и управление персоналом», редакция 3.1 (3.1.7.87). Платформа: 1С:Предприятие 8.3 (8.3.10.2699)

. . . .
.

19 Comments

  1. leoxz

    Спасибо за статью. В регистре «СклоненияПредставленийОбъектов» есть измерение «ХешПредставления» — зачем он нужен и как используется?

    Reply
  2. accounting_cons

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

    Reply
  3. Fragster

    (2)

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

    Это защита от изменения наименования представления склоняемого объекта, а не от ручного изменения регистра. Например когда меняется название должности (со старший инженер на ведущий инженер, или когда ФИО изменяется)

    Reply
  4. Veric

    Огромное спасибо за статью. Никак не могли понять в чем дело, почему прописанные в должности склонения не отображаются при печати. Настройка Морфера помогла.

    Reply
  5. SergiusK

    У меня при склонении должности, состоящей больше чем одно слово, выдает ошибку «Ошибка при вызове сервиса склонения. Обратитесь к администратору. Техническая информация ……..»

    Reply
  6. accounting_cons

    Видимо, сервис барахлит. Он сторонний, к 1С не имеет отношения. Надо интересоваться в техподдержке сервиса.

    Reply
  7. allexx

    Столкнулся с нехваткой прав на чтение этого регистра. Почему-то только у полных прав есть доступ. По крайней мере в ЗКГУ.

    Reply
  8. fomix

    (6) У данного сервиса «Морфер» имеется лимит обращения в сутки при бесплатном подключении. Далее следует банальное вымогательство денех. Поэтому данный сервис — ОТСТОЙ! Думайте над своей обработкой склонения. Где то данном ресурсе была такая, но для 8.2.

    Reply
  9. user_2010

    Коли уже вы гуру по склонениям — не подскажете как просклонять Полное наименование организации — как это сделать?

    Спасибо!

    Reply
  10. accounting_cons

    (9) В ЗУП — никак.

    Reply
  11. favia

    Надо было просклонять вид занятости, после включения «Морфея» через СклонениеПредставленийОбъектов.ПросклонятьПредставление(нрег(КадровыеДанныеСотрудников[0].видЗанятости),3) успешно все просклонялось! Спасибо Вам!

    Reply
  12. u_n_k_n_o_w_n

    (9), я предполагаю, что склонять можно только организационно—правовую форму. Тогда это делается небольшими доработками конфигурации.

    Reply
  13. u_n_k_n_o_w_n

    Платформа 8.3.15 сама уже научилась прекрасно склонять без использования дополнительных сервисов.

    Reply
  14. accounting_cons

    (13)

    Платформа 8.3.15 сама уже научилась прекрасно склонять без использования дополнительных сервисов.

    — ага, только в типовых конфигурациях это появится не ранее, чем года через два.

    Reply
  15. u_n_k_n_o_w_n

    К сожалению заблуждаетесь. Конфигурации на БСП 3.Х это уже вовсю используется.

    Reply
  16. accounting_cons

    (15)Текущие конфигурации ЗУП 3.1 работают в режиме совместимости с 8.3.12 (или даже 8.3.10 — ЗУП 3.1.5). Они не могут использовать возможности 8.3.15 в типовом режиме без снятия с замка и изменения режима совместимости.

    Reply
  17. u_n_k_n_o_w_n

    Совершенно верно. Но можно использовать возможности новой платформы используя WS.

    Reply
  18. u_n_k_n_o_w_n

    Также в режиме совместимости 8.3.12 работает склонение средствами платформы.

    Вероятно разработчики типовых конфигураций не успевают везде ее внедрить.

    Reply
  19. lelbraun

    Дополню в тему. В ЗУП 3.1 склонение без подключенного сервиса можно сделать так:

    на севере

    СклонениеПредставленийОбъектов.ДанныеСклонения(ВашеСлово)

    вернет структуру по падежам

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *