|
Вычисляемое поле в скд |
☑ |
0
13spartak13
18.07.17
✎
09:36
|
Здравствуйте! В СКД в вычисляемое поле нужно вставить функцию
Функция ПолучитьСписокСотрудниковИОФ(Дата, ДолжностьПодразделения) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ФИОФизЛицСрезПоследних.Фамилия + "" "" + (ВЫРАЗИТЬ(ФИОФизЛицСрезПоследних.Имя КАК СТРОКА(1))) + ""."" + (ВЫРАЗИТЬ(ФИОФизЛицСрезПоследних.Отчество КАК СТРОКА(1))) + ""."" КАК Сотрудник
|ИЗ
| РегистрСведений.СотрудникиШтатногоРасписаниеОрганизаций.СрезПоследних(&Дата, ) КАК СотрудникиШтатногоРасписаниеОрганизацийСрезПоследних,
| РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(&Дата, ) КАК ФИОФизЛицСрезПоследних
| ПО РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо = ФИОФизЛицСрезПоследних.ФизЛицо
|ГДЕ
| РаботникиОрганизацийСрезПоследних.ДолжностьПодразделения = &ДолжностьПодразделения
| И (РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения > &Дата
| ИЛИ РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))";
Запрос.УстановитьПараметр("Дата", Дата);
Запрос.УстановитьПараметр("ДолжностьПодразделения", ДолжностьПодразделения);
Результат = Запрос.Выполнить().Выбрать();
Сотрудник = "";
Пока Результат.Следующий() Цикл
Сотрудник = Сотрудник + Результат.Сотрудник + ", ";
КонецЦикла;
Возврат ?(Сотрудник = "", "", Лев(Сотрудник, СтрДлина(Сотрудник) - 2));
КонецФункции
Но дело в том что я не могу залазить в конфигурацию и хранить ее в общем модуле, это внешняя обработка, как можно впихнуть данную функцию в вычисляемое поле и возможно ли вообще
|
|
1
Лефмихалыч
18.07.17
✎
10:03
|
не возможно вообще
|
|
4
dnab
18.07.17
✎
10:27
|
(2) не нужен тебе общий модуль. Сделай все в запросе, ничего тут сложного.
Вывод списка сотрудников с разделителями тоже можно в вычисляемом поле, читай язык выражений СКД
|
|
6
DexterMorgan
18.07.17
✎
10:53
|
(0) Переделай основной запрос в скд, добавив эту часть из (0), тут и не нужны никакие вычисляемые поля, только производительность пострадает
|
|
7
DexterMorgan
18.07.17
✎
10:57
|
(0) А чтобы вывести сотрудников через запятую есть например соединитьстроки или массив
|
|
8
13spartak13
18.07.17
✎
11:01
|
(7) Подскажите запросом выбираю нужных сотрудников, но выводить их могу только ресурсом, как в поле вывести всех а не только МАКСИМУМ или МИНИМУМ
|
|
9
DexterMorgan
18.07.17
✎
11:04
|
(8) Пиши вместо максимум - СоединитьСтроки("ТвоеПоле", ",")
|
|
10
DexterMorgan
18.07.17
✎
11:05
|
Или Массив(твое поле)
|
|
11
13spartak13
18.07.17
✎
11:11
|
(10) Это нужно сначала вычисляемое поле создать?
|
|
12
DexterMorgan
18.07.17
✎
11:15
|
(11) Не нужно, ты выбираешь сотрудников запросом, делаешь ресурсом и пишешь как (9)
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший