Имя: Пароль:
1C
1С v8
СКД Отбор по вычисляемому полю
0 Марусенька
 
08.04.16
09:08
Добрый день! Платформа 8.3.5
Помогите понять, почему не работает отбор: в СКД 2 набора, соединены по номенклатуре, добавляю вычисляемое поле (для нарастающего итога) ВычислитьВыражение("Сумма(КоличествоОборотДт)",,"Группировка","Первая","Предыдущая").
Отчет работает и показывает верный результат. Условное оформление с использованием выч.поля тоже отрабатывает верно.
Но я хочу отобрать записи по условию, которое накладываю на детальные записи. И результат получается неправильный.
Покопала уже в разные стороны - и все не то. Подскажите, что я делаю не так?
Как сделать отбор по вычисляемому полю правильно? может ссылки какие-нибудь?, СП не предлагать, уже читала. Спасибо.
1 Марусенька
 
08.04.16
09:43
Ошибкапри накладывании отбора состоит в том, что например
док-т    КолОборот КолОстаток    НарастающийИтог
док1    3,500        6,560        
док2    3,500        6,560    3,5
док3    24,000        6,560    7
док4    7,500        6,560    31
док5    7,000        6,560    38,5
Док6    4,000        6,560    45,5
Док7    3,400        6,560    49,5

Отбираю НарастающийИтог<=
2 Марусенька
 
08.04.16
09:45
Пардон, отбираю НарастающийИтог <= КолОстаток, оставляет мне Док1, док2, Док6 и Док7. А должен оставить док1 и док2
3 LordCMEPTb
 
08.04.16
09:56
А если отбор на группировку накладывать? Ну то есть, чтобы он сначала детальные рассчитал, а потом уже отбросил, а не отбрасывал по мере расчета.
4 Defender aka LINN
 
08.04.16
09:59
Выведи детальные записи
5 Марусенька
 
08.04.16
10:01
(3) тогда целиком отбрасывает номенклатуру, где оборот превысил остаток.
6 Марусенька
 
08.04.16
10:03
(4) я и вывожу детальные записи - это они и есть. Применение в отборе ставлю - "После группировки или иерархия".
7 Марусенька
 
08.04.16
10:14
Такое ощущение, что отбор оставляет те записи, у которых не нарастающий итог меньше остатка, а сам оборот меньше остатка. Как такое может быть?
8 Марусенька
 
08.04.16
10:26
Переписала запрос и поместила его в один набор. Результат такой же.
9 ГеннадийУО
 
08.04.16
10:35
(8) Отбор идет не по значению, полученному в вычисляемом поле, при установке отбора это выражение вычисляется.
10 Марусенька
 
08.04.16
10:39
(9) значение вычисляемого поля для колонки этого поля и значение вычисляемого поля для отбора по выч.полю считаются по-разному? серьезно?
11 Марусенька
 
08.04.16
10:57
(9) попробовала сделать отбор по вычисляемому полю, но без ВычислитьВыражение() - работает правильно отбор. Значит проблема именно с использованием этой функции. Но без нарастающего итога мою задачу не решить. Однако если считать нарастающий итог прямо в запросе - это замедляет работу. Какая есть альтернатива?
Начинаю уже думать нехорошее и склоняться к обходу результата запроса. Есть какие-нибудь другие варианты для решения задачи наложить отбор на нарастающий итог?
12 ГеннадийУО
 
08.04.16
11:01
(11) Альтернатива - выгрузить результат СКД В ТЗ, ТЗ использовать как набор данных СКД, отбор ставить там...
13 Марусенька
 
08.04.16
11:05
(12) ну я раньше так и делала, когда мне нужно было делить регистраторы по дате на кучки, сейчас кучки ушли в прошлое и я хотела сделать красивый отбор по вычисляемому полю нарастающего итога. т.е. провести оптимизацию. Ну и вот нифига не получается. Попробую написать разработчикам, действительно ли проблема именно с применением этой функции.
14 Марусенька
 
08.04.16
11:10
Если у кого-нибудь все же есть решение с вычисляемым полем - поделитесь, пожалуйста.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший