Имя: Пароль:
1C
1С v8
v8: Получить остатки товаров на складах на каждый день
,
0 PetrPervuy
 
27.10.11
16:16
Получить остатки товаров на склдах на каждый день. как написать запрос. нужен начальный и конечный остаток в разрезе номенклатурных групп
1 ProProg
 
27.10.11
16:16
5000
2 Aleksey
 
27.10.11
16:16
т.е. поиск ничего не дал?
3 Aleksey
 
27.10.11
16:16
Можно в запросе, можно через перебор результата запроса
4 PetrPervuy
 
27.10.11
16:19
в запросе каким образом?
5 Aleksey
 
27.10.11
16:38
(4) через соединение с таблицой дат
6 Ненавижу 1С
 
гуру
27.10.11
16:38
+(1) 4500
7 ll13
 
27.10.11
16:45
(5) Если не секрет, а что за таблица такая "таблица дат" ?
8 Lys
 
27.10.11
16:46
Есть такое волшебное слово, называется "периодичность". В сочетании с "параметры виртуальной таблицы" дает ну просто потрясающий эффект...
9 Stim213
 
27.10.11
16:46
на мисте есть статья в КЗ, гугли
10 pumbaEO
 
27.10.11
16:47
11 PetrPervuy
 
27.10.11
16:47
ВЫБРАТЬ
   ТоварыНаСкладахОстаткиИОбороты.Номенклатура.НоменклатурнаяГруппа,
   ТоварыНаСкладахОстаткиИОбороты.Период,
   СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
   СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, День, , Номенклатура.НоменклатурнаяГруппа = &НоменклатурнаяГруппа) КАК ТоварыНаСкладахОстаткиИОбороты

СГРУППИРОВАТЬ ПО
   ТоварыНаСкладахОстаткиИОбороты.Период,
   ТоварыНаСкладахОстаткиИОбороты.Номенклатура.НоменклатурнаяГруппа
12 zak555
 
27.10.11
16:47
3000
13 PetrPervuy
 
27.10.11
16:47
получается бред а не результат
14 zak555
 
27.10.11
16:47
15 Stim213
 
27.10.11
16:49
1000р
16 pumbaEO
 
27.10.11
16:50
Демпинг: пиво.
17 Lys
 
27.10.11
16:51
(16) ФАС натравим, изыди.
18 Axel2009
 
27.10.11
16:51
вот так и работают за тарелку супа
19 pumbaEO
 
27.10.11
16:52
так кушать хочется. Я же на логан (1) не собираю. Всего лишь тарелочку горячего вкусного супчика.
20 PetrPervuy
 
27.10.11
16:52
26.09.2011 0:00:00    370 756,000    370 604,000
27.09.2011 0:00:00    7 515,000    7 387,000
28.09.2011 0:00:00    370 476,000    370 476,000

результат неправильный
21 zak555
 
27.10.11
16:53
(17) фас без закинутых денежек не работает
22 Axel2009
 
27.10.11
16:54
(19) вот так и докатишься, что будешь стоять на Ярославском шоссе с табличкой "1С"
23 Stim213
 
27.10.11
16:55
(22) +100 "Пишу за еду"
24 zak555
 
27.10.11
16:57
(22) там только абреки-горные
25 pumbaEO
 
27.10.11
16:57
(20) в (10) смотри, все работает.
(22) и будут бухгалтерши снимать и в извращенной форме эту "1С" использовать :)
26 ProProg
 
27.10.11
17:02
|        ВЫБРАТЬ
   |            НоменклатураСКолДней.Номенклатура,
   |            НоменклатураСКолДней.ХарактеристикаНоменклатуры,
   |            0,
   |            0,
   |            0,
   |            0,
   |            0,
   |            0,
   |            0,
   |            0,
   |            0,
   |            0,
   |            СУММА(НоменклатураСКолДней.КоличествоДнейВПродаже),
   |            0,
   |            0,
   |            0
   |        ИЗ
   |            (ВЫБРАТЬ
   |                РабочиеДниНоменклатуры.Номенклатура КАК Номенклатура,
   |                РабочиеДниНоменклатуры.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |                СУММА(ВЫБОР
   |                        КОГДА ИсторияОстатков.КоличествоКонечныйОстаток > 0
   |                                ИЛИ КОНЕЦПЕРИОДА(РабочиеДниНоменклатуры.ДатаКалендаря, ДЕНЬ) = КОНЕЦПЕРИОДА(ИсторияОстатков.Период, ДЕНЬ)
   |                                    И ИсторияОстатков.КоличествоКонечныйОстаток <= ИсторияОстатков.КоличествоРасход
   |                                    И (НЕ ИсторияОстатков.КоличествоРасход = 0)
   |                                    И ИсторияОстатков.КоличествоНачальныйОстаток > 0
   |                            ТОГДА 1
   |                        ИНАЧЕ 0
   |                    КОНЕЦ) КАК КоличествоДнейВПродаже
   |            ИЗ
   |                (ВЫБРАТЬ
   |                    ДниКалендаря.ДатаКалендаря КАК ДатаКалендаря,
   |                    МАКСИМУМ(ИсторияОстатков.Период) КАК Период,
   |                    ИсторияОстатков.Номенклатура КАК Номенклатура,
   |                    ИсторияОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры
   |                ИЗ
   |                    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК ДниКалендаря
   |                        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
   |                            ИсторияОстатков.Период КАК Период,
   |                            ИсторияОстатков.Номенклатура КАК Номенклатура,
   |                            ИсторияОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |                            СУММА(ИсторияОстатков.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
   |                            СУММА(ИсторияОстатков.КоличествоРасход) КАК КоличествоРасход,
   |                            СУММА(ИсторияОстатков.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток
   |                        ИЗ
   |                            (ВЫБРАТЬ
   |                                ТоварыНаСкладах.Период КАК Период,
   |                                ТоварыНаСкладах.Номенклатура КАК Номенклатура,
   |                                ТоварыНаСкладах.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |                                ТоварыНаСкладах.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
   |                                ТоварыНаСкладах.КоличествоРасход КАК КоличествоРасход,
   |                                ТоварыНаСкладах.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
   |                            ИЗ
   |                                РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, ДЕНЬ, , {(Номенклатура).* КАК Номенклатура, (Склад.Подразделение).* КАК Подразделение, (Склад).* КАК Склад}) КАК ТоварыНаСкладах
   |                            
   |                            ОБЪЕДИНИТЬ ВСЕ
   |                            
   |                            ВЫБРАТЬ
   |                                ТоварыВРознице.Период,
   |                                ТоварыВРознице.Номенклатура,
   |                                ТоварыВРознице.ХарактеристикаНоменклатуры,
   |                                ТоварыВРознице.КоличествоНачальныйОстаток,
   |                                ТоварыВРознице.КоличествоРасход,
   |                                ТоварыВРознице.КоличествоКонечныйОстаток
   |                            ИЗ
   |                                РегистрНакопления.ТоварыВРознице.ОстаткиИОбороты(&ДатаНач, &ДатаКон, ДЕНЬ, , {(Номенклатура).* КАК Номенклатура, (Склад.Подразделение).* КАК Подразделение, (Склад).* КАК Склад}) КАК ТоварыВРознице) КАК ИсторияОстатков
   |                        
   |                        СГРУППИРОВАТЬ ПО
   |                            ИсторияОстатков.Период,
   |                            ИсторияОстатков.Номенклатура,
   |                            ИсторияОстатков.ХарактеристикаНоменклатуры) КАК ИсторияОстатков
   |                        ПО (НАЧАЛОПЕРИОДА(ДниКалендаря.ДатаКалендаря, ДЕНЬ) >= НАЧАЛОПЕРИОДА(ИсторияОстатков.Период, ДЕНЬ))
   |                ГДЕ
   |                    ДниКалендаря.ДатаКалендаря <= &ДатаКон
   |                    И ДниКалендаря.ДатаКалендаря >= &ДатаНач
   |                    И ДниКалендаря.ВидДня В(&ПереченьРабочихДней)
   |                
   |                СГРУППИРОВАТЬ ПО
   |                    ДниКалендаря.ДатаКалендаря,
   |                    ИсторияОстатков.Номенклатура,
   |                    ИсторияОстатков.ХарактеристикаНоменклатуры) КАК РабочиеДниНоменклатуры
   |                    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
   |                        ИсторияОстатков.Период КАК Период,
   |                        ИсторияОстатков.Номенклатура КАК Номенклатура,
   |                        ИсторияОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |                        СУММА(ИсторияОстатков.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
   |                        СУММА(ИсторияОстатков.КоличествоРасход) КАК КоличествоРасход,
   |                        СУММА(ИсторияОстатков.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток
   |                    ИЗ
   |                        (ВЫБРАТЬ
   |                            ТоварыНаСкладах.Период КАК Период,
   |                            ТоварыНаСкладах.Номенклатура КАК Номенклатура,
   |                            ТоварыНаСкладах.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |                            ТоварыНаСкладах.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
   |                            ТоварыНаСкладах.КоличествоРасход КАК КоличествоРасход,
   |                            ТоварыНаСкладах.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
   |                        ИЗ
   |                            РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, ДЕНЬ, , {(Номенклатура).* КАК Номенклатура, (Склад.Подразделение).* КАК Подразделение, (Склад).* КАК Склад}) КАК ТоварыНаСкладах
   |                        
   |                        ОБЪЕДИНИТЬ ВСЕ
   |                        
   |                        ВЫБРАТЬ
   |                            ТоварыВРознице.Период,
   |                            ТоварыВРознице.Номенклатура,
   |                            ТоварыВРознице.ХарактеристикаНоменклатуры,
   |                            ТоварыВРознице.КоличествоНачальныйОстаток,
   |                            ТоварыВРознице.КоличествоРасход,
   |                            ТоварыВРознице.КоличествоКонечныйОстаток
   |                        ИЗ
   |                            РегистрНакопления.ТоварыВРознице.ОстаткиИОбороты(&ДатаНач, &ДатаКон, ДЕНЬ, , {(Номенклатура).* КАК Номенклатура, (Склад.Подразделение).* КАК Подразделение, (Склад).* КАК Склад}) КАК ТоварыВРознице) КАК ИсторияОстатков
   |                    
   |                    СГРУППИРОВАТЬ ПО
   |                        ИсторияОстатков.Период,
   |                        ИсторияОстатков.Номенклатура,
   |                        ИсторияОстатков.ХарактеристикаНоменклатуры) КАК ИсторияОстатков
   |                    ПО РабочиеДниНоменклатуры.Период = ИсторияОстатков.Период
   |                        И РабочиеДниНоменклатуры.Номенклатура = ИсторияОстатков.Номенклатура
   |                        И РабочиеДниНоменклатуры.ХарактеристикаНоменклатуры = ИсторияОстатков.ХарактеристикаНоменклатуры
   |            
   |            СГРУППИРОВАТЬ ПО
   |                РабочиеДниНоменклатуры.Номенклатура,
   |                РабочиеДниНоменклатуры.ХарактеристикаНоменклатуры) КАК НоменклатураСКолДней
   |        
   |        СГРУППИРОВАТЬ ПО
   |            НоменклатураСКолДней.Номенклатура,
   |            НоменклатураСКолДней.ХарактеристикаНоменклатуры
27 ProProg
 
27.10.11
17:03
+(26) с тебя 5000 рублей
28 Stim213
 
27.10.11
17:04
(27) а сколько с меня, за то, что я посмотрел?..
29 zak555
 
27.10.11
17:04
маня, у тебя сколько ников ?
30 Aleksey
 
27.10.11
17:49
(8) Да но Выгрузкой ТЗ не получишь, только перебором результата
31 PetrPervuy
 
27.10.11
18:52
проблем с присоединением дат нет, но мочему то остатки на конец дня не соответствуют остатку на начало дня. Не продавалось столько
26.09.2011 0:00:00    370 756,000    370 604,000
27.09.2011 0:00:00    7 515,000    7 387,000
28.09.2011 0:00:00    370 476,000    370 476,000
32 PetrPervuy
 
27.10.11
19:03
55+
33 zak555
 
27.10.11
19:08
(30) а в дерево ?
34 PetrPervuy
 
27.10.11
19:10
ВЫБРАТЬ
   ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.НоменклатурнаяГруппа КАК НоменклатураНоменклатурнаяГруппа,
   ПартииТоваровНаСкладахОстаткиИОбороты.Период КАК Период,
   ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
   ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
   ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура
ИЗ
   РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, День, , Номенклатура.НоменклатурнаяГруппа = &НоменклатурнаяГруппа) КАК ПартииТоваровНаСкладахОстаткиИОбороты

УПОРЯДОЧИТЬ ПО
   Период,
   НоменклатураНоменклатурнаяГруппа
ИТОГИ
   СУММА(КоличествоНачальныйОстаток),
   СУММА(КоличествоКонечныйОстаток)
ПО
   НоменклатураНоменклатурнаяГруппа,
   Период ПЕРИОДАМИ(ДЕНЬ, &ДатаНач, &ДатаКон)

Если таким запросом то получается все хорошо, но мне надо использовать в подзапросе и нужны номенклатурные группы, а не номенклатуры
35 Morphius
 
27.10.11
19:27
(34)Что значит использовать в подзапросе? Выборка=Запрос.Выполнить().Выбрать(ОбходРезултьтатаЗапроса.ПоГруппировкам,"НоменклатураНоменклатурнаяГруппа");
36 ProProg
 
27.10.11
19:41
(34) сам подумай что ты полушишь по группам - бред.
по каждой номенклатуре в группе что с днями получится? если сложение то будет цифра какой то бредней.
37 ProProg
 
27.10.11
19:42
а вообще если по группам тогда используй два вложенных запроса.
верхний запрос будет по группе получать, а вложенный по номенклатурам.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой