|
Запрос задваивает сумму | ☑ | ||
---|---|---|---|---|
0
WF72
04.02.13
✎
10:34
|
Был простой запрос к регистрам бухучета с отбором по определенному виду номенклатуры. Всё работало отлично, но потребовалось добавить в запрос условие исключения определенного вида документов (Требование-накладная). Для этого пришлось добавить в запрос периодичность "Регистратор", и теперь цифры по остаткам получаются задвоенные. Можно ли этого как-то избежать?
Счет в запросе - 41.04. Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ВыбРег.Субконто2 КАК Склад, | ВыбРег.Субконто1 КАК Номенклатура, | ВЫРАЗИТЬ(ВыбРег.СуммаНачальныйОстатокДт + ВыбРег.СуммаНачальныйОстатокДт * 0.18 КАК ЧИСЛО(15, 0)) КАК СуммаНачальныйОстатокДт, | ВЫРАЗИТЬ(ВыбРег.СуммаОборотДт + ВыбРег.СуммаОборотДт * 0.18 КАК ЧИСЛО(15, 0)) КАК СуммаОборотДт, | ВЫРАЗИТЬ(ВыбРег.СуммаОборотКт + ВыбРег.СуммаОборотКт * 0.18 КАК ЧИСЛО(15, 0)) КАК СуммаОборотКт, | ВЫРАЗИТЬ(ВыбРег.СуммаКонечныйОстатокДт + ВыбРег.СуммаКонечныйОстатокДт * 0.18 КАК ЧИСЛО(15, 0)) КАК СуммаКонечныйОстатокДт, | ВыбРег.КоличествоНачальныйОстатокДт КАК КоличествоНачальныйОстатокДт, | ВыбРег.КоличествоОборотДт КАК КоличествоОборотДт, | ВыбРег.КоличествоОборотКт КАК КоличествоОборотКт, | ВыбРег.КоличествоКонечныйОстатокДт КАК КоличествоКонечныйОстатокДт |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, , Счет = &ВыбСчет, , Организация = &Организация) КАК ВыбРег |ГДЕ | ВыбРег.Субконто1.ВидНоменклатуры = &Авто | И (НЕ ВыбРег.Регистратор ССЫЛКА Документ.ТребованиеНакладная) | |СГРУППИРОВАТЬ ПО | ВыбРег.Субконто1, | ВыбРег.Субконто2, | ВыбРег.СуммаНачальныйОстатокДт, | ВыбРег.СуммаОборотДт, | ВыбРег.СуммаОборотКт, | ВыбРег.СуммаКонечныйОстатокДт, | ВыбРег.КоличествоНачальныйОстатокДт, | ВыбРег.КоличествоОборотДт, | ВыбРег.КоличествоОборотКт, | ВыбРег.КоличествоКонечныйОстатокДт | |УПОРЯДОЧИТЬ ПО | Склад, | Номенклатура |ИТОГИ | СУММА(СуммаНачальныйОстатокДт), | СУММА(СуммаОборотДт), | СУММА(СуммаОборотКт), | СУММА(СуммаКонечныйОстатокДт), | СУММА(КоличествоНачальныйОстатокДт), | СУММА(КоличествоОборотДт), | СУММА(КоличествоОборотКт), | СУММА(КоличествоКонечныйОстатокДт) |ПО | ОБЩИЕ, | Склад, | Номенклатура |АВТОУПОРЯДОЧИВАНИЕ"; |
|||
1
DrShad
04.02.13
✎
10:36
|
а где суммирование по группировкам?
|
|||
2
zak555
04.02.13
✎
10:37
|
ВыбСчет -- 41.04 ?
|
|||
3
DrShad
04.02.13
✎
10:38
|
(2) что смущает?
|
|||
4
Галахад
гуру
04.02.13
✎
10:39
|
Странно, что всего лишь задвоенные.
|
|||
5
Жан Пердежон
04.02.13
✎
10:43
|
группировки убери и все ясно станет
|
|||
6
zak555
04.02.13
✎
10:43
|
(3) какие проводки с ндс в документе требовнаие-накладная ?
|
|||
7
viktor_vv
04.02.13
✎
10:49
|
(6) Так он ее и исключает.
|
|||
8
dmpl
04.02.13
✎
10:56
|
(0) Дык а зачем тебе остатки, если документы исключаешь? Начальные только с натяжкой можно считать за верные, конечные - 100% неверные.
|
|||
9
WF72
04.02.13
✎
11:25
|
(8)дело в том, что ТН тоже дает движения по сч.41.04, а оные как раз и не нужны.
(1)суммирование по группировкам ставил, ничего не изменилось. (5)группировки убрал, теперь каждая строка стала попадать в отчет дважды. да еще данные по оборотам вдруг начали попадать в остатки. что-то так смутно забрезжило, но понять все еще не могу. звиняйте за торможение, сижу весь в гипсе, боль мешает думать :( |
|||
10
WF72
04.02.13
✎
11:30
|
точнее, каждая строчка стала двоиться после того, как убрал итоги по номенклатуре.
|
|||
11
Галахад
гуру
04.02.13
✎
11:30
|
"боль мешает думать" выздаравливай давай. Нафиг эта 1с?
|
|||
12
dmpl
04.02.13
✎
11:33
|
(9) Дык когда тебе бухгалтера начнут задавать вопрос про то, почему остатки не совпадают - что ты будешь им объяснять? Не проще сказать им, что при таких условиях остатки смысла не имеют?
|
|||
13
WF72
04.02.13
✎
11:47
|
(11) спасибо за пожелание, но с одной действующей рукой больше нечем заняться :)
(12) это хотелка главбуха. значит, с тех.точки зрения задача решения не имеет? или имеет? думаю, раз такая пьянь, считать количество по регистру "товары на складах", затем левое содинение с регистром бухучета, чтобы узнать текущую цену, но опять же думаю, что выйдут теже яйца, только сбоку - ТН всё равно придется отсекать при расчете сумм. |
|||
14
Classic
04.02.13
✎
11:48
|
(0)
Что означает слово "остатки" при неучтенности одного вида регистратора? Смотри. Предположим ты таки написал нужный запрос. Без учета твоего ограничения на вид документа остатки за Декабрь такие: НачОст - 300 КонОст - 700 Твой запрос с учетом вида документа тебе выдал НачОст - 300 КонОст - 600 Какой НачОст он должен выдать за Январь? Теоретически 600. Но ты ведь ограничение на вид документа ставишь только за текущий период. Потому он тебе всегда в НачОст будет выдавать реальный остаток (700) |
|||
15
dmpl
04.02.13
✎
11:52
|
(13) Ну пусть распишут, как по их мнению должны считаться остатки. Скорее всего, они сами запутаются. Ну а дальше (если вдруг напишут) выбираешь из реальной таблицы нужное, т.к. виртуальная таблица остатков и оборотов тебе такое, скорее всего, не даст.
|
|||
16
Жан Пердежон
04.02.13
✎
12:26
|
(9) пользователи за плохой код побили?)
|
|||
17
samozvanec
04.02.13
✎
12:27
|
(0) метод дополнения выстави, сам недавно офигевал
|
|||
18
WF72
04.02.13
✎
12:38
|
(17) не, если выставить "ДвиженияИГраницыПериода" - то никакой разницы. если "Движения" - то запрос не выдает ничего.
|
|||
19
samozvanec
04.02.13
✎
12:39
|
(18) вот тебе нужны движения. а что ничего не выдает, это уже не ко мне
|
|||
20
GANR
04.02.13
✎
12:45
|
(0) Почему этот запрос вообще должен работать ???
1. агрегатные поля используются как группировки |СГРУППИРОВАТЬ ПО | ВыбРег.Субконто1, | ВыбРег.Субконто2, | ВыбРег.СуммаНачальныйОстатокДт, | ВыбРег.СуммаОборотДт, | ВыбРег.СуммаОборотКт, | ВыбРег.СуммаКонечныйОстатокДт, | ВыбРег.КоличествоНачальныйОстатокДт, | ВыбРег.КоличествоОборотДт, | ВыбРег.КоличествоОборотКт, | ВыбРег.КоличествоКонечныйОстатокДт 2. что делают отборы в секции ГДЕ??? |ГДЕ | ВыбРег.Субконто1.ВидНоменклатуры = &Авто | И (НЕ ВыбРег.Регистратор ССЫЛКА Документ.ТребованиеНакладная) |
|||
21
ssh2006
04.02.13
✎
12:47
|
(18) когда нет движений и есть остатки при методе дополнения
ДвиженияИГраницыПериода (по умолчанию) будут две записи а регистратор будет неопределено и условие И (НЕ ВыбРег.Регистратор ССЫЛКА Документ.ТребованиеНакладная) выполнится |
|||
22
Classic
04.02.13
✎
12:51
|
(17)
та плевать на метод дополнения. У него все в принципе неправильно написано. ДТ при регистраторах РН1, ТН1, РН2 выдаст РН1 50 60 ТН1 60 70 РН2 70 80 После отбора останется РН1 50 60 РН2 70 80 Хрень кароче |
|||
23
samozvanec
04.02.13
✎
12:54
|
(22) нихрена не плевать. для таблицы ОстаткиИОбороты регистра бухгалтерии по умолчанию - ДвиженияИГраницыПериода, отсюда еще одна строка и задвоение
|
|||
24
Classic
04.02.13
✎
12:56
|
(23)
В данном случае плевать. Еще одна - какая разница, будет затроение или зачетверение? |
|||
25
WF72
04.02.13
✎
13:07
|
(20) 1.мне нужна группировка по контрагенту и складу. остальное конструктор ставит сам.
2.отбирают нужные данные. где еще делать отбор? |
|||
26
GANR
04.02.13
✎
13:33
|
(25)
1. Зайди на закладку конструктора группировки и раскидай там всё, как надо. 2. В параметрах виртуальной таблица ОстаткиИОбороты задать, по крайней мере, ВыбРег.Субконто1.ВидНоменклатуры = &Авто |
|||
27
samozvanec
04.02.13
✎
13:34
|
(24) я не спорю, сам запрос тоже важен) но и на это стоит обращать внимание
|
|||
28
WF72
04.02.13
✎
14:43
|
(26) 2. это не сработает:
поле не найдено "ВыбРег.Субконто1.ВидНоменклатуры = &Авто" если ставить просто &Авто, то при исполнении запроса идет ругань на недопустимый вид субконто. |
|||
29
Classic
04.02.13
✎
14:46
|
(28)
Сработает, если ты явно задашь виды субконто. но это совсем-совсем не важно |
|||
30
sapphire
04.02.13
✎
14:50
|
|СГРУППИРОВАТЬ ПО
| ВыбРег.Субконто1, | ВыбРег.Субконто2, | ВыбРег.СуммаНачальныйОстатокДт, //ЗАЧЕМ? | ВыбРег.СуммаОборотДт, //ЗАЧЕМ? | ВыбРег.СуммаОборотКт, //ЗАЧЕМ? | ВыбРег.СуммаКонечныйОстатокДт, //ЗАЧЕМ? | ВыбРег.КоличествоНачальныйОстатокДт, //ЗАЧЕМ? | ВыбРег.КоличествоОборотДт, //ЗАЧЕМ? | ВыбРег.КоличествоОборотКт, //ЗАЧЕМ? | ВыбРег.КоличествоКонечныйОстатокДт //ЗАЧЕМ? |
|||
31
GANR
04.02.13
✎
14:54
|
(28) Субконто1.ВидНоменклатуры = &Авто
|
|||
32
WF72
04.02.13
✎
15:01
|
(31)это же вид номенклатуры, а не вид субконто. то же самое: "поле не найдено".
|
|||
33
WF72
04.02.13
✎
15:03
|
(30)дык я поначалу не воткнул все эти реквизиты в суммирование, вот мне конструктор и сотворил такую конструкцию :)))
в общем, походу придется новый регистр заводить для всей этой хрени... |
|||
34
cleaner
04.02.13
✎
15:07
|
(0) Я так понял, что остатки трогать не предполагалось,
только обороты уменьшить, исключив требование-накладную. Навскидку - вынести код запроса оборотов во вложенный запрос. Тогда все должно пойти нормально. Соответственно, выбирать во вложенном запросе только движения, остатки в нем не выбирать. |
|||
35
cleaner
04.02.13
✎
15:08
|
(33) А вот это зря, я думаю. Вроде как задача имеет решение без доработок структуры:)
|
|||
36
dmpl
04.02.13
✎
15:09
|
(34) И объяснять бухгалтерам потом почему не сходится начальный остаток + приход - расход с конечным остатком.
|
|||
37
cleaner
04.02.13
✎
15:11
|
(36) Тыкать носом в ТЗ, ИМХО:)
|
|||
38
Classic
04.02.13
✎
15:23
|
(37)
Если оно есть :) А если "сделай нам так же, но без ТребованиеНакладная", то и тыкать особо некуда |
|||
39
WF72
04.02.13
✎
15:24
|
(38) вот-вот, именно так и было :(
|
|||
40
cleaner
04.02.13
✎
15:26
|
(38)(39) Нужно тогда сделать наскальный рисунок и отнести на подпись:)
|
|||
41
Classic
04.02.13
✎
15:26
|
(39)
Я тебе всю ветку пытаюсь объяснить, чем тебе грозит подобная задача. Благо самому такая не раз ставилась :) Прежде чем программить тебе надо выяснить главный вопрос - какие остатки показывать на начало. И как бухи эти остатки на начало будут сверять |
|||
42
cleaner
04.02.13
✎
15:27
|
(41) Согласен, это та печка, от которой нужно начать плясать
|
|||
43
WF72
04.02.13
✎
15:43
|
(41) таки добился от гб ответа: остатки можно не трогать :)))
значит, придется переписать запрос - с вложением, левым соединением или объединением - посмотрю, что будет проще, т.к. вложенные запросы еще не писал. большое спасибо уважаемым коллегам за ответы. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |