1с документооборот как настроить склонение фио контактного лица

Внешний компонент «Склонение ФИО»

Внешний компонент предназначен для склонения сочетаний фамилий, имен и отчеств на русском языке. Компонент может быть использован в конфигурациях «1С:Предприятия 7.7″ и » 1С:Предприятия 8″.

Компонент предоставляет прикладному разработчику метод Просклонять ( Decline ) , который производит склонение ФИО, представленного в виде строки, в требуемом падеже.

Описание метода «Просклонять»

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

Параметры
ФИО (обязательный), тип — строка .
Параметр должен содержать фамилию , имя и отчество в именительном падеже единственного числа. Строка должна состоять только из букв русского алфавита, пробелов и дефисов. Фамилия, имя и отчество должны разделяться пробелами. Внутри фамилии, имени и отчества пробелов быть не должно.
Допустимы следующие сочетания фамилии, имени и отчества: ФИО, ИОФ, ИО, ИФ, ФИ, Ф, И, О. Двойные и тройные имена и фамилии должны писаться через дефис, например: Попов-Левин , Анна-Роза-Мария . Имена и отчества должны быть полными.

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

Значение Падеж
1 Именительный
2 Родительный
3 Дательный
4 Винительный
5 Творительный
6 Предложный

Пол ( необязательный), тип — число.
Возможные значения : 0 – авто, 1 — мужской, 2 – женский.
Данный параметр предназначен для разрешения возможных неоднозначностей, например, имя Карен Акопян может принадлежать и мужчине, и женщине и в зависимости от этого склоняться или не склоняться. В остальных случаях рекомендуется опускать этот параметр или использовать значение 0 («авто»), т. к. неправильное указание пола может повлиять на правильность склонения.

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

Пример использования внешнего компонента в среде «1С:Предприятия 8.0»

Приведенный ниже фрагмент кода на встроенном языке «1С:Предприятия 8.0» загружает компонент и, используя метод компонента Просклонять , получает форму родительного падежа для ФИО «Иванов Иван Иванович».

Внешний компонент находится в каталоге \1CITS\EXE\APPEXTCOMP.

Источник

Внешний компонент «Склонение ФИО» (Native API)

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

Компонент предоставляет прикладному разработчику метод Просклонять ( Decline ) , который производит склонение ФИО, представленного в виде строки, в требуемом падеже.

Описание метода «Просклонять»

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

Параметры
ФИО (обязательный), тип — строка .
Параметр должен содержать фамилию , имя и отчество в именительном падеже единственного числа. Строка должна состоять только из букв русского алфавита, пробелов и дефисов. Фамилия, имя и отчество должны разделяться пробелами. Внутри фамилии, имени и отчества пробелов быть не должно.
Допустимы следующие сочетания фамилии, имени и отчества: ФИО, ИОФ, ИО, ИФ, ФИ, Ф, И, О. Двойные и тройные имена и фамилии должны писаться через дефис, например: Попов-Левин , Анна-Роза-Мария . Имена и отчества должны быть полными.

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

Значение Падеж
1 Именительный
2 Родительный
3 Дательный
4 Винительный
5 Творительный
6 Предложный

Пол ( необязательный), тип — число.
Возможные значения : 0 – авто, 1 — мужской, 2 – женский.
Данный параметр предназначен для разрешения возможных неоднозначностей, например, имя Карен Акопян может принадлежать и мужчине, и женщине и в зависимости от этого склоняться или не склоняться. В остальных случаях рекомендуется опускать этот параметр или использовать значение 0 («авто»), т. к. неправильное указание пола может повлиять на правильность склонения.

Читайте также:  Почему может не работать вентилятор радиатора

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

Пример использования внешнего компонента в среде «1С:Предприятия 8»

Приведенный ниже фрагмент кода на встроенном языке «1С:Предприятия 8» устанавливает, подключает компонент и, используя метод компонента Просклонять , получает форму родительного падежа для ФИО «Иванов Иван Иванович».

Внешний компонент находится в каталоге \1CITS\EXE\APPEXTCOMP.

Источник

1с документооборот как настроить склонение фио контактного лица

Вот щас то что не так, вообще ошибку дает
РезультатОбработки = «»;

Показать полностью.
Если ЗначениеЗаполнено(Сотрудник) Тогда

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

А теперь скажите пожалуйста в каком таком формате функция
Долж = РаботаСПользователями.ПолучитьДолжность(Сотрудник);
Возвращает Название должности, если потом функция Склонения выдает ошибку и не срабатывает
РезультатОбработки = СклонениеПредставленийОбъектов.ПросклонятьПредставление(Долж, 3);
Показать полностью.

При выводе в документ
РезультатОбработки = РаботаСПользователями.ПолучитьДолжность(Сотрудник);
Мы получаем строчку Генеральный директор, но что-то не так с форматом видимо, раз функция склонения ругается

Или сейчас окажется, что это работает только с должностями которые указаны в допреквизитах, как сделано в демобазе?

На демо базе тоже не работает, такая же ошибка.
Если вручную пропистать должность как на скрипте ниже
Долж = «Генеральный директор»;
то работает, а если получить такое же значение через функцию,
Долж = РаботаСПользователями.ПолучитьДолжность(Сотрудник);
Показать полностью.
то выдает ошибку

РезультатОбработки = «»;
Сотрудник = Файл.ВладелецФайла.Адресат;
Если ЗначениеЗаполнено(Сотрудник) Тогда
// Долж = РаботаСПользователями.ПолучитьДолжность(Сотрудник);
Долж = «Генеральный директор»;
Если ЗначениеЗаполнено(Долж) Тогда
// РезультатОбработки = Долж;
РезультатОбработки = СклонениеПредставленийОбъектов.ПросклонятьПредставление(Долж, 3);
КонецЕсли;
КонецЕсли;

Функция «РаботаСПользователями.ПолучитьДолжность» возвращает ссылку на элемент справочника «Должности», а функция «СклонениеПредставленийОбъектов.ПросклонятьПредставление(Текст)» в качестве параметра «ждет» строку (см описание функции в самом модуле). Поэтому вам в нее нужно не ссылку передавать, а ее строковое представление. Скрипт должен быть таким:
Показать полностью.

Сотрудник = Файл.ВладелецФайла.Адресат;
Если ЗначениеЗаполнено(Сотрудник) Тогда

Должность = РаботаСПользователями.ПолучитьДолжность(Сотрудник);
Если ЗначениеЗаполнено(Должность) Тогда
РезультатОбработки = СклонениеПредставленийОбъектов.ПросклонятьПредставление(СокрЛП(Должность), 3);
КонецЕсли;
КонецЕсли;

Источник

Функция склонения по падежам в 1С 8.2 (8.3)

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

Рассмотрим, как это сделать проще всего.

Склонение ФИО в 1С производится с помощью внешней компоненты. Она, как правило, есть у Вас на диске и расположена по адресу C:\Program Files (x86)\1cv82\8.х.хх.ххх\bin. Для использования её в программном коде достаточно лишь подключить её. Рассмотрим процесс склонения ФИО в 1С в коде.

Склонение Фамилии, Имени, Отчества в 1С

В результате использования процедуры в окне сообщений мы увидим следующую информацию:

Вот и всё, функция по склонению ФИО готова! Аналогично можно просклонять и другую информацию, например, должности сотрудников.

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

Склонение ФИО

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

Скачать файлы

Специальные предложения

(1) peterxx, автор написал, что обработка не использует никаких внешних компонент — скачал, потратил 1$m — посмотрел исходный код, и увидел, что, на самом деле, обработка использует типовые механизмы ЗУП. Ставлю минус.

Столкнулась с задачей, нужно было просклонять ФИО в нескольких падежах. На просторах интернета предлагается часто вариант подключения внешней библиотеки NameDecl.dll.

НО, в ЗУП есть собственная компонента склонения и даже есть общая функция, которая работает с помощью подключения этой компоненты.

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

EndFunction
// Функция для склонения только первого слова предложения.
Function ПадежП (Знач z1 ,Знач z2 , z3 = 0 , ВНижнийРегистр = 0 ) Экспорт

z1 = СокрЛП ( z1 );
z1 = СокрЛП ( z1 ); z4 = Найти ( z1 + » » , » » )+ 1 ; z5 = Лев ( z1 , z4 — 2 ); z6 = Прав ( z5 , 2 );
z7 = ? (( Найти ( «ая ий ый» , z6 )> 0 )и( Найти ( «ющий нный» , Сред ( z1 , z4 — 5 , 4 ))= 0 )и( z3 = 0 ), «1» , «*» );
Рез = ? (( z6 = «ая» )или( Прав ( z6 , 1 )= «а» ), ПадежС ( z5 , z2 , z7 , 1 )+ » » + ПадежС ( Сред ( z1 , z4 ), z2 ), ПадежС ( z5 , z2 , «ч» , 1 )+ ? (( z6 = «ий» )и( Найти ( z1 , » » )= 0 ), «» , » » + ? ( z7 = «1» , ПадежП ( Сред ( z1 , z4 ), z2 , Число ( z7 )), Сред ( z1 , z4 ))));
Возврат ? ( ВНижнийРегистр = 1 , НРег ( Рез ), Рез );

EndFunction

Наименование Файл Версия Размер
// Функция для склонения одного слова.
// z1 — само слово
// z2 — номер падежа
// z3 — пол
// z4 — 0 — как существительное, 1-склонять как фамилию, 2-имя, 3-отчество
//
//
// 1 — именительный
// 2 — родительный
// 3 — дательный
// 4 — винительный
// 5 — творительный
// 6 — предложный
Function ПадежС ( z1 ,Знач z2 = 2 ,Знач z3 = «*» , z4 = 0 ) Экспорт
z5 = Find ( z1 , «-» );
z6 = ? ( z5 = 0 , «» , «-» + ПадежС ( Mid ( z1 , z5 + 1 , StrLen ( z1 )- z5 + 1 ), z2 , z3 , z4 ));
z1 = НРег ( ? ( z5 = 0 , z1 , Left ( z1 , z5 — 1 )));
zc = Max ( z2 ,- z2 );
zf = «» ; // исключения
if zf = «» Then
z7 = Right ( z1 , 3 ); z8 = Right ( z7 , 2 ); z9 = Right ( z8 , 1 );
z5 = StrLen ( z1 );
za = Find ( «ая ия ел ок яц ий па да ца ша ба та га ка на ма ха» , z8 );
zb = Find ( «аеёийоуэюяжнгхкчшщ» , Left ( z7 , 1 ));
zd = ? ( za = 4 , 5 , Find ( «айяь» , z9 ));
zd = ? (( zc = 1 )or( z9 = «.» )or(( z4 = 2 )и( Find ( «оиеу» + ? ( z3 = «ч» , «» , «бвгджзклмнпрстфхцчшщъ» ), z9 )> 0 ))or(( z4 = 1 )и( Find ( «мия мяэ лия кия жая лея шлы» , z7 )> 0 ))or(( z4 = 2 )и( Find ( «ьжэ» , z7 )> 0 )), 9 , ? (( zd = 4 )и( z3 = «ч» ), 2 , ? ( z4 = 1 , ? ( Find ( «оеиую» , z9 )+ Find ( «их ых аа еа ёа иа оа уа ыа эа юа яа» , z8 )> 0 , 9 , ? ( z3 <> «ч» , ? ( za = 1 , 7 , ? ( z9 = «а» , ? (( za > 18 )и( z7 <> «ина» ), 1 , 6 ), 9 )), ? ((( Find ( «ой ый» , z8 )> 0 )и( z5 > 4 )и( Find ( «опой вбой» , Right ( z1 , 4 ))= 0 ))or(( zb > 10 )и( za = 16 )), 8 , zd ))), zd )));
ze = Find ( «лец нёк вей бей дец пец мец нец рец вец аец иец ыец бер» , z7 );
zf = ? (( zd = 8 )и( zc <> 5 ), ? (( zb > 15 )or( Find ( «жий ний» , z7 )> 0 ), «е» , «о» ), ? ( z1 = «лев» , «ьв» , ? (( Find ( «аеёийоуэюя» , Mid ( z1 , z5 — 3 , 1 ))= 0 )и(( zb > 11 )or( zb = 0 ))и( ze <> 49 ), «» , ? ( za = 7 , «л» , ? ( za = 10 , «к» , ? ( za = 13 , «йц» , ? ( ze = 0 , «» , ? ( ze 16 , «ь» + ? ( ze = 1 , «ц» , ? ( ze = 5 , «к» , «» )), ? ( ze 41 , «ц» , ? ( ze 53 , «йц» , «р» ))))))))));
zf = ? (( zd = 9 )or(( z4 = 3 )и( Right ( z1 , 1 )= «ы» )), z1 , Left ( z1 , z5 — ? (( zd > 6 )or( zf <> «» ), 2 , ? ( zd > 0 , 1 , 0 )))+ zf + СокрП ( Mid ( «а у а » + ? (( Find ( «ич ыш нц эц» , z8 )> 0 )и( Найти ( «кмь» , Left ( z7 , 1 ))= 0 ), «е» , ? ( ( Find ( «ов ин ев» , z8 )> 0 )и( z4 = 1 ) , «ы» , «о» ))+ «ме » + ? ( Find ( «гжкхш» , Left ( z8 , 1 ))> 0 , «и» , «ы» )+ » е у » + ? ( z8 = «ца» , «е» , «о» )+ «йе я ю я ем» + ? ( za = 16 , «и» , «е» )+ » и е ю ейе и и ь ьюи и и ю ейи ойойу ойойойойуюойойгомуго» + ? (( zf = «е» )or( za = 16 )or(( zb > 12 )и( zb 16 )), «и» , «ы» )+ «мм» , 10 * zd + 2 * zc — 3 , 2 )));
EndIf ;
Return ? ( «» = z1 , «» , ? ( z4 > 0 , ВРег ( Left ( zf , 1 ))+ ? (( z2 0 )и( z4 > 1 ), «.» , Mid ( zf , 2 )), zf ) + z6 );
EndFunction
// Функция для склонения ФИО.
// z1 — фамилия имя отчество например Железняков Юрий Юрьевич
// z2 — Падеж ( по умолчанию = 2 — родительный)
// 2 — родительный ( нет кого? ) Железнякова Юрия Юрьевича
// 3 — дательный ( кому? ) Железнякову Юрию Юрьевичу
// 4 — винительный ( вижу кого? ) Железнякова Юрия Юрьевича
// 5 — творительный ( кем? ) Железняковым Юрием Юрьевичем
// 6 — предложный ( о ком? ) Железнякове Юрии Юрьевиче
// Если задать Z2 меньше 0, то на выходе получим от -1=Железняков Ю. Ю. до -6=Железнякове Ю. Ю.
// z3 — параметр Пол может не указываться, но при наличии фамилий с
// инициалами точное определение пола невозможно, поэтому предлагается задавать пол этим
// параметром 1 — мужской 2 — женский
// ДЛЯ СКЛОНЕНИЯ ПРОФЕССИЙ ИСПОЛЬЗУЙТЕ ФУНКЦИЮ ПАДЕЖП И БУДЕТ ВАМ СЧАСТЬЕ!
// —————————————————————————————
// Бибик Галушка Цой Николайчик Наталия Петровна Герценберг Кривошей Капица-Метелица
// Если Падеж(Фио ,1 ,3), то на выходе получим Фамилия Имя Отчество и т.д.
// Если Падеж(Фио ,1 ,3,»1″ ), то Фамилия
// Если Падеж(Фио ,1 ,3,»2″ ), то Имя
// Если Падеж(Фио ,1 ,3,»3″ ), то Отчество
// Если Падеж(Фио, 1 ,3,»12″ ), то Фамилия Имя
// Если Падеж(Фио, 1 ,3,»23″ ), то Имя Отчество
// Если Падеж(Фио,-1 ,3,»231″ ),то И. О. Фамилия
// Если Падеж(Фио,-1 ,3,»23″ ), то И. О.
Function Падеж (Знач z1 , z2 = 2 , z3 = 3 ,Знач z4 = «123» , z5 = 1 ) Экспорт

z1 = СокрЛП ( z1 );
Возврат СокрЛП ( ? ( z5 4 , Падеж ( СокрЛП ( СтрЗаменить ( Сред ( z1 , Найти ( z1 + » » , » » )+ 1 ), «.» , «. » )), z2 , z3 , СтрЗаменить ( z4 , z5 , ПадежС ( Лев ( z1 , Найти ( z1 + » » , » » )- 1 ), z2 , Сред ( «ча» + НРег ( Прав ( z1 , 1 )), z3 , 1 ), z5 )+ » » ), z5 + 1 ), z4 ));

Обновление 11.10.13 12:42

Код открыт Не указано

См. также

Конвертация любых адресов, написанных в свободной форме, к ФИАС Промо

Допустим у нас есть база с адресами клиентов, и написаны они могут быть как душе угодно. С опечатками, без индексов, без разделителей, в совершенно любом формате. Вот было бы здорово иметь функцию, которая одним нажатием кнопки преобразует любую белиберду к строгому представлению адреса по ФИАС? Восстановит индекс, исправит опечатки и вернёт на 100% валидный адрес. Для всех, кто мечтательно сказал «ДА!», выкладываю данную обработку.

30.06.2020 6639 63 XilDen 15

FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы «Режим сравнения форм») на примере ERP 2.5

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

21.12.2020 9407 26 huxuxuya 11

Вам нравятся запросы в 1С?

Речь не только о том, что простейший запрос с «легальным» оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать «в нагрузку» к тексту запроса. Все эти «Новый Запрос», «УстановитьПараметр» и последующие пляски с обработкой результата. Пора с этим заканчивать!

03.07.2019 27931 7 m-rv 91

Редактор объектов информационной базы 8.3

Универсальная внешняя обработка для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов. Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML. Платформа 8.3, управляемые формы. Версия 1.1.0.57 от 09.10.2021

23.01.2019 41974 465 ROL32 50

Источник

Оцените статью