|
Склонение ФИО | ☑ | ||
---|---|---|---|---|
0
Смертник
20.05.13
✎
11:51
|
Не могу разобраться со склонением в печатной форме
Функция СклонятьПоПадежам(ФизЛицо, Падеж) Экспорт РезультатСклонения = ""; Компонента = "NameDecl.dll"; Попытка // Загружаем внешнюю компоненту ЗагрузитьВнешнююКомпоненту(Компонента); Объект = Новый("AddIn.NameDeclension"); Исключение // Не удалось выполнить операции с внешней компонентой Сообщить("Не удалось загрузить внешнюю компоненту по причине: " + ОписаниеОшибки()); Возврат (Компонента) КонецПопытки; СтрокаФИО = Строка(ФизЛицо); Если ФизЛицо.Пол = Перечисления.ПолФизическихЛиц.ПустаяСсылка() Тогда ПолЧисло = 0; ИначеЕсли ФизЛицо.Пол = Перечисления.ПолФизическихЛиц.Мужской Тогда ПолЧисло = 1; ИначеЕсли ФизЛицо.Пол = Перечисления.ПолФизическихЛиц.Женский Тогда ПолЧисло = 2; КонецЕсли; // Получаем результат склонения РезультатСклонения = Объект.Просклонять(СтрокаФИО, Падеж, ПолЧисло); Возврат РезультатСклонения; КонецФункции Сделал как в другой внешней печатной форме сделано. У меня ошибка на Пол. Не пойму в чем дело |
|||
1
Cyberhawk
20.05.13
✎
11:52
|
Ошибка на строке
РезультатСклонения = Объект.Просклонять(СтрокаФИО, Падеж, ПолЧисло); ? |
|||
2
Godofsin
20.05.13
✎
11:52
|
Ошибку выложи
|
|||
3
Смертник
20.05.13
✎
11:52
|
может как то можно по другому.
|
|||
4
Lama12
20.05.13
✎
11:52
|
(0) На каком фамилии проверяешь?
В 36 релизу УПП библиотека склонений с ошибкой. 1С написали что исправят. |
|||
5
Смертник
20.05.13
✎
11:52
|
Значение не является значением объектного типа (Пол)
|
|||
6
Смертник
20.05.13
✎
11:53
|
39 релиз УПП
|
|||
7
Godofsin
20.05.13
✎
11:53
|
Значит не ФЛ склоняешь
|
|||
8
Смертник
20.05.13
✎
11:56
|
ФизЛицо оно откуда должно браться? чтото я туплю страшно
|
|||
9
Godofsin
20.05.13
✎
11:59
|
(8) Это ты у нас спрашиваешь откуда тебе брать ФЛ? =) Ну вообще-то из справочника физическиеЛица. Но если склонять ты хочешь по справочнику "Сотрудник" тогда Сотрудник.ФизЛицо.
Если тупо строку передаешь, тогда функцию надо допилить |
|||
10
Смертник
20.05.13
✎
16:09
|
РезультатСклонения = "";
Если УниверсальныеМеханизмы.Просклонять(глЗначениеПеременной("глКомпонентаСклоненияФИО"), Результат.ФизЛицо, 2,Результат.ФизЛицоПол, РезультатСклонения) Тогда ФИО = РезультатСклонения; КонецЕсли; Сделал вот так, но выводит все равно в именительном падеже |
|||
11
Смертник
20.05.13
✎
16:14
|
Помогите кто знает в чем может быть косяк?
|
|||
12
fmrlex
20.05.13
✎
16:20
|
Код не смотрел, но предположу "Результат.ФизЛицоПол" меняем на Результат.ФизЛицо.Пол
|
|||
13
Смертник
20.05.13
✎
16:29
|
Нет я специально вывел Пол ФизЛица - и по нему сделал запрос. Так что это поле отражает пол физ лица
|
|||
14
Смертник
20.05.13
✎
16:31
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | ВЫБОР | КОГДА ПодписантУказанногоДока.Организация_Контрагент ЕСТЬ NULL | ТОГДА ПодписантыПоУмолчанию.Должность | ИНАЧЕ ПодписантУказанногоДока.Должность | КОНЕЦ КАК Должность, | ВЫБОР | КОГДА ПодписантУказанногоДока.Организация_Контрагент ЕСТЬ NULL | ТОГДА ПодписантыПоУмолчанию.Основание | ИНАЧЕ ПодписантУказанногоДока.Основание | КОНЕЦ КАК Основание, | ВЫБОР | КОГДА ПодписантУказанногоДока.Организация_Контрагент ЕСТЬ NULL | ТОГДА ПодписантыПоУмолчанию.ФизЛицо | ИНАЧЕ ПодписантУказанногоДока.ФизЛицо | КОНЕЦ КАК ФизЛицо, | ВЫБОР | КОГДА ПодписантКонтрагентаУказанногоДока.Организация_Контрагент ЕСТЬ NULL | ТОГДА ПодписантКонтрагентаПоУмолчанию.Должность | ИНАЧЕ ПодписантКонтрагентаУказанногоДока.Должность | КОНЕЦ КАК ДолжностьКонтрагент, | ВЫБОР | КОГДА ПодписантКонтрагентаУказанногоДока.Организация_Контрагент ЕСТЬ NULL | ТОГДА ПодписантКонтрагентаПоУмолчанию.Основание | ИНАЧЕ ПодписантКонтрагентаУказанногоДока.Основание | КОНЕЦ КАК ОснованиеКонтрагент, | ВЫБОР | КОГДА ПодписантКонтрагентаУказанногоДока.Организация_Контрагент ЕСТЬ NULL | ТОГДА ПодписантКонтрагентаПоУмолчанию.ФизЛицо | ИНАЧЕ ПодписантКонтрагентаУказанногоДока.ФизЛицо | КОНЕЦ КАК ФизЛицоКонтрагент, | ВЫБОР | КОГДА ПодписантУказанногоДока.Организация_Контрагент ЕСТЬ NULL | ТОГДА ПодписантыПоУмолчанию.ФизЛицоКраткоеПредставление | ИНАЧЕ ПодписантУказанногоДока.ФизЛицоКраткоеПредставление | КОНЕЦ КАК ФИО, | ВЫБОР | КОГДА ПодписантКонтрагентаУказанногоДока.Организация_Контрагент ЕСТЬ NULL | ТОГДА ПодписантКонтрагентаПоУмолчанию.ФизЛицоКраткоеПредставление | ИНАЧЕ ПодписантКонтрагентаУказанногоДока.ФизЛицоКраткоеПредставление | КОНЕЦ КАК ФИОконтрагента, | ВЫБОР | КОГДА ПодписантУказанногоДока.Организация_Контрагент ЕСТЬ NULL | ТОГДА ПодписантыПоУмолчанию.ФизЛицо.Пол | ИНАЧЕ ПодписантУказанногоДока.ФизЛицо.Пол | КОНЕЦ КАК ФизЛицоПол |ИЗ | РегистрСведений.РУ_Подписанты.СрезПоследних( | &ДатаДоговора, | Организация_Контрагент = &Контрагент | И СсылкаНаОбъект = &ТекущийДокумент | И ВидОбъекта = &ВидОбъекта) КАК ПодписантКонтрагентаУказанногоДока | ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.РУ_Подписанты.СрезПоследних( | &ДатаДоговора, | Организация_Контрагент = &Контрагент | И ВидОбъекта = &ВидОбъекта) КАК ПодписантКонтрагентаПоУмолчанию | ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.РУ_Подписанты.СрезПоследних( | &ДатаДоговора, | Организация_Контрагент = &Организация | И ВидОбъекта = &ВидОбъекта) КАК ПодписантыПоУмолчанию | ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.РУ_Подписанты.СрезПоследних( | &ДатаДоговора, | Организация_Контрагент = &Организация | И СсылкаНаОбъект = &ТекущийДокумент | И ВидОбъекта = &ВидОбъекта) КАК ПодписантУказанногоДока | ПО ПодписантыПоУмолчанию.ПорядковыйНомер = ПодписантУказанногоДока.ПорядковыйНомер | ПО ПодписантКонтрагентаПоУмолчанию.ВидОбъекта = ПодписантыПоУмолчанию.ВидОбъекта | ПО ПодписантКонтрагентаУказанногоДока.ПорядковыйНомер = ПодписантКонтрагентаПоУмолчанию.ПорядковыйНомер"; ДатаПодписания = ?(ЗначениеЗаполнено(СсылкаНаОбъектДоговор.Дата), СсылкаНаОбъектДоговор.Дата, ТекущаяДата()); Запрос.УстановитьПараметр("ДатаДоговора", ДатаПодписания); Запрос.УстановитьПараметр("Контрагент", СсылкаНаОбъектДоговор.Владелец); Запрос.УстановитьПараметр("Организация", ЗапросМТС[0].Организация); Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект); Запрос.УстановитьПараметр("ВидОбъекта", "Заказ поставщику"); Результат = Запрос.Выполнить().Выбрать(); |
|||
15
fmrlex
20.05.13
✎
16:41
|
(14) Запрос запихай в консоль запросов и посмотри что получается.
|
|||
16
Смертник
20.05.13
✎
17:02
|
получается все компоненты какие нужны
|
|||
17
mikecool
20.05.13
✎
17:03
|
(16) т.е. все правильно и не работает?
|
|||
18
mikecool
20.05.13
✎
17:03
|
+ 17 не верю! (с) Станиславский
|
|||
19
Смертник
20.05.13
✎
17:06
|
из запроса выбирает те поля какие указаны, а механизм отрабатывает как то не так....все время именительный
|
|||
20
Смертник
20.05.13
✎
17:08
|
так как эта компонета скажем так работает со Строкой, вывел ФизЛицо.Наименование - чтобы получить строку. Или не так надо было?
|
|||
21
Мимохожий Однако
20.05.13
✎
17:17
|
Объясни фрагмент
Если ФизЛицо.Пол = Перечисления.ПолФизическихЛиц.ПустаяСсылка() Тогда ПолЧисло = 0; |
|||
22
Смертник
20.05.13
✎
17:48
|
не у меня мужской получает) я беру конкретный документ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |