|
Туплю с запросом по ОстаткиИОбороты | ☑ | ||
---|---|---|---|---|
0
Ненавижу 1С
гуру
28.09.12
✎
12:41
|
Простейший запрос (можно с параметрами, можно без):
куда уж проще ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Период КАК Период, СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК НачОст, СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК КонОст ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , МЕСЯЦ, , ) КАК ТоварыНаСкладахОстаткиИОбороты СГРУППИРОВАТЬ ПО ТоварыНаСкладахОстаткиИОбороты.Период УПОРЯДОЧИТЬ ПО Период не равны КонОст текущего и НачОст следующего периода убираю деление на коэффициент - равны ЧЯДНТ? |
|||
1
ttk
28.09.12
✎
12:43
|
может, по номенклатуре сгруппировать?
|
|||
2
Ненавижу 1С
гуру
28.09.12
✎
12:44
|
(1) не надо мне группировать по номенклатуре
|
|||
3
acsent
28.09.12
✎
12:45
|
без сгруппирожвать равны?
|
|||
4
Classic
28.09.12
✎
12:46
|
Зачем группируешь?
|
|||
5
Sammo
28.09.12
✎
12:46
|
Навскидку (правда вечер пятницы, поэтому не уверен) - используется .Номенклатура - нявный join с номенклатурой в скулевском запросе.
Имхо, сгруппировать по номенклатуре и периоду, после чего сгруппировать по периоду |
|||
6
Ненавижу 1С
гуру
28.09.12
✎
12:47
|
мне нужны остатки по-месячно получить в целом по группе номенклатуры
|
|||
7
Ненавижу 1С
гуру
28.09.12
✎
12:48
|
(5) ну ты же понимаешь, что математически это одно и тоже, я вижу, что используется неявный JOIN
|
|||
8
Classic
28.09.12
✎
12:50
|
(6)
Навскидку. Если убираешь коэф, то динамическая таблица автоматом группирует до периодов. Если ставишь коэф - идет группировка до номенклатура, период. А здесь появляется засада. Типа, если номенклатура не двигалась в агусте, то остатков по номенклатуре за август не будет(придурошность данной таблицы), соответственно данные цифры и не бегут |
|||
9
Rovan
гуру
28.09.12
✎
12:50
|
(0) РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , МЕСЯЦ, ВОТ_ТУТ_ПОПРОБУЙ_ДРУГОЕ_ЗНАЧЕНИЕ, )
|
|||
10
acsent
28.09.12
✎
12:52
|
сделай с разворотом по номенклатуре и ты сразу увидишь где ошибка
|
|||
11
Ненавижу 1С
гуру
28.09.12
✎
12:53
|
(8) похоже так и есть, спасибо
более менее разумное объяснение |
|||
12
Sammo
28.09.12
✎
12:53
|
(7) Фигушки. Математика не всегда применима. Точно была проблема с использованием комментариев регистраторов.
И кажется был какой-то нюанс с использованием обращений к реквизитам не входящим в группировку. |
|||
13
IronDemon
28.09.12
✎
12:54
|
(2) Придется. Во ВЗ группируй. Иначе фигня останется.
|
|||
14
Classic
28.09.12
✎
12:55
|
Показываю на двух номенклатурах.
Н1 Остаток на начало 0 май - +10 август - -10 Н2 Остаток на начало 0 июнь - +30 сентябрь - -30 Без коэфов(неявная группировка только по периоду) Месяц Нач Кон май 0 10 июнь 10 40 август 40 30 сентябрь 30 0 С коэфами НН Месяц Нач Кон Н1 май 0 10 Н2 июнь 0 30 Н1 август 10 0 Н2 сентябрь 30 0 ГРуппируем май 0 10 июнь 0 30 август 10 0 сентябрь 30 0 |
|||
15
Ненавижу 1С
гуру
28.09.12
✎
13:21
|
а как же получать ПОЛНЫЕ остатки?
|
|||
16
Classic
28.09.12
✎
13:36
|
(15)
Извращенно :) |
|||
17
По-читатель
28.09.12
✎
13:46
|
(15) А если:
ВЫБРАТЬ Период, НачОст/Коэф, КонОст/Коэф ИЗ (Ваш запрос без деления на коэффициент и группировки) |
|||
18
Ненавижу 1С
гуру
28.09.12
✎
13:59
|
(17) коэф у каждой номенклатуры свой
|
|||
19
Ненавижу 1С
гуру
28.09.12
✎
14:10
|
(16) это точно
ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Период КАК Период, ТоварыНаСкладахОстаткиИОбороты.Номенклатура, СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК НачОст, СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК КонОст ПОМЕСТИТЬ Основная ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачПериода, &КонПериода, Месяц, , Номенклатура В ИЕРАРХИИ (&Номенклатура)) КАК ТоварыНаСкладахОстаткиИОбороты СГРУППИРОВАТЬ ПО ТоварыНаСкладахОстаткиИОбороты.Период, ТоварыНаСкладахОстаткиИОбороты.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ Основная.Период ПОМЕСТИТЬ Периоды ИЗ Основная КАК Основная ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Основная.Номенклатура, Периоды.Период, МАКСИМУМ(Основная.Период) КАК ПериодОстатков ПОМЕСТИТЬ МаксПериоды ИЗ Периоды КАК Периоды ЛЕВОЕ СОЕДИНЕНИЕ Основная КАК Основная ПО Периоды.Период >= Основная.Период СГРУППИРОВАТЬ ПО Основная.Номенклатура, Периоды.Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МаксПериоды.Период, СУММА(ВЫБОР КОГДА МаксПериоды.Период = МаксПериоды.ПериодОстатков ТОГДА Основная.НачОст ИНАЧЕ Основная.КонОст КОНЕЦ) КАК НачОст, СУММА(Основная.КонОст) КАК КонОст ИЗ МаксПериоды КАК МаксПериоды ВНУТРЕННЕЕ СОЕДИНЕНИЕ Основная КАК Основная ПО МаксПериоды.Номенклатура = Основная.Номенклатура И МаксПериоды.ПериодОстатков = Основная.Период СГРУППИРОВАТЬ ПО МаксПериоды.Период УПОРЯДОЧИТЬ ПО МаксПериоды.Период |
|||
20
Classic
28.09.12
✎
14:12
|
(19)
Типа такого :) |
|||
21
Никола_
Питерский 28.09.12
✎
14:12
|
(19) Вот тебе и простейший запрос )))) Хм... как задачку для собеседования можно пользовать !
|
|||
22
Classic
28.09.12
✎
14:51
|
(21)
Это даже не изврат. Изврат вот он ВЫБРАТЬ ТаблицаПериодов.Период КАК Период, СУММА( ВЫБОР КОГДА ТаблицаПериодов.Период = ТаблицаПоНоменклатурам.Период ТОГДА ТаблицаПоНоменклатурам.КоличествоНачальныйОстаток ИНАЧЕ ТаблицаПоНоменклатурам.КоличествоКонечныйОстаток КОНЕЦ / ТаблицаПоНоменклатурам.Номенклатура.ЕдиницаДляОтчетов.Коэффициент ) КАК НачОст, СУММА( ТаблицаПоНоменклатурам.КоличествоКонечныйОстаток / ТаблицаПоНоменклатурам.Номенклатура.ЕдиницаДляОтчетов.Коэффициент ) КАК КонОст ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , МЕСЯЦ, , ) КАК ТаблицаПериодов ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(,, МЕСЯЦ, , ) КАК ТаблицаПоНоменклатурам ПО (ТаблицаПоНоменклатурам.Номенклатура,ТаблицаПоНоменклатурам.Период) В ( ВЫБРАТЬ ТаблицаВложенный.Номенклатура, МАКСИМУМ(ТаблицаВложенный.Период) ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(,, МЕСЯЦ, , ) КАК ТаблицаВложенный ГДЕ ТаблицаВложенный.Период <= ТаблицаПериодов.Период СГРУППИРОВАТЬ ПО ТаблицаВложенный.Номенклатура ) СГРУППИРОВАТЬ ПО ТаблицаПериодов.Период |
|||
23
Ненавижу 1С
гуру
28.09.12
✎
14:59
|
(22) кратко ))
но временными таблицами мне больше нравится |
|||
24
Classic
28.09.12
✎
15:02
|
(23)
Твой скорее всего будет быстрее. Даже если в моем ДТ в ВТ вынести. |
|||
25
hhhh
28.09.12
✎
15:20
|
(23) это вообще-то фича от фирмы 1С: если простое поле остатка, то остатки нормально берутся, если там не поле, а формула, то тупо всё суммируется.
То есть типа искусственный интеллект: платформа по внешнему виду поля распознает - это поле остатка или поле оборотов и принимает решение. |
|||
26
Ненавижу 1С
гуру
29.09.12
✎
05:56
|
(25) ты так написал как будто что-тот стало ясно до запятой, когда препроцессор понимает, а когда нет?
|
|||
27
Ненавижу 1С
гуру
29.09.12
✎
06:18
|
(12) Математика применима всегда, остальное от лукавого и гуманитариев))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |