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

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

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

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


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


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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

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