Вычислить вычисляемое выражение СКД

1. Lime_ 16.12.24 08:54 Сейчас в теме
Есть выражение в вычисляемом выражении СКД (скрин). Оно должно возвращать таблицу. Но почему то в отладке это значение неопределено (скрин). При этом в отладке самой функции (вычисляемой) значения возвращает ТЗ с одной строкой (скрин ).

Вопрос. Как получить первую строку этой таблицы и/или почему он не возвращает значение ТЗ
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 83 16.12.24 09:02 Сейчас в теме
(1) Что есть "сотрудник" в контексте вызова функции общего модуля?
3. Lime_ 16.12.24 09:14 Сейчас в теме
(2) Ссылка "Сотрудник". В вычисляемой функции это массивСОтрудников должен быть. Получается надо сначала сотрудника в массив засунуть?
4. nomad_irk 83 16.12.24 09:15 Сейчас в теме
(3) если функция в качестве параметра умеет только массив принимать, то - да.
6. Lime_ 16.12.24 09:24 Сейчас в теме
(4) Сделал

КадровыйУчет.КадровыеДанныеСотрудников(Ложь,ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Сотрудник), "ТарифнаяСтавка, ПоказательТарифнойСтавки,ДатаПриема, ОбщийСтажЛет", &КонецПериода)


Результат тотже
8. nomad_irk 83 16.12.24 09:31 Сейчас в теме
(6)Само значение Сотрудник как поле в Наборе существует?
9. Lime_ 16.12.24 09:36 Сейчас в теме
(8)
Само значение Сотрудник как поле в Наборе существует?


Да
Прикрепленные файлы:
12. nomad_irk 83 16.12.24 09:50 Сейчас в теме
(9) точку останова в функции пробовали ставить во время формирования отчета?
все входные параметры заполнены?
13. Lime_ 16.12.24 09:53 Сейчас в теме
(12) Да я на скриншоте же показал. Он все рассчитывает корректно. Возвращает таблицу с одной строкой
14. nomad_irk 83 16.12.24 10:16 Сейчас в теме
(13) хорошо. как вы себе представляете ТЗ в поле? что должен вывести СКД в таком случае?
15. Lime_ 16.12.24 10:25 Сейчас в теме
(14) Так пусть ничего не выводит. Но почему там неопределено? Или если он не может принять ТЗ как сделать получение первой строки ТЗ?

Через конструкцию --[0].Стаж не взлетает. Может есть функция отдельная получения первой строки ТЗ?
16. nomad_irk 83 16.12.24 10:30 Сейчас в теме
(15) Вычисляемые поля в наборах данных не хранятся, на то они и вычисляемые.
Вычисляемые поля - это для вывода в результат.

Если уж идти таким путем, то нужно под каждый вид данных делать свое вычисляемое поле, насколько я понял суть вашей задачи и ее решения.

КадровыйУчет.КадровыеДанныеСотрудников(Ложь,Сотрудник, "ТарифнаяСтавка",  &КонецПериода)
КадровыйУчет.КадровыеДанныеСотрудников(Ложь,Сотрудник, "ПоказательТарифнойСтавки", &КонецПериода)
КадровыйУчет.КадровыеДанныеСотрудников(Ложь,Сотрудник, "ДатаПриема", &КонецПериода)
КадровыйУчет.КадровыеДанныеСотрудников(Ложь,Сотрудник, "ОбщийСтажЛет", &КонецПериода)
17. Lime_ 16.12.24 10:33 Сейчас в теме
(16) Вопрос тотже как вывести первое значение ТЗ чтобы получить результат
18. nomad_irk 83 16.12.24 10:34 Сейчас в теме
(17) с помощью [0], но нужно еще проверять, что ТЗ имеет записи.
20. Lime_ 16.12.24 10:47 Сейчас в теме
(18) КадровыйУчет.КадровыеДанныеСотрудников(Ложь,ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Сотрудник), "ТарифнаяСтавка, ПоказательТарифнойСтавки,ДатаПриема, ОбщийСтажЛет", &КонецПериода)[0].ТарифнаяСтавка

Выдает ошибку
Ожидается ) ")"
19. Lime_ 16.12.24 10:41 Сейчас в теме
(16) Результат всех этих функций это ТЗ. Поэтому так не получается
7. Lime_ 16.12.24 09:28 Сейчас в теме
(4) И кстати функция может принимать ссылку Сотрудник (не только массив)
5. Lime_ 16.12.24 09:23 Сейчас в теме
Сделал

КадровыйУчет.КадровыеДанныеСотрудников(Ложь,ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Сотрудник), "ТарифнаяСтавка, ПоказательТарифнойСтавки,ДатаПриема, ОбщийСтажЛет", &КонецПериода)


Результат тотже
10. VmvLer 16.12.24 09:42 Сейчас в теме
Работа.Сотрудник может быть в параметре должно быть.

Если поля "сотрудник" вообще нет в СКД(полях вывода, настройках), кроме как в вызове общего модуля, то может в параметр заходит Неопределено

и далее там условие

|ГДЕ
| ДанныеСотрудников.Ссылка В(&МассивСотрудников)

Я бы сделал стандартный набор на механизме представлений для кадровых данных и соединил его с со своим основным. А такой расчет - запрос в цикле и если сотров тысячи, то ой.
11. Lime_ 16.12.24 09:44 Сейчас в теме
(10) Поле Сотрудник есть в наборе данных. Хочется сделать именно через вычисляемые выражения и не трогать запрос
21. Lime_ 14.02.25 13:39 Сейчас в теме
Вопрос актуален. Можно ли получить в скд в вычисляемом выражении значение поля из строки тз

например такая запись в поле "Выражение" выдает ошибку

КадровыйУчет.КадровыеДанныеСотрудников(Истина, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Сотрудник), "Должность")[0].Должность


Ошибка: Ожидается ) ")"
22. SlavaKron 14.02.25 14:06 Сейчас в теме
(21) Это проще сделать отдельным набором-объект, который будет заполняться программно ПриКомпоновкеРезультата. Массив ссылок на сотрудников можно вычислить через сгенерированный запрос макета СКД.
23. Lime_ 14.02.25 14:42 Сейчас в теме
(22) Ок. Попробую так

Еще все таки интересно какие типы данных может возвращать поле вычисляемого выражения. Тз, массив или структуру например возможно?
Для отправки сообщения требуется регистрация/авторизация

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот