Имя: Пароль:
1C
 
Арифметические действия в запросе СКД
0 MAPATNK2
 
naïve
18.03.19
12:04
УПП, обычные Формы.
Всем привет. Хочу написать простой запрос для определения свободных остатков товаров в ожидании.

ВЫБРАТЬ
    ЗаказыПоставщикамОстатки.ЗаказПоставщику,
    РазмещениеЗаказовПокупателейОстатки.ЗаказПокупателя,
    ЗаказыПоставщикамОстатки.КоличествоОстаток,
    РазмещениеЗаказовПокупателейОстатки.КоличествоОстаток КАК Зарезервировано,
    ЗаказыПоставщикамОстатки.Номенклатура,
    ЗаказыПоставщикамОстатки.КоличествоОстаток - РазмещениеЗаказовПокупателейОстатки.КоличествоОстаток КАК ОсталосьСвободно
ИЗ
    РегистрНакопления.ЗаказыПоставщикам.Остатки КАК ЗаказыПоставщикамОстатки
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.РазмещениеЗаказовПокупателей.Остатки КАК РазмещениеЗаказовПокупателейОстатки
        ПО ЗаказыПоставщикамОстатки.ЗаказПоставщику = РазмещениеЗаказовПокупателейОстатки.ЗаказПоставщику


После выполнения данного запроса получаю полную фигню https://yadi.sk/i/SBVBs7XhEcFVkw
Хотелось бы получать другой результат, подскажите, что необходимо добавить для такого   https://yadi.sk/i/51zKm6Z4YpG1jw      результата?
1 MAPATNK2
 
naïve
18.03.19
12:13
Как вообще в колонку "КоличествоОстаток" заносить данные "ОсталосьСвободно" из предыдущей строки?
2 MAPATNK2
 
naïve
18.03.19
12:13
Конечно, все легко сделать обработкой и табличной частью, но хотелось бы научиться делать такие запросы. Заранее спасибо всем.
3 aleks_default
 
18.03.19
12:18
Выражение для КоличествоОстаток надо сделать Максимум а не Сумма как у тебя наверное стоит
4 MAPATNK2
 
naïve
18.03.19
12:22
(3) Ну это даст только верное заполнение итога.
5 MAPATNK2
 
naïve
18.03.19
12:23
(1) а что насчет этого?
6 aleks_default
 
18.03.19
12:23
Вообще не, дело не в этом. Дело в том что в регистре Заказы поставщикам нет насколько я понимаю измерения Заказ покупателя?
7 MAPATNK2
 
naïve
18.03.19
12:25
(6) Нет. поэтому я и связал его с РазмещениеЗаказовПокупателей
8 MAPATNK2
 
naïve
18.03.19
12:25
В данном регистре указываются заказы покупателей к заказам поставщикам.
9 aleks_default
 
18.03.19
12:27
Т.е. тебе фактически нужно из остатка вычислять накопленный итог для каждой строки
10 aleks_default
 
18.03.19
12:29
Можно сделать двумя способами. Запросом и выражением компоновки
11 MAPATNK2
 
naïve
18.03.19
12:29
(9) не совсем вас понимаю. Я привел скрин выше, что хотелось бы получить. По факту мне необходимо в КоличествоОстаток помещать значение из предыдущей строки ОсталосьСвободно  - Зарезервировано (текущей строки)
12 MAPATNK2
 
naïve
18.03.19
12:30
То что способы решения моей задачи есть - я знаю. Где их найти? (10)
13 Homer
 
18.03.19
12:30
(0)может соединение надо делать по заказу, а не по ЗаказПоставщику
14 aleks_default
 
18.03.19
12:32
(13)У него в первом регистре заказа нет
15 aleks_default
 
18.03.19
12:33
ВычислитьВыражение(Выражение, Группировка, ТипРасчета, НАЧАЛО, КОНЕЦ, Сортировка, ИерархическаяСортировка, ОбработкаОдинаковыхЗначенийПорядка). Почитай про начало и конец
16 aleks_default
 
18.03.19
12:34
Но я бы сделал запросом
17 Rema Dan
 
18.03.19
12:34
(0) Выбирается измерение Номенклатура -> автоматом строки виртуальной таблицы разбиваются по номенклатуре. Соединение с виртуальной таблицей не учитывает разбивку по номенклатуре -> итоги по документам перемножаются. Включи в отчете вывод детальных записей чтобы увидеть дополнительные строчки.
18 MAPATNK2
 
naïve
18.03.19
12:40
(17) Совсем не понятно что необходимо сделать и куда смотреть. Детальных записей в данном отчете не видел. В стандартных отчетах есть такая кнопка, тут не вижу.
19 MAPATNK2
 
naïve
18.03.19
12:40
(15) Дак я и пытаюсь понять, как запросом сделать то, что я хочу.
20 aleks_default
 
18.03.19
12:42
Грубо говоря в запросе нужно сделать соединение таблицы размещенных заказов самой с собой по Таблица1.заказ.Дата=>Таблица2.Заказ.дата с группировкой по Таблица1.Заказ и суммировать Таблица2.Количество. Получишь по каждому заказу сумму зарезервированного всеми предыдущими заказами. Ну а потом все просто просто вычесть сумму накопленного итога из общего остатка.
21 Homer
 
18.03.19
12:52
(20) ну тут не все так однозначно т.к. проблемы будут при одинаковой дате заказа, Вообще это решается, ну не как автор просит "Простой запрос"
22 MAPATNK2
 
naïve
18.03.19
12:53
(21) Да я уже понял, попробую через ВычислитьВыражение.
23 Homer
 
18.03.19
12:55
(22) это приведет, на мой взгляд, не возможности пользовательской правки отчета.
24 MAPATNK2
 
naïve
18.03.19
12:56
(22) Хотя не, так не выйдет
25 aleks_default
 
18.03.19
12:56
(21)Сомневаюсь что есть заказы созданные в одну и ту же секунду, но и тут поможет сравнение по моменту времени
26 Homer
 
18.03.19
12:59
(25) я может отстал, но в запросе нельзя делать условие на момент времени)
27 aleks_default
 
18.03.19
13:04
(26)можно
28 Homer
 
18.03.19
13:11
(27) когда делал похожую задачу, что какие-то были проблемы с временем, пришлось городить.
29 MAPATNK2
 
naïve
18.03.19
13:24
(27) По вашему способу получается. Спасибо. Буду дальше доделывать.