|
Как составить запрос по остаткам | ☑ | ||
---|---|---|---|---|
0
aleks100
05.04.12
✎
08:33
|
Как составить запрос,чтобы выводилось в виде
номенклатура остсклад1, остскла2,остсклад3 |
|||
1
butterbean
05.04.12
✎
08:35
|
в СКД?
|
|||
2
aleks100
05.04.12
✎
08:36
|
обычный запрос в конструкторе
|
|||
3
butterbean
05.04.12
✎
08:37
|
(2) сделай итоги по складам
|
|||
4
Wobland
05.04.12
✎
08:39
|
(0) обратись к виртуальной таблице Остатки
|
|||
5
КМ155
05.04.12
✎
08:40
|
(2) если складов 2-3 десятка, то левое соединение
|
|||
6
aleks100
05.04.12
✎
08:42
|
(5) четыре склада
|
|||
7
КМ155
05.04.12
✎
08:44
|
(6) ну и ?
|
|||
8
Fragster
гуру
05.04.12
✎
08:45
|
а что автор 4 года делал?
|
|||
9
rinatru
05.04.12
✎
08:48
|
(8) и мне интересно...
|
|||
10
КМ155
05.04.12
✎
08:48
|
(8) сделай из топика голосовалку
|
|||
11
aleks100
05.04.12
✎
08:50
|
мне надо чтобы остсклад1, остскла2,остсклад3 отображались в виде столбцов
|
|||
12
КМ155
05.04.12
✎
08:52
|
(11) ну и что не получается ?
|
|||
13
DarKySiK
05.04.12
✎
08:53
|
(11) ВЫБОР КОГДА
|
|||
14
Gesperid
05.04.12
✎
08:53
|
(0) в общем случае никак, при конечном числе складов - соединяешь полученные остатки каждого склада по номенклатуре
|
|||
15
КМ155
05.04.12
✎
09:01
|
(14) уже было в (5)
проще через UNION ВЫБРАТЬ ВложенныйЗапрос.Склад, ВложенныйЗапрос.Номенклатура, СУММА(ВложенныйЗапрос.Склад1) КАК Склад1, СУММА(ВложенныйЗапрос.Склад2) КАК Склад2, СУММА(ВложенныйЗапрос.Склад3) КАК Склад3, СУММА(ВложенныйЗапрос.Склад4) КАК Склад4 ИЗ (ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад КАК Склад, ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстатки.КоличествоОстаток КАК Склад1, 0 КАК Склад2, 0 КАК Склад3, 0 КАК Склад4 ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад1) КАК ТоварыНаСкладахОстатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад, ТоварыНаСкладахОстатки.Номенклатура, 0, ТоварыНаСкладахОстатки.КоличествоОстаток, 0, 0 ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад2) КАК ТоварыНаСкладахОстатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад, ТоварыНаСкладахОстатки.Номенклатура, 0, 0, ТоварыНаСкладахОстатки.КоличествоОстаток, 0 ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад3) КАК ТоварыНаСкладахОстатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад, ТоварыНаСкладахОстатки.Номенклатура, 0, 0, 0, ТоварыНаСкладахОстатки.КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад4) КАК ТоварыНаСкладахОстатки) КАК ВложенныйЗапрос СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Склад, ВложенныйЗапрос.Номенклатура |
|||
16
aleks100
05.04.12
✎
09:02
|
понятно(14)
|
|||
17
butterbean
05.04.12
✎
09:02
|
(15) через ВЫБОР как-то попроще
|
|||
18
butterbean
05.04.12
✎
09:03
|
(17)+ особенно радует у тебя группировка по складу
|
|||
19
КМ155
05.04.12
✎
09:14
|
(17) через Выбор задача не решается
(18) учи матчасть |
|||
20
Gesperid
05.04.12
✎
15:08
|
(19)
|
|||
21
zak555
05.04.12
✎
18:28
|
(15) одни запросом никак ?
|
|||
22
zak555
05.04.12
✎
18:29
|
(20) без выбора никак ?
|
|||
23
Fragster
гуру
05.04.12
✎
18:34
|
(22) я разрешаю выводить результат как надо без выбора
|
|||
24
zak555
05.04.12
✎
18:36
|
(23) мне просто стало интересно заявление : "учи матчасть"
|
|||
25
Fragster
гуру
05.04.12
✎
18:47
|
(24) ну, это ХЗ. просто автор либо сам ответил на свой вопрос, либо не смог правильно свой вопрос сформулировать
|
|||
26
zak555
05.04.12
✎
23:56
|
странно, что никто не написал запрос в единственном числе и без выбора
|
|||
27
БибиГон
06.04.12
✎
00:09
|
(26) напиши.
|
|||
28
Конфигуратор1с
06.04.12
✎
01:51
|
А что Обычный запрос не подойдет, просто вывод по группировкам?
|
|||
29
GROOVY
06.04.12
✎
01:59
|
Вот запрос для получения данных для вывода:
Макет = ВнешниеОбработки.ВнешняяОбработка1.ПолучитьМакет("Макет"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура, | ПРЕДСТАВЛЕНИЕ(СвободныеОстаткиОстатки.Номенклатура), | СвободныеОстаткиОстатки.Склад КАК Склад, | ПРЕДСТАВЛЕНИЕ(СвободныеОстаткиОстатки.Склад), | СвободныеОстаткиОстатки.КоличествоОстаток КАК КоличествоОстаток |ИЗ | РегистрНакопления.СвободныеОстатки.Остатки КАК СвободныеОстаткиОстатки |ИТОГИ | СУММА(КоличествоОстаток) |ПО | Номенклатура, | Склад"; Результат = Запрос.Выполнить(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы"); ОбластьНоменклатура = Макет.ПолучитьОбласть("Номенклатура"); ОбластьСклад = Макет.ПолучитьОбласть("Склад"); ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); ВыборкаНоменклатура = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаНоменклатура.Следующий() Цикл ОбластьНоменклатура.Параметры.Заполнить(ВыборкаНоменклатура); ТабДок.Вывести(ОбластьНоменклатура, ВыборкаНоменклатура.Уровень()); ВыборкаСклад = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаСклад.Следующий() Цикл ОбластьСклад.Параметры.Заполнить(ВыборкаСклад); ТабДок.Вывести(ОбластьСклад, ВыборкаСклад.Уровень()); КонецЦикла; КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.Вывести(ОбластьПодвалТаблицы); ТабДок.Вывести(ОбластьПодвал); А вот пример вывода вертикальных секций ТабДок = Новый ТабличныйДокумент; Секция = ТабДок.ПолучитьОбласть("R1C1"); ТабДок.НачатьАвтогруппировкуКолонок(); Секция.Область("R1C1").Текст = "Параметр"; ТабДок.Вывести(Секция,1,"Группа 1",Ложь); Для К=1 По 10 Цикл Секция = ТабДок.ПолучитьОбласть("R1C1"); Секция.Область().Текст = "А"+К; Секция.Область().ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право; ТабДок.Присоединить(Секция,2,"Группа 2",Истина); КонецЦикла; Секция.Область("R1C1").Текст = "Итого:"; ТабДок.Присоединить(Секция,1,"Группа 2",Ложь); Секция.Область("R1C1").Текст = "Значение"; ТабДок.Вывести(Секция,1,"Группа 2",Ложь); Цена = 10; Итог = Цена; Для К=1 По 10 Цикл Секция = ТабДок.ПолучитьОбласть("R1C1"); Секция.Область().Текст = Цена; ТабДок.Присоединить(Секция,2,"Группа 2",Истина); Цена = Цена + 10; Итог = Итог + Цена; КонецЦикла; Секция.Область("R1C1").Текст = Итог; ТабДок.Присоединить(Секция,1,"Группа 2",Ложь); ТабДок.ЗакончитьАвтогруппировкуКолонок(); ТабДок.ИтогиСправа = Истина; ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Истина; ТабДок.Показать("Пример использования гор. автогруппировки"); Лень собирать вместе, надеюсь автор сможет сам. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |