|
Остатки на даты из ТЧ | ☑ | ||
---|---|---|---|---|
0
Марина Викторовна
27.10.11
✎
11:18
|
Наверное уже рассматривалось, но я для себя решения не нашла(
У меня документ, в ТЧ номенклатура и дата отгрузки. Как получить остатки номенклатуры на каждую дату указанную в тч? даты разные |
|||
1
ptiz
27.10.11
✎
11:19
|
Запросами.
|
|||
2
Ненавижу 1С
гуру
27.10.11
✎
11:19
|
||||
3
DrShad
27.10.11
✎
11:20
|
(0) срочно замуж
|
|||
4
Mort
27.10.11
✎
11:25
|
Начать стоит думаю с Книга знаний: Срез последних на каждую дату в запросе
|
|||
5
Ненавижу 1С
гуру
27.10.11
✎
11:26
|
(4) немного не то
|
|||
6
Mort
27.10.11
✎
11:28
|
(5) Какая разница курсы валют или остатки? Остатки нужны не на каждую дату как в (2), а по определенному набору из запроса.
|
|||
7
ptiz
27.10.11
✎
11:30
|
Подытожу.
Берешь остатки на мин.дату из таблицы + прибавляешь количество из таблицы движений (от мин.даты) соединяя движения с таблицей товаров условием по: движения.товар = таблица.товар и движения.Период < таблца.ДатаВремяОстатков |
|||
8
Ненавижу 1С
гуру
27.10.11
✎
11:30
|
(6) для начального уровня это разные вещи ))
|
|||
9
Марина Викторовна
27.10.11
✎
11:32
|
Я счас вот так сделала
ВЫБРАТЬ ЗаказКлиентаТовары.Номенклатура, МАКСИМУМ(ЗаказКлиентаТовары.Количество) КАК Количество, ЗаказКлиентаТовары.ДатаОтгрузки, ЗаказКлиентаТовары.Склад, СУММА(СвободныеОстатки.ВНаличии - СвободныеОстатки.ВРезерве) КАК Поле1 ИЗ Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки КАК СвободныеОстатки ПО ЗаказКлиентаТовары.ДатаОтгрузки > СвободныеОстатки.Период И ЗаказКлиентаТовары.Номенклатура = СвободныеОстатки.Номенклатура И ЗаказКлиентаТовары.Склад = СвободныеОстатки.Склад ГДЕ ЗаказКлиентаТовары.Ссылка = &Ссылка И СвободныеОстатки.Регистратор <> &Ссылка СГРУППИРОВАТЬ ПО ЗаказКлиентаТовары.Номенклатура, ЗаказКлиентаТовары.ДатаОтгрузки, ЗаказКлиентаТовары.Склад вроде показывает то что нужно, но мне кажется, это как то криво( |
|||
10
Марина Викторовна
27.10.11
✎
11:32
|
(3) а че замуж-то??
|
|||
11
Марина Викторовна
27.10.11
✎
11:33
|
а нет, так не выйдет.... док мб и не проведен еще
|
|||
12
DrShad
27.10.11
✎
11:34
|
(9) уверена что он именно то показывает?
|
|||
13
Марина Викторовна
27.10.11
✎
11:39
|
Номенклатура Количество ДатаОтгрузки Склад Поле1
ТОвар1 12 30.10.2011 Склад 564 Товар2 1 27.10.2011 Склад 80 Количество это по документу, дата из тч, поле 1 это своб остаток. товар1 на приходе было 600, 27,10 заказ на 36 шт - правильно товар 2 приход 100, 26 заказ на 20 ши - тож правильно это что все выходит? |
|||
14
ptiz
27.10.11
✎
11:44
|
(13) Правильно. Только алгоритм этот будет всё медленнее и медленнее со временем, т.к. лопатит все движения.
|
|||
15
Gisborn
27.10.11
✎
11:45
|
Нет. Что-то не так. Ты берешь записи регистра накопления РегистрНакопления.СвободныеОстатки. А их там по условию ЗаказКлиентаТовары.ДатаОтгрузки > СвободныеОстатки.Период будет все больше и больше. Смотри (4), (6)
|
|||
16
Марина Викторовна
27.10.11
✎
12:07
|
полные остатки по периоду почитала, ниче нового не придумала(
|
|||
17
ptiz
27.10.11
✎
12:13
|
А (7) не подошло?
Можно и с другой стороны зайти: взять актуальные остатки (т.е. не указывая параметр даты остатков в вирт.таблице .Остатки() ) и вычесть движения позднее ЗаказКлиентаТовары.ДатаОтгрузки. Кстати, в алгоритме (9) не очень красиво будет в поле Количество, если в документе окажется несколько строк с одним товаром. |
|||
18
Марина Викторовна
27.10.11
✎
13:07
|
(17) я тоже подумала про неск строк, оно не работает если неск одинаковых товаров в одну дату идет...
я не совсем поняла как (7) деалется |
|||
19
Марина Викторовна
27.10.11
✎
13:41
|
Можно (7) поподробнее? Я хочу разобраться раз других вариантов нет, а вообще это в итоге должна быть печ форма к заказу
|
|||
20
ptiz
27.10.11
✎
15:05
|
Получаем 2 таблицы:
1 - остатки на минимальную дату из таб.части, эту дату надо передать в запрос как параметр 2 - движения, аналогично тому, как вы уже сделали. Отличие в том, что движения берем не с "начала времен", а за период после даты остатков Потом складываем одно с другим через "объединить все" и группируем по товарам. На выходе получается таблица с остатками на нужный момент. И её остается только присоединить к таблице документа. |
|||
21
braynt
27.10.11
✎
15:07
|
в СКД проще всего. Связать два набора
|
|||
22
Марина Викторовна
27.10.11
✎
17:43
|
|ЗаказКлиентаТовары.Номенклатура,
|ЗаказКлиентаТовары.ДатаОтгрузки, |ЗаказКлиентаТовары.Склад, |ЗаказКлиентаТовары.Количество |ПОМЕСТИТЬ ВТТовары |ИЗ | Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары |ГДЕ | ЗаказКлиентаТовары.Ссылка в (&МассивОбъектов) |СГРУППИРОВАТЬ ПО | ЗаказКлиентаТовары.Номенклатура, | ЗаказКлиентаТовары.Количество, | ЗаказКлиентаТовары.ДатаОтгрузки, | ЗаказКлиентаТовары.Склад |; |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТТовары.Номенклатура КАК Номенклатура, | ВТТовары.ДатаОтгрузки, | ВТТовары.Склад, | ВТТовары.Количество, | СУММА(ВЫБОР | КОГДА СвободныеОстатки.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | ТОГДА СвободныеОстатки.ВНаличии | ИНАЧЕ -СвободныеОстатки.ВНаличии | КОНЕЦ) - СУММА(ВЫБОР | КОГДА СвободныеОстатки.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | ТОГДА СвободныеОстатки.ВРезерве | ИНАЧЕ -СвободныеОстатки.ВРезерве | КОНЕЦ) КАК остаток | ИЗ | ВТТовары КАК ВТТовары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки КАК СвободныеОстатки | ПО ВТТовары.Номенклатура = СвободныеОстатки.Номенклатура | И ВТТовары.Склад = СвободныеОстатки.Склад | И ВТТовары.ДатаОтгрузки > СвободныеОстатки.Период |ГДЕ | СвободныеОстатки.Регистратор не в (&МассивОбъектов) | |СГРУППИРОВАТЬ ПО | ВТТовары.Номенклатура, | ВТТовары.ДатаОтгрузки, | ВТТовары.Склад, | ВТТовары.Количество |УПОРЯДОЧИТЬ ПО | Номенклатура"; вот так сделала вроде работает все |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |