Имя: Пароль:
1C
1С v8
Итог по вычисляемому полю в СКД ☑
0 krenk
 
28.04.14
✎
15:55
Исходные данные:
Есть документ реализации. Кроме в него добавлена таблица "Исполнители", в которую могут указываться, могут нет эти самые исполнители.

Стоит задача в отчете получить количество исполнителей по разным услугам.
В наборе данных добавляю объединение по всем остальным таблицам документа и отдельный запрос к этой таблице исполнителей (в нем три поля - ссылка, ключ строки и количество исполнителей. Делаю связку по ссылке и ключу, в вычисляемых полях добавляю "КоличествоИсполнителейСтроки" с выражением ЕстьNull(КоличествоИсполнителей,1), в ресурсах указываю Сумма(КоличествоИсполнителейСтроки).

После выполнения схемы получаем:
стр1 - 1 (в табл Исполнителей стоит 1 человек)
стр2 - 2 (в табл Исполнителей стоят 2 человека)
стр3 - 1 (в табл Исполнителей стоит 1 человек)
стр4 - 1 (в табл Исполнителей пусто)
стр5 - 1 (в табл Исполнителей пусто)
стр6 - 1 (в табл Исполнителей пусто)
стр7 - 1 (в табл Исполнителей пусто)
Итого - 5 (!!???)

Ради эксперимента делал ЕстьNull(КоличествоИсполнителей,5), получилось :
стр1 - 1 (в табл Исполнителей стоит 1 человек)
стр2 - 2 (в табл Исполнителей стоят 2 человека)
стр3 - 1 (в табл Исполнителей стоит 1 человек)
стр4 - 5 (в табл Исполнителей пусто)
стр5 - 5 (в табл Исполнителей пусто)
стр6 - 5 (в табл Исполнителей пусто)
стр7 - 5 (в табл Исполнителей пусто)
Итого - 9 (!!???)

Т.е. запросы отрабатывают правильно, связка отрабатывает правильно, поле вычисляется как надо, а вот с итогом что-то непонятное.
Вот такие пироги.
Подскажите, что с этим делать?
1 krenk
 
28.04.14
✎
16:35
ап
2 barrgand
 
28.04.14
✎
16:43
(0) Сделай все одним запросом, зачем наборы то плодить..
3 krenk
 
28.04.14
✎
16:46
(1) да тут уже вопрос принципа понять почему СКД так делает. Загнать в один запрос всегда успеется :)
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший