|
Подскажите оптимальное решение задачи ... |
☑ |
0
MatrosoV AleXXXand_R
21.03.14
✎
07:47
|
Суть задачи - есть регистр "Товары на складах организаций", УТ 10.3. Нужно сделать перенос остатков на склады, в которых отрицательный остаток на конец дня < 0 со складов, в которых этот остаток на этот же день > 0. Делать это нужно в разрезе "организации + склада + номенклатуры + серии номенклатуры". И к примеру сделать это за год.
Я пытался данную задачу решить только 1 запросом - выполнить 1 запрос за период, потом сформировать таблицу, с каких складов на какие переместить, но он не совсем правильно отрабатывает некоторые моменты.
Можно ли тут обойтись одним запросом и потом его обработкой? Если да - что будет результатом запроса? Или делаем все как обычно - прокручиваем по дням?
|
|
1
ДенисЧ
21.03.14
✎
07:48
|
Предлагаю в запросе правильно отработать некоторые моменты...
|
|
2
MatrosoV AleXXXand_R
21.03.14
✎
07:52
|
Сложность состоит в некоторых моментах:
1) С одного склада возможно переместить на несколько, и с нескольких складов на 1 (но с этим я похоже справился)
2) Если мы закрываем первый день, у нас это отобразится на втором, а потом на третьем и т. д. дне закрытия отрицательных остатков
3) Могли быть движения дополнительного списания отрицательных остатков (это конечно ошибка в учете), к примеру - был остаток -2, и еще списывают -1, следующей датой, получается -3
ну и т.д.
(1) Прошу не писать "просто так", а прошу помочь, кто реально делал похожие задачи 1 запросом
|
|
3
MatrosoV AleXXXand_R
21.03.14
✎
07:54
|
Хотелось бы просто понять для начала - какие таблицы лучше всего получить как результат запроса. А потом я уже подумаю как это обработать в запросе. Просто может быть кто-нибудь натолкнет на мысль :)
|
|
4
jsmith82
21.03.14
✎
07:57
|
что вас всех клинит на одном запросе
|
|
5
MatrosoV AleXXXand_R
21.03.14
✎
07:58
|
(4) ИМХО
1) более оптимальный вариант по быстродействию
2) показатель хорошего кодинга
|
|
6
jsmith82
21.03.14
✎
08:05
|
(5) запрос на один день работает 1 секунду
запрос на год работает 6 минут
|
|
7
jsmith82
21.03.14
✎
08:05
|
вернее, 365 запросов
|
|
8
EugeniaK
21.03.14
✎
08:06
|
(0) Если мы говорим про разовую задачу закрытия остатков, то гораздо логичнее пройтись циклом по дням и на каждый день отдельным запросом все сформировать.
|
|
9
jsmith82
21.03.14
✎
08:07
|
у меня была более сложная задача
там ещё партии нужно было кидать и серии номенклатуры
объём документооборота адский
обработка работала около 20 минут за 2 года
|
|
10
jsmith82
21.03.14
✎
08:08
|
если ты хочешь писать 1 запрос, то это уже процедурщина
необходимо вычленить в задаче конкретный интерфейс ЯЗакрываюФигнюЗаДень()
а у тебя уже какой-то с++ пошёл
не ООПшно мыслишь
|
|
11
jsmith82
21.03.14
✎
08:08
|
в смысле дружественный класс какой-то
в общем, ты понел
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой