|
Запрос по остаткам, продажам и еще много чего | ☑ | ||
---|---|---|---|---|
0
vikki
16.10.16
✎
20:42
|
Очень нужна помощь в написании запроса. Суть такова, в УТ 11 в справочнике Номенклатура заведен доп реквизит числовой. На дату формирования отчета отбираются номенклатурные позиции на остатке и рассчитывается некая дата отсчета, как дата отчета минус этот числовой доп. реквизит. С этим проблем нет, а вот дальше необходимо отобрать начальные остатки на полученную дату отсчета (получается у каждой номенклатурной позиции своя), продажи, списания и перемещения за период с даты отсчета по дату отчета. То есть полученную дату отсчета и номенклатуру нужно использовать дальше в качестве параметров. Можно конечно перебирать в цикле полученный результат первого запроса и по каждой номенклатурной позиции отдельным запросом получать начальный остаток, продажи, списания и перемещения. Но хотелось бы обойтись одним запросом...Помогите реализовать, плиз
|
|||
1
Krabb
16.10.16
✎
21:07
|
Если я правильно понял тчо ты хочтешь, то это сделано в ведомости товаров на складах
|
|||
2
vikki
16.10.16
✎
21:11
|
(1) ведомомсть товаров на складах это начальное сальдо, оборот, конечное сальдо на один и тот же период по всем номенклатурным позициям, у меня у каждой номенклатурной позиции свой период получается, точнее дата конечная у всех одинаковая - это дата отчета, а вот начальная у каждой позиции своя
|
|||
3
Krabb
16.10.16
✎
21:14
|
(2) Не моё дело конечно, но зачем???
|
|||
4
vikki
16.10.16
✎
21:19
|
(3) Числовой показатель в номенклатуре это норма оборачиваемости дней товарной позиции, из начального остатка вычитаются продажи, списания и перемещения, тоже по определенному условию (складам), затем все это умножается на цену и на определенный коэффициент, получаем штрафные значения для менеджеров...Алгоритм не мой, так хочет руководство...штрафовать за заказываемый менеджерами и не проданный товар
|
|||
5
FireAlex
16.10.16
✎
21:20
|
используй тета-соединение.
|
|||
6
vikki
16.10.16
✎
21:26
|
(5) это внутреннее соединение? что с чем соединять? у меня в голове только один алгоритм запроса: первым пакетом получаю первоначальные данные: остатки на дату отчета, номенклатуру соответственно, дату отсчета, исходя из нормы оборачиваемости, вторым пакетом начальные остатки из ТоварыНаСкладахОстатки...и соответственно дата начальных остатков это дата отсчета предыдущего пакета...как ее туда передать? ну и далее пакет продажи, пакет перемещения, пакет списания...
|
|||
7
vikki
16.10.16
✎
21:30
|
конечно зациклена на одном решении...видимо в том и проблема(((
|
|||
8
Cyberhawk
16.10.16
✎
21:31
|
Срез последних на каждую дату в СКД в поиск
|
|||
9
vikki
16.10.16
✎
21:38
|
(8) что значит на каждую? на каждую дату в ЗАДАННОМ периоде, который заранее известен...в том то и дело, что мне не нужно на каждую дату, и период-то свой у каждой позиции, изначально я знаю только конечную дату, это дата отчета(
|
|||
10
mikecool
16.10.16
✎
21:42
|
(8) +1
сегодня только писал отчет, еле поиском нашел )) |
|||
11
vikki
16.10.16
✎
21:44
|
(10) умными мыслями и воплощением поделитесь?
|
|||
12
Cyberhawk
16.10.16
✎
21:48
|
(9) Надо не думать, а просто сделать: https://www.google.ru/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=Срез%20последних%20на%20каждую%20дату%20в%20СКД
|
|||
13
mikecool
16.10.16
✎
21:48
|
(11) главное читай вдумчиво и не забывай снимать автозаполнение, я на нем и промаялся час
|
|||
14
Cyberhawk
16.10.16
✎
21:51
|
(13) И с автозаполнением вроде работает
|
|||
15
mikecool
16.10.16
✎
21:52
|
(14) если параметр период - то могут быть глюки
|
|||
16
mikecool
16.10.16
✎
21:53
|
+15 при использовании в ВТ
|
|||
17
vikki
16.10.16
✎
21:55
|
(12) я умею пользоваться поиском...в том то и дело, что везде идет регистр сведений в примере, а мне надо накоплений, как я там по периоду соединение сделаю
|
|||
18
vikki
16.10.16
✎
22:00
|
может я непонятно написала, не знаю...но мне не нужны остатки на каждую дату заданного периода по всем номенклатурным позициям...
|
|||
19
vikki
16.10.16
✎
22:01
|
у меня у каждой номенклатурной позиции своя дата получения остатков, она одна
|
|||
20
Cyberhawk
16.10.16
✎
22:09
|
В первом наборе данных получаешь для каждой строки свою дату среза (насколько понял, это дата окончания отчета минус число дней для конкретного товара), передаешь эту дату (через условие связи наборов данных) во второй набор данных
|
|||
21
Krabb
16.10.16
✎
22:09
|
(18) (19) Так в (12) же то что нужно, только в примере с инфостарта цена а у тебя будут отстатки.
(17) У виртуальных таблиц регистров накоплений тоже есть НачалоПериода и КонецПериода. НачалоПериода ты можешь вычислить прямо в запросе а не передавать параметром |
|||
22
vikki
16.10.16
✎
22:20
|
(21) да, я все и вычисляю, я не понимаю как присвоить НачалуПериода вычисленную дату...
(20)передаешь эту дату (через условие связи наборов данных) - да со стороны первого завпроса это вычисленная дата, а со стороны второго запроса, чему я ее приравняю? я вот этого не могу понять...нет у меня в регистре по остаткам поля период...или я не туда смотрю |
|||
23
Krabb
16.10.16
✎
22:35
|
(22) Со стороны первого запроса не надо ничего присваивать, вычисляешь НачалоПериода прямо в самом запросе.
Со стороны второго запроса НачалоПериода у тебя будет начало дня даты полученной на выходе из первого запроса, а КонецПериода соответственно конец дня. Гуру, поправьте если неправильно объясняю |
|||
24
vikki
16.10.16
✎
22:39
|
(23) вы мне про СКД???? у меня обработка, часть данных берется из другой базы, я не понимаю как в этом случае СКД можно использовать, мне просто запрос нужен(((
|
|||
25
vikki
16.10.16
✎
22:41
|
есть дата перехода с одной программы на другую, соответственно часть недостающих данных в этой обработке берет по сом-соединению из другой базы...
|
|||
26
Cyberhawk
16.10.16
✎
22:46
|
(22) " со стороны второго запроса, чему я ее приравняю? я вот этого не могу понять...нет у меня в регистре по остаткам поля период" // Во втором наборе задаешь параметр виртуальной таблицы "НачалоПериода", обозвав произвольным именем, например, &ДатаСрезаНачалаПериода, а в связи наборов указываешь это вот поле с этим вот произвольным именем. То же самое, что и поле "Дата" на этой картинке: http://1cskd.ru/wp-content/uploads/2010/10/4.png
|
|||
27
Krabb
16.10.16
✎
22:53
|
(24) Так в статье есть пример и для запроса
|
|||
28
Krabb
16.10.16
✎
22:56
|
Можно, конечно, сделать всё одним запросом: вычислить минимальное значение начала периода для отбираемой номенклатуры, передать его в запрос и получил для всей номенклатуры движения начиная с этой даты, а потом в результате запроса очистить ячейки с остатками на дату меньшую чем начало периода анализа для данной конкретной номенклатуры. Это, наверное, будет быстрее чем запрос в цикле, но все равно как-то коряво
|
|||
29
vikki
16.10.16
✎
23:01
|
(26) мне не СКД(((
(28) да вот именно, были бы все данные в одной базе, было бы проще... |
|||
30
Cyberhawk
16.10.16
✎
23:03
|
(29) Чем СКД не устраивает? Открой для себя вывод не в табличный документ, а в коллекцию
|
|||
31
Krabb
16.10.16
✎
23:04
|
(29) В статье на которую ссылается (26) есть пример и для одного запроса с вложенными запросами.
Если данные в разных базах почему бы их не синхронизировать? |
|||
32
Homer
16.10.16
✎
23:08
|
(0) а в чем проблема!? строишь таблицу начальных остатков на 10 лет(примерно) в запросе, а уж приход и расход посчитать можно!!! если не можешь за вознаграждение напишу))
|
|||
33
vikki
16.10.16
✎
23:10
|
(31) что значит синхронизировать? вели учет в одной базе, перенесли остатки, стали вести в другой...
|
|||
34
vikki
16.10.16
✎
23:10
|
тут есть дата перехода, третья дата еще есть между датой отсчета и датой отчета
|
|||
35
vikki
16.10.16
✎
23:12
|
(32) во первых на 10 то лет не надо, там максимальный строк оборачиваемости 150 дней...а во вторых суть не просто в начальных остатках
|
|||
36
Krabb
16.10.16
✎
23:15
|
(33) (35) Проблема в том что переход состоялся менее 150 дней назад и в новой базе не вся информация об оборотах?
Почему в этом случае не ввести в новой базе остатки на дату перехода минус 150 дней и перенести документы движения за эти 150 дней? |
|||
37
Homer
16.10.16
✎
23:15
|
как я понял нужна оборачиваемость номенклатуры за определенный период уникальный для каждой номенклатуры
|
|||
38
vikki
16.10.16
✎
23:21
|
(36) потомучто ту базу загадили напрочь, она не обновлена три года, косяки лезут со всех сторон...я боюсь перетащить вместе с такими остатками кучу всякой бяки не нужной
|
|||
39
vikki
16.10.16
✎
23:24
|
(37) не совсем...оборачиваемость в данном случае - это доп реквизит, число в справочнике номенклатуры, от него рассчитывается дата отсчета, то есть дата отчета минус оборачиваемость и для каждой номенклатуры получаем свою эту дату отсчета, эта дата может как и входить в предел с даты перехода,тогда вся инфа в одной базе, так и быть меньше даты перехода, тогда часть инфы должна браться из другой базы...
|
|||
40
vikki
16.10.16
✎
23:28
|
(32) только если обработку целиком, тогда за вознаграждение
|
|||
41
Torquader
17.10.16
✎
02:35
|
Хороший подход - одни базу загадили, другие - обрезали, а потом возникает вопрос, а какую информацию из этой базы вообще можно получить.
А вообще прикольно - это, видимо, тот случай, когда запрос в цикле будет намного быстрее, чем запрос без цикла, так как иначе придётся сделать запрос к виртуальной таблице по максимальной длине и отбросить из него то, что не попало в "след" для текущего товара. |
|||
42
Peltzer
17.10.16
✎
07:07
|
Оборот в одной базе не может быть после переноса в другую?
Тогда просто сумма за 150 дней по двум базам сразу. |
|||
43
vikki
17.10.16
✎
12:46
|
(41) да, три года не обновляли и семеро программистов гадили...
|
|||
44
vikki
17.10.16
✎
12:46
|
(41) так и делаю((( хотелось как-то производительнее и изящнее...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |