- Внешний компонент «Склонение ФИО»
- Описание метода «Просклонять»
- Пример использования внешнего компонента в среде «1С:Предприятия 8.0»
- Внешний компонент «Склонение ФИО» (Native API)
- Описание метода «Просклонять»
- Пример использования внешнего компонента в среде «1С:Предприятия 8»
- 1с документооборот как настроить склонение фио контактного лица
- Функция склонения по падежам в 1С 8.2 (8.3)
- Склонение Фамилии, Имени, Отчества в 1С
- Склонение ФИО
- Скачать файлы
- Специальные предложения
- См. также
- Конвертация любых адресов, написанных в свободной форме, к ФИАС Промо
- FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы «Режим сравнения форм») на примере ERP 2.5
- Вам нравятся запросы в 1С?
- Редактор объектов информационной базы 8.3
Внешний компонент «Склонение ФИО»
Внешний компонент предназначен для склонения сочетаний фамилий, имен и отчеств на русском языке. Компонент может быть использован в конфигурациях «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. Мы работаем в Москве и области.
Источник
Склонение ФИО
Для демонстрации была написана простенькая обработка, где выбирается сотрудник из справочника, ФИО которого нужно просклонять (управляемые формы).
Скачать файлы
| Наименование | Файл | Версия | Размер |
|---|---|---|---|
| // Функция для склонения одного слова. // 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 ); |
Обновление 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
Источник