Вход | Регистрация
 

Арифметические действия в запросе СКД

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

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


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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует