Имя: Пароль:
1C
1С v8
СКД: Выводит ЛИШНЮЮ номенклатуру по документу...
0 AlekseyMista
 
09.10.14
14:58
В отчет надо выводить только номенклатуру, по которой образовались отрицательные остатки. Группировки: День, Документ, Номенклатура. Отборы: конечный остаток < 0 и (Приход + Расход > 0).

Выводит ТОЛЬКО документы, в которых присутствуют отрицательные остатки, но в рамках документа присутствует лишняя номенклатура.

Что не так?
1 Defender aka LINN
 
09.10.14
15:02
На что отбор наложен-то?
2 AlekseyMista
 
09.10.14
15:06
Как в (0) написано: на остатки и обороты (ресурсы СКД).
3 Легат
 
09.10.14
15:14
Текст запроса и скрин итогов в студию..
4 User_Agronom
 
09.10.14
15:14
(1) Зови дежурного телепата. По фразе (2) вангую, что телепат необходим))
5 AlekseyMista
 
09.10.14
15:15
6 AlekseyMista
 
09.10.14
15:15
7 User_Agronom
 
09.10.14
15:17
(5) Ты отчёт сам мутишь или пытаешься настроить типовой?
8 AlekseyMista
 
09.10.14
15:18
9 AlekseyMista
 
09.10.14
15:18
(7) Новый отчет.
10 Легат
 
09.10.14
15:21
Что не так - это хороший вопрос. почти как "быт или не быть"..
11 User_Agronom
 
09.10.14
15:21
(8) ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
    ТоварыНаСкладахОстаткиИОбороты.Склад,
    ТоварыНаСкладахОстаткиИОбороты.Регистратор,
    НАЧАЛОПЕРИОДА(ТоварыНаСкладахОстаткиИОбороты.Период, ДЕНЬ) КАК День,
    ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток КАК КонечныйОстаток,
    ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток КАК НачальныйОстаток,
    ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход КАК Приход,
    ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход КАК Расход
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &Конец, Регистратор, Движения, ) КАК ТоварыНаСкладахОстаткиИОбороты

Вот запрос из (8)
12 User_Agronom
 
09.10.14
15:22
А зачем отбор делаешь средствами СКД? Сделай отбор в запросе.
13 AlekseyMista
 
09.10.14
15:26
(12) будет тоже самое (сначала в запросе и ограничивал, но потом изменил на отбор в СКД). Кстати, текущий способ более корректный: так советует 1с.
14 User_Agronom
 
09.10.14
15:34
(13) С точки зрения функционала
15 Ymryn
 
09.10.14
15:37
(14) с точки зрения функционала сделано все правильно. Отчет должен быть настраиваемым. А лепить подобные фильтры в сам запрос - это снижать возможность его настройки. При этом так как исходный запрос все равно перестраивается согласно отборам, то эффективность нулевая.
А вот почему он так отрабатывает, я никак понять не могу. А можете приложить как настроена группировка и ресурсы скриншотик?
16 AlekseyMista
 
09.10.14
15:37
Если в запросе "обернуть" числовые значения конструкцией ЕСТЬNULL(..), то работает лучше, но:

http://i008.radikal.ru/1410/f8/55e484b09faa.jpg
17 AlekseyMista
 
09.10.14
15:39
(15) я приложил сам отчет. Там видно все закладки.
18 Ymryn
 
09.10.14
15:41
(16) пробуйте у Конечный остаток поставить Роль - Нет роли
19 AlekseyMista
 
09.10.14
15:43
(18) Спасибо!!!

p.s. У поля "Начальный остаток" тоже пришлось снимать, потому что писал ошибку при формировании.
20 AlekseyMista
 
09.10.14
15:44
Вопрос решен.
21 Ymryn
 
09.10.14
15:45
Ну вот и славно :) Успехов в дальнейшем :)
22 AlekseyMista
 
09.10.14
15:47
А почему так сработало? :)
23 Ymryn
 
09.10.14
15:51
(22) я не смогу верно объяснить, но приблизительно суть в том, что там стояла роль остатков, которая донастраивает расчет ресурса. (Т.е на самом деле он считается не так, как записано в формуле ресурсов). Есть книжечка по СКД, там как раз объясняется как с помощью ролей получать желаемые цифры. К своему стыду, должен признать, что писать формулы в ресурсах мне показалось легче, чем разбираться с ролями, поэтому полноценно я их так и не освоил.
24 AlekseyMista
 
09.10.14
16:05
Книжка Хрусталевой "Разработка сложных отчетов в 1с: Предприятии 8", стр 384. Там ничего подобного не написано.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn