|
Как правильно поставить функцию | ☑ | ||
---|---|---|---|---|
0
2402Andrew2011
22.11.11
✎
12:42
|
Вот код:
Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("СправочникСсылка", СсылкаНаОбъект.Ссылка); Запрос.УстановитьПараметр("Физлицо",СсылкаНаОбъект.Физлицо ); Запрос.УстановитьПараметр("Организация", СсылкаНаОбъект.ОбособленноеПодразделение); Запрос.УстановитьПараметр("ДатаДокумента", СсылкаНаОбъект.ДатаДоговора); Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Представитель действует на основании")); Запрос.Текст= "ВЫБРАТЬ | ЗначенияСвойствОбъектов.Объект, | ЗначенияСвойствОбъектов.Значение |ПОМЕСТИТЬ ВТИзвлечьСвойство |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Свойство = &Свойство"; Запрос.Выполнить(); // Выберем (если есть доступ) ответственное физлицо Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо КАК Физлицо, | ОтветственныеЛицаОрганизацийСрезПоследних.Должность, | ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо.Наименование КАК НаименованиеФизлица, | ФизическиеЛица.Комментарий, | ФизическиеЛица.Пол |ПОМЕСТИТЬ ВТОтветственноеЛицо |ИЗ | РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних( | &ДатаДокумента, | ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Руководитель) | И СтруктурнаяЕдиница = &Организация) КАК ОтветственныеЛицаОрганизацийСрезПоследних | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица | ПО ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо = ФизическиеЛица.Ссылка"; Запрос.Текст = "ВЫБРАТЬ | ОтветственныеЛицаОрганизаций.ОтветственноеЛицо, | ОтветственныеЛицаОрганизаций.Должность КАК ДолжностьРуководителя, | ОтветственныеЛицаОрганизаций.ФизическоеЛицо.Наименование, // | ЕСТЬNULL(ФИОФизЛиц.Фамилия + "" "" + ФИОФизЛиц.Имя + "" "" + ФИОФизЛиц.Отчество, ФИОФизЛиц.ФизЛицо.Наименование ) КАК ФИОРаботника, | СотрудникиОрганизаций.Наименование КАК ФИОРаботника, | СотрудникиОрганизаций.Физлицо.Пол КАК Пол, | СотрудникиОрганизаций.Физлицо.ДатаРождения КАК ДатаРождения, | УчетКадровОрганизаций.Номер КАК НомерПриказа, | УчетКадровОрганизаций.Дата КАК ДатаПриказа, | СотрудникиОрганизаций.ДатаНачала КАК ДатаПриема, | СотрудникиОрганизаций.ДатаОкончания ДатаУвольнения, | СотрудникиОрганизаций.ПодразделениеОрганизации.Наименование КАК Подразделение, | ВЫРАЗИТЬ(СотрудникиОрганизаций.Организация.Наименование КАК СТРОКА(300)) КАК НазваниеОрганизации, | СотрудникиОрганизаций.Должность.Наименование КАК Должность |ИЗ | Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций, | ЖурналДокументов.УчетКадровОрганизаций КАК УчетКадровОрганизаций, | РегистрСведений.ОтветственныеЛицаОрганизаций КАК ОтветственныеЛицаОрганизаций, | РегистрСведений.ФИОФизЛиц.СрезПоследних(&ДатаДокумента, Физлицо = &Физлицо) КАК ФИОФизЛиц |ГДЕ | СотрудникиОрганизаций.Ссылка = &СправочникСсылка"; ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СПРАВКА_Макет"; Выборка = Запрос.Выполнить().Выбрать(); Макетище = ПолучитьМакет("СПРАВКА"); Макет = Макетище.ПолучитьОбласть("Область"); Выборка.Следующий() ; Макет.Параметры.Заполнить(Выборка); ТабДокумент.Вывести(Макет); Возврат ТабДокумент; Как мне (ФИОРаботника) просклонять стандартной функцией (Функция ПредставлениеРаботника(Работник, Знач Падеж = 3, Знач Пол = Неопределено) Экспорт) |
|||
1
2402Andrew2011
22.11.11
✎
12:42
|
Как мне (ФИОРаботника) просклонять стандартной функцией (Функция ПредставлениеРаботника(Работник, Знач Падеж = 3, Знач Пол = Неопределено) Экспорт)
|
|||
2
rrunover
22.11.11
✎
12:54
|
Как?
Примерно так: Многоуважаемая Функция Адинэсовна-Оглы, будь так добра, просклоняй мне пожалуйста ФИОРаботника. Да возвернись ко мне возвращаемым значением, а передавать тебе я что-либо отказываюсь, ибо боюсь и пробовать не стану! |
|||
3
2402Andrew2011
22.11.11
✎
12:58
|
я просто никогда не делал такого,и не пойму,пишу Если ФИОРаботника=.... он пишет что переменная не определена
|
|||
4
Ненавижу 1С
гуру
22.11.11
✎
13:02
|
(3) ее же нет, что непонятно то?
|
|||
5
2402Andrew2011
22.11.11
✎
13:03
|
так не пойцму просто как ставить ее
|
|||
6
2402Andrew2011
22.11.11
✎
13:03
|
и куда
|
|||
7
Ненавижу 1С
гуру
22.11.11
✎
13:03
|
(5) куда?
|
|||
8
2402Andrew2011
22.11.11
✎
13:04
|
Функция ПредставлениеРаботника(Работник, Знач Падеж = 3, Знач Пол = Неопределено) Экспорт
ТипДанных = ТипЗнч(Работник); Если ТипДанных = Тип("Строка") Тогда РаботникФИО = Работник; РаботникПол = Пол; Иначе Запрос = Новый Запрос; Запрос.УстановитьПараметр("Работник", Работник); Если ТипДанных = Тип("СправочникСсылка.СотрудникиОрганизаций") Тогда Запрос.Текст = "ВЫБРАТЬ | СотрудникиОрганизаций.Наименование, | СотрудникиОрганизаций.Физлицо.Пол КАК Пол |ИЗ | Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций |ГДЕ | СотрудникиОрганизаций.Ссылка = &Работник"; Иначе Запрос.Текст = "ВЫБРАТЬ | ФизическиеЛица.Наименование, | ФизическиеЛица.Пол |ИЗ | Справочник.ФизическиеЛица КАК ФизическиеЛица |ГДЕ | ФизическиеЛица.Ссылка = &Работник"; КонецЕсли; Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда РаботникФИО = Выборка.Наименование; РаботникПол = Выборка.Пол; Иначе Возврат "" КонецЕсли; КонецЕсли; ФИО = ОбщегоНазначения.ФамилияИнициалыФизЛица(РаботникФИО); ПозицияПервогоПробела = Найти(ФИО + " "," "); Фамилия = Лев(ФИО,ПозицияПервогоПробела-1); Инициалы = Сред(ФИО,ПозицияПервогоПробела+1); РезультатСклонения = ""; Если УниверсальныеМеханизмы.Просклонять(глЗначениеПеременной("глКомпонентаСклоненияФИО"), Фамилия, Падеж, РаботникПол, РезультатСклонения) Тогда ФИО = РезультатСклонения + " " + Инициалы; КонецЕсли; Возврат ФИО КонецФункции |
|||
9
2402Andrew2011
22.11.11
✎
13:12
|
вот ее как сделать и куда поставить!
|
|||
10
rrunover
22.11.11
✎
13:17
|
1. В "Работник" подставлять значение ФИОРаботника из Выборка.
2. Падеж подбирать, прочитав его в комментах к процедуре УниверсальныеМеханизмы.Просклонять(). 3. Пол допустимо не указывать. Функция возвращает элементарную строку. Всё, что тебе нужно, так это определенному (и явно указанному) параметру макета осуществить присвоение правильно вызываемой функции. |
|||
11
Seducer
22.11.11
✎
13:19
|
У тебя запрос ФИОРаботника возвращает как строку. А в функцию нужно передавать ссылку
|
|||
12
Seducer
22.11.11
✎
13:20
|
ФОИ = ПредставлениеРаботника(СсылкаНаОбъект.Физлицо);
|
|||
13
2402Andrew2011
22.11.11
✎
13:21
|
ну да тогда получается надо выделить:
СотрудникиОрганизаций.Наименование |
|||
14
sergeev-ag-1977
22.11.11
✎
13:28
|
(13) и получите "Иванов Иван Иванович (осн.)" ;-)
|
|||
15
sergeev-ag-1977
22.11.11
✎
13:28
|
а он уже не Иванов, Ивонов с января этого года ...
|
|||
16
sergeev-ag-1977
22.11.11
✎
13:29
|
это для примера ...
|
|||
17
2402Andrew2011
22.11.11
✎
13:31
|
ФИО = ПредставлениеРаботника(СсылкаНаОбъект.Физлицо);
надо куда поставить?В процедуру обработки падежей? |
|||
18
2402Andrew2011
22.11.11
✎
13:35
|
{ВнешняяОбработка.СПРАВКА.МодульОбъекта(74,8)}: Процедура или функция с указанным именем не определена (ПредставлениеРаботника)
ФИО = <<?>>ПредставлениеРаботника(СсылкаНаОбъект.Физлицо); (Проверка: Толстый клиент (обычное приложение)) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |