|
Виртуальная таблица остаткииобороты | ☑ | ||
---|---|---|---|---|
0
Путник_М
29.03.12
✎
15:10
|
Добрый день! Как заставить виртуальную таблицу остаткииобороты регистра накопления выдавать остатки на каждый день из заданного периода независимо от того было в день движение или нет?
|
|||
1
Путник_М
29.03.12
✎
15:10
|
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Склад, ТоварыНаСкладахОстаткиИОбороты.Период, ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток, ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток, ВЫБОР КОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток > 10 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК ПризнакПривышенияЛимита ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты( &Нач, &Кон, День, , Склад.ТипСклада = ЗНАЧЕНИЕ(Справочник.ТипыСкладов.Ремонт) ИЛИ Склад.ТипСклада = ЗНАЧЕНИЕ(Справочник.ТипыСкладов.РекламацияРемонт)) КАК ТоварыНаСкладахОстаткиИОбороты |
|||
2
Deon
29.03.12
✎
15:11
|
По-моему никак. Надо с табличкой со списком дат объединять. Но я могу и ошибаться
|
|||
3
Путник_М
29.03.12
✎
15:11
|
Мне нужно подсчитать сколько дней из периода было превышение лимита (КАК ПризнакПривышенияЛимита)
|
|||
4
rs_trade
29.03.12
✎
15:13
|
(3) соединяй со смписком дат на каждый день и считай
|
|||
5
Fragster
гуру
29.03.12
✎
15:13
|
(3) а зачем для этого знать каждый день, когда оно было? мы знаем, когда оно появилось, знаем, когда пропало, получаем разность дат...
|
|||
6
Fragster
гуру
29.03.12
✎
15:13
|
(4) нафига?
|
|||
7
Путник_М
29.03.12
✎
15:13
|
(2) Короче мудрить надо
|
|||
8
Deon
29.03.12
✎
15:13
|
(3) И сделать это нужно одним запросом для красоты исполнения?
|
|||
9
Путник_М
29.03.12
✎
15:14
|
(8) да
|
|||
10
Deon
29.03.12
✎
15:14
|
Задача-то популярная: Определить кол-во дней, когда товар был на складе.
|
|||
11
Путник_М
29.03.12
✎
15:15
|
(5) Да буду мудрить
|
|||
12
Путник_М
29.03.12
✎
15:16
|
(10) Типа, только заданный лимит
|
|||
13
Fragster
гуру
29.03.12
✎
15:19
|
500 рублей мне и можно не мудрить
|
|||
14
Deon
29.03.12
✎
15:24
|
(13) Одним запросом без объединений? )
|
|||
15
Путник_М
29.03.12
✎
15:24
|
(14) Ага
|
|||
16
Путник_М
29.03.12
✎
15:25
|
(13) Спасибо за предложение... Сам щя сделаю из любви к искусству
|
|||
17
Deon
29.03.12
✎
15:25
|
(14) без *соединений
|
|||
18
ssh2006
29.03.12
✎
15:25
|
(0) вот в помощь пример. Подсчитывается какое количество и какой период находился товар в резерве. Про разность дат уже писали
ВЫБРАТЬ ТоварыВРезервеНаСкладахОстаткиИОбороты.Период, ТоварыВРезервеНаСкладахОстаткиИОбороты.ДокументРезерва КАК ЗаказПокупателя, ТоварыВРезервеНаСкладахОстаткиИОбороты.Номенклатура, ТоварыВРезервеНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры, ТоварыВРезервеНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток, ТоварыВРезервеНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток ПОМЕСТИТЬ Таб1 ИЗ РегистрНакопления.ТоварыВРезервеНаСкладах.ОстаткиИОбороты(&НачалоПериода, ДОБАВИТЬКДАТЕ(&КонецПериода, ДЕНЬ, 1), День, ДвиженияИГраницыПериода, ДокументРезерва ССЫЛКА Документ.ЗаказПокупателя {(ДокументРезерва) КАК ЗаказПокупателя, (Номенклатура) КАК Номенклатура, (ДокументРезерва.Контрагент) КАК Контрагент, (ДокументРезерва.Контрагент.ОсновнойМенеджерПокупателя) КАК ОсновнойМенеджерПокупателя}) КАК ТоварыВРезервеНаСкладахОстаткиИОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Таб1.ЗаказПокупателя, Таб1.Номенклатура, Таб1.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, Таб1.Период КАК ПериодС, МИНИМУМ(Таб11.Период) КАК ПериодДо, Таб1.КоличествоКонечныйОстаток КАК Количество ПОМЕСТИТЬ Таб2 ИЗ Таб1 КАК Таб1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таб1 КАК Таб11 ПО Таб1.Номенклатура = Таб11.Номенклатура И Таб1.ХарактеристикаНоменклатуры = Таб11.ХарактеристикаНоменклатуры И Таб1.Период < Таб11.Период И Таб1.ЗаказПокупателя = Таб11.ЗаказПокупателя СГРУППИРОВАТЬ ПО Таб1.Номенклатура, Таб1.ХарактеристикаНоменклатуры, Таб1.Период, Таб1.КоличествоКонечныйОстаток, Таб1.ЗаказПокупателя |
|||
19
Путник_М
29.03.12
✎
15:28
|
(18) Спасибо пригодится!))
|
|||
20
Fragster
гуру
29.03.12
✎
15:29
|
(14)(17) с соединениями, но без таблиц даты
|
|||
21
Deon
29.03.12
✎
15:32
|
(20) Как в (18) Соединением таблицы к самой себе?
|
|||
22
Fragster
гуру
29.03.12
✎
15:33
|
(21) ну, типа того
|
|||
23
Sandy_S
29.03.12
✎
15:34
|
v8: Получение в запросе всех периодов из указанного интервала...
|
|||
24
Sandy_S
29.03.12
✎
15:35
|
||||
25
Fragster
гуру
29.03.12
✎
15:35
|
(24) для решения задачи не нужна таблица со всеми периодами указанного интервала.
|
|||
26
Deon
29.03.12
✎
15:37
|
Блин, хочу без соединений, но видимо никак )
|
|||
27
Путник_М
30.03.12
✎
11:45
|
Приветствую! Всем спасибо получилось!
Сделал вот так: ВЫБРАТЬ ВложенныйЗапрос1.Склад КАК Склад, СУММА(ВЫБОР КОГДА ВложенныйЗапрос1.КоличествоКонечныйОстаток < 40 ИЛИ ВложенныйЗапрос1.КоличествоКонечныйОстаток = 40 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ) КАК КоичествоДнейСНормой ПОМЕСТИТЬ Вт_ВыполнениеЛимитаОстатков ИЗ (ВЫБРАТЬ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК Период, ВложенныйЗапрос.Склад.Родитель.Родитель КАК Склад, СУММА(ВложенныйЗапрос.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ВложенныйЗапрос.Склад КАК Склад, ВложенныйЗапрос.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток, ВложенныйЗапрос.ДатаС КАК ДатаС, ВложенныйЗапрос.ДатаПо КАК ДатаПо ИЗ (ВЫБРАТЬ Остатки_1.Период КАК ДатаС, МИНИМУМ(ВЫБОР КОГДА Остатки_2.Период ЕСТЬ NULL ТОГДА &Кон ИНАЧЕ ДОБАВИТЬКДАТЕ(Остатки_2.Период, ДЕНЬ, -1) КОНЕЦ) КАК ДатаПо, Остатки_1.Склад КАК Склад, Остатки_1.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток ИЗ (ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад, ТоварыНаСкладахОстаткиИОбороты.Период КАК Период, ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты( &Нач, &Кон, День, , Склад.ТипСклада = ЗНАЧЕНИЕ(Справочник.ТипыСкладов.Ремонт) ИЛИ Склад.ТипСклада = ЗНАЧЕНИЕ(Справочник.ТипыСкладов.РекламацияРемонт)) КАК ТоварыНаСкладахОстаткиИОбороты) КАК Остатки_1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад, ТоварыНаСкладахОстаткиИОбороты.Период КАК Период ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты( &Нач, &Кон, День, , Склад.ТипСклада = ЗНАЧЕНИЕ(Справочник.ТипыСкладов.Ремонт) ИЛИ Склад.ТипСклада = ЗНАЧЕНИЕ(Справочник.ТипыСкладов.РекламацияРемонт)) КАК ТоварыНаСкладахОстаткиИОбороты) КАК Остатки_2 ПО Остатки_1.Склад = Остатки_2.Склад И Остатки_1.Период < Остатки_2.Период СГРУППИРОВАТЬ ПО Остатки_1.Склад, Остатки_1.Период, Остатки_1.КоличествоКонечныйОстаток) КАК ВложенныйЗапрос) КАК ВложенныйЗапрос ПО (РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ ВложенныйЗапрос.ДатаС И ВложенныйЗапрос.ДатаПо) ГДЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря >= &Нач И РегламентированныйПроизводственныйКалендарь.ДатаКалендаря <= &Кон СГРУППИРОВАТЬ ПО РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, ВложенныйЗапрос.Склад.Родитель.Родитель) КАК ВложенныйЗапрос1 СГРУППИРОВАТЬ ПО ВложенныйЗапрос1.Склад ; |
|||
28
Fragster
гуру
30.03.12
✎
11:50
|
(27) жесть
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |