Имя: Пароль:
1C
1С v8
Как в запросе или СКД распределить суммарный остаток
🠗 (Волшебник 16.08.2024 12:54)
,
0 tciban
 
15.08.24
09:49
Уважаемые коллеги! Подскажите пожалуйста как сделать в запросе или с помощью СКД следующее - мы имеем таблицу, полученную запросом, в ней заказы, количество номенклатуры в заказе и общий остаток товара по этой номенклатуре который меньше, чем суммарное количество по заказам. Можно ли как то распределить остаток на складе по заказам начиная с самого последнего?
1 Волшебник
 
15.08.24
09:52
циклом
2 Волшебник
 
15.08.24
09:54
Программирование — это фантазия + умение крутить циклы (с) Композитор
3 Shurjk
 
15.08.24
09:57
(0) Посчитай таблицу с коэффициентами распределения и по ней распределяй.
4 Мультук
 
гуру
15.08.24
10:17
(0)

Что такое распределить ?

ЗаказВаси - 5 шт
ЗаказМаши - 10 шт
ЗаказПети - 7 шт


А на складе всего осталось 8 шт.
И как должно выглядить распределение, учитывая то, что
а) заказПети последний
б) а у Маши гм "Лапки"
в) А Вася VIP-клиент и должен получить свои 5 шт любыми средствами


P.S.
У вас не работает контроль остатков ?
5 tciban
 
15.08.24
10:45
(4) Ну пп Б и В не учитываем, Значит пете 7 шт. и Маше - 1 шт. Отчет для аналитики.
6 tciban
 
15.08.24
10:48
(1) Я понимаю, что можно выполнить запрос, потом обработать в коде результат, потом поместить полученную таблицу в СКД и вывести отчет. Но есть вроде способы решить все в рамках запроса или запрос + функции СКД, вот их то я и ищу
7 Волшебник
 
15.08.24
10:48
(6) Перестаньте искать чёрную кошку в тёмной комнате, тем более её там нет.
8 tciban
 
15.08.24
10:48
(3) А как коэффициенты? Мне не пропорционально надо, а ЛИФО
9 tciban
 
15.08.24
10:50
(7) ну вроде что то похожее есть на инфостарте. Пытаюсь понять.
10 Мультук
 
гуру
15.08.24
11:00
(9)

Имхо это решается через ВычислитьВыражение и "ВЫБОР"

ВычислитьВыражение("Сумма(Остаток)",,,"Последняя","Текущая")

гуглим
1С СКД НарастающийИтог
16 DrZombi
 
гуру
16.08.24
06:27
(0) Приехали... уже отчетом остатки раскидываем, при этом виртуальные... мдя.. маразм крепчал... Весело будет, когда кто-то еще группировки поменяет в отчете :)


Да.. можно, сделай Отчет СКД выполняемый в два этапа.
1. Вы просто запросом формируете ваши остатки в цикле, т.е. Запросом получаете первый вариант отчета и в цикле заполняете Таблицу значения.

2. Полученную Таблицу значений используете в СКД, вуаля :)
17 DrZombi
 
гуру
16.08.24
06:29
(10) Не получится, в (0) же надо виртуально раскидать сумму остатки по номенклатурАМ, со склада. На складе 1000 шт, у вас в отчете 30 позиций номенклатуры по 100 шт каждая.

Задача раскидать остаток по товарам, если я правильно уловил смысл в (0) :)
18 DrZombi
 
гуру
16.08.24
06:30
(11) А порядок номенклатуры, вы будете брать по Фифо или по азбуке от а до я... :)
19 DrZombi
 
гуру
16.08.24
06:31
+ или по коду?
20 tciban
 
16.08.24
08:02
Если кому интересно - сделал, получилось. Через соединение таблицы самой с собой. Поскольку таблица не может быть большой (на самом деле задача сложнее, чем я описал и другая, но смысл такой же) то работает вполне себе быстро.
21 Ненавижу 1С
 
гуру
16.08.24
08:13
(2) циклы умирают, даже в 1С
1С:Исполнитель
Тип Обходимое
Методы: Фильтровать, Преобразовать, ГруппироватьПо и другие
22 tciban
 
16.08.24
12:51
(21) Потому что циклы в коде однозначно и сильно проигрывают альтернативным решениям в запросах.
23 Волшебник
 
16.08.24
12:52
(21) Свистните, когда в 1С появятся лямбды (стрелочные функции)
24 Мультук
 
гуру
16.08.24
12:53
(22)

... потому что в коде SQL-сервера циклов нет вообще.
Там волшебство С++
25 Волшебник
 
16.08.24
12:54
(20)(22) Чушь
Независимо от того, куда вы едете — это в гору и против ветра!