1С просклонять

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 и т.д.

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

Для склонения ФИО в программах 1С предусмотрена внешняя компонента – NameDecl.dll, в которой содержится функция склонения. Ее можно взять на диске ИТС и, скопировав в папку с установленной платформой 1С – bin, зарегистрировать ее в операционной системе. Выполняется данная процедура при помощи команды resvr32 NameDecl.dll (под учетной записью администратора). Для этого необходимо вызвать команду «Выполнить» через кнопку «Пуск», воспользовавшись поиском или сочетание клавиш Windows + R.

Рис.1 Окно поиска. Поиск команды «Выполнить»

В появившемся окне вводим команду resvr32.exe и указываем путь к подключаемой библиотеке, используя кнопку «Обзор».

Рис.2 Окно команды «Выполнить»

После нажатия «Ок» появится сообщение о том, что библиотека успешно зарегистрирована.

Рис.3 Окно сообщения

Для данной библиотеки необходимо использовать 32-битную платформу 1С клиент-серверного режима.

Описание метода склонения в 1С

Просклонять (ФИО, Падеж, Пол) по параметрам:

  • ФИО (обязательный), тип – строка
  • Падеж (обязательный), тип – число

Падеж, в который необходимо поставить ФИО, задается числом от 1 до 6.

Таблица падежей: вопросы, предлоги и их значения в программном коде

Случается, возникает неоднозначная ситуация, когда программе необходимо определить принадлежность фамилии к полу, например, Сигида, Чепко, Сушко, Оганезян и т.д.

В этом случае используют дополнительный параметр:

  • Пол (необязательный), тип – число

Он показывает, склонять или не склонять фамилию. В других случаях этот параметр опускают или используют значение 0 («авто»), т.к. неправильное указание пола может повлиять на правильность склонения. Здесь возможные значения: 0 – авто, 1 – мужской, 2 – женский.

Сервис «Склонение по падежам»

В программах 1С 8.3 уже включен сервис для склонения данных сотрудников или контрагентов в соответствии с применяемыми в документе падежами.

Рис.4 Окно конфигуратора

Фрагмент 1

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

Фрагмент 2

// Склоняет представление объекта. Функция ПросклонятьПредставление(Представление, Падеж, Объект = Неопределено) Экспорт Возврат Просклонять(Представление, Падеж, Объект); Конецфункции // Выполняет с формой действия, не обходимые для подключения подсистемы Склонения Процедура ПриСозданииНаСервере(Форма, Представление, ИмяОсновногоРеквизитаФормы = «Объект») Экспорт // Обработчик события ПриЗаписиНаСервере управляемой формы объекта для склонения Процедура ПриЗаписиНаСервере(Форма, Представление, Объект, ЭтоФИО = Ложь, Пол = Неопределено) Экспорт // Устанавливает признак доступности сервиса склонения Процедура УстановитьДоступнсстьСервисаСклонения(Доступность) Экспорт УстановитьПривилегированныйРежим (Истина); ТекущиеПараметры = Новый Соответствие(ПараметрыСеанса.ПараметрыКлиентаНаСервере); ТекущиеПараметры.Вставить(«ДоступенСервисСклонения», Доступность); ПараметрыСеанса.ПараметрыКлиентаНаСервере = Новый ФиксированноеСсответствие(ТекущиеПараметры); УстановитьПривилегированныйРежим(Ложь); КонецПроцедуры

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

Рассмотрим функцию склонения на примере договора в «1С:Бухгалтерия» 3.0. (1С:Предприятие 8.3). Здесь предусмотрено склонение ФИО и должности.

Рис.6 Окно формы договора. Настройка склонения фамилии и должности

В печатную форму программа автоматом поставит правильный вариант.

Рис.7 Окно программы – «Склонение по падежам»

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

Рис.8 Пример склонения ФИО в печатной форме «Приказ о приеме на работу»

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

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

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

Склонение словосочетаний с числительными

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Реализовано в версии 8.3.14.1565.

Довольно часто при формировании различных документов возникает необходимость выводить словосочетания, согласованные с числительными и имеющие определенную падежную форму. Например, в акте приема-передачи товара нужно написать, что получено «3,5 метра медного провода».

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

Теперь такая функциональность появилась, мы добавили в платформу новый метод ПолучитьСклоненияСтрокиПоЧислу(). Вы можете использовать этот метод не только в отчётах и документах, но и везде, где требуется интерактивное взаимодействие с пользователем: при формировании информационных сообщений, в предупреждениях, индикаторах процессов и так далее.

Склонение

В самом простом случае вы можете использовать только возможности склонения, а числовое значение выводить одними цифрами:

Это, конечно, не очень красиво, но может быть полезно в каких-то отдельных ситуациях.

Порядковые и количественные числительные

Чтобы итоговое словосочетание выглядело красивее, вы можете в явном виде указать, числительное какого разряда используется в вашем предложении: количественное или порядковое:

Тогда платформа автоматически добавит к порядковым числительным наращение (буквенное падежное окончание).

Представление числа

При желании вы можете самостоятельно управлять тем, как будет представлено число в итоговом словосочетании: прописью, с окончанием или как число. Единственное, о чём нужно помнить, что окончания не используются с количественными числительными и в некоторых других случаях:

Склонение единиц измерения

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

В такой ситуации вы можете указать те единицы, которые нужно использовать, а кроме этого можете указать ещё и количество разрядов дробной части, которое должно использоваться:

Сложные словосочетания

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

Склонение словосочетаний без числительных

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

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

Этот метод понимает несклоняемые фамилии и довольно хорошо склоняет сложные и иностранные имена. В сложных случаях вы можете «подсказать» ему, какой род следует использовать. Например, во втором примере имя Джайлан – женское, а значит склонять его не надо:

Однако и без «подсказок» метод ПолучитьСклоненияСтроки() правильно обрабатывает многие грамматические правила. Например, он:

— не склоняет мужские имена, оканчивающиеся на гласную,

— не склоняет женские имена, оканчивающиеся на некоторые гласные …

… и склоняет остальные женские имена,

— в двойных именах склоняет только второй компонент,

— фамилии, оканчивающиеся на согласный, не склоняет у женщин …

… и склоняет у мужчин.

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

Рассказать друзьям:

Добавить комментарий

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