|
Получение данных из регистра Хозрасчетный в соединении с ним же с условием | ☑ | ||
---|---|---|---|---|
0
Oleg_Kag
12.10.12
✎
14:40
|
БП 2.0 (Сумбурно, пятнично)
Вводная: бухи часто путают склады и счета учета и на 10 счете имеем бардак. В целом БЕЗ учета склад и (или) счета номенклатура сворачиваться в ноль (то есть остаток нет) Необходимо написать отчет СКД, который будет выводить данные в виде: Субконто1 (суть есть Номенклатура) Субконто2 (суть есть Склад) Счет (суть субсчет 10 счета) КолОстаток(остаток на счете в количественном выражении по складу и номенклатуре) Но...Условие: выводится должны ТЕ и ТОЛЬКО ТЕ номенклатуры у которых хотя бы 1 остаток в разрезе Склада и Счета меньше нуля. В первом запросе выбираю данные, причем так что бы он не "свернулись" и помещаю их во временную таблицу. Во втором запросе выбираю из временной таблицы 1 поле и пытаюсь сделать еще 1 запрос к регистру уже с условием по этому Субконто1. ВЫБРАТЬ РАЗЛИЧНЫЕ ХозрасчетныйОстатки.Субконто1 КАК Субконто1, ХозрасчетныйОстатки.Счет, ХозрасчетныйОстатки.Субконто2 ПОМЕСТИТЬ Отрицательные ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОстатков, Счет В ИЕРАРХИИ (&Счет10), , ) КАК ХозрасчетныйОстатки ГДЕ ХозрасчетныйОстатки.КоличествоОстаток < 0 ИНДЕКСИРОВАТЬ ПО Субконто1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ХозрасчетныйОстатки.Счет, ХозрасчетныйОстатки.Субконто1, ХозрасчетныйОстатки.Субконто2, ХозрасчетныйОстатки.КоличествоОстаток ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОстатков, Счет В ИЕРАРХИИ (&Счет10), , ) КАК ХозрасчетныйОстатки ГДЕ ХозрасчетныйОстатки.Субконто1 В (ВЫБРАТЬ РАЗЛИЧНЫЕ Субконто1 ИЗ Отрицательные) Казалось бы, но не все данные выводятся (не все номенклатуры) наставьте на путь истинный пожалуста |
|||
1
Oleg_Kag
15.10.12
✎
12:31
|
Гхм попробую по другому...помогите "свернуть" в один запрос (СКД) вот эту писанину:
ЗапросПоМинусам=Новый Запрос; ЗапросПоМинусам.Текст="ВЫБРАТЬ | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Субконто1 КАК Субконто1, | ХозрасчетныйОстатки.Субконто2 |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОтчета, Счет В ИЕРАРХИИ (&Счет10), , ) КАК ХозрасчетныйОстатки |ГДЕ | ХозрасчетныйОстатки.КоличествоОстаток < 0"; ЗапросПоМинусам.УстановитьПараметр("Счет10",ПланыСчетов.Хозрасчетный.Материалы); ЗапросПоМинусам.УстановитьПараметр("ДатаОтчета", ТекущаяДата()); НоменклатураСМинусами=ЗапросПоМинусам.Выполнить().Выгрузить().ВыгрузитьКолонку("Субконто1"); ЗапросПоОстаткам=Новый Запрос; ЗапросПоОстаткам.Текст= "ВЫБРАТЬ | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Субконто1, | ХозрасчетныйОстатки.Субконто2, | ХозрасчетныйОстатки.КоличествоОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОтчета, Счет В ИЕРАРХИИ (&Счет10), , Субконто1 В (&Номенклатура)) КАК ХозрасчетныйОстатки"; ЗапросПоОстаткам.УстановитьПараметр("Счет10",ПланыСчетов.Хозрасчетный.Материалы); ЗапросПоОстаткам.УстановитьПараметр("ДатаОтчета", ТекущаяДата()); ЗапросПоОстаткам.УстановитьПараметр("Номенклатура", НоменклатураСМинусами); ВыборкаНоменклатуры=ЗапросПоОстаткам.Выполнить().Выбрать(); |
|||
2
Oleg_Kag
15.10.12
✎
18:22
|
Уважаемые ... Вы хоть что-нибудь напишите пожалуйста...
|
|||
3
DrHiHi
15.10.12
✎
18:29
|
не понял суть %))... то есть нужно вывести позиции в которых в свернутом виде по номенклатуре покажет 0, а в развернутом есть остатки
|
|||
4
Oleg_Kag
15.10.12
✎
18:37
|
Вот именно.. Путают склады и (или) счета. Оборотка по 10 счету имеет примерно такой вид:
10.01 Пельмени Арочнный -3 10.01 Пельмени Основной 3 Если сделать Запрос по номенклатуре и счету учета, то в Оборотке будет красоваться 0 (ноль) и только разворачивая по складам можно увидеть такой бардак. Аналогично получается и по счетам учета. Остаток на 10.01, списывают с 10.06 (игнорирую предупреждения "Для целей учета НДС не списано...") |
|||
5
DrHiHi
15.10.12
✎
18:39
|
ВЫБРАТЬ
Счет, Субконто1, Субконто2, КоличествоОстаток ПОМЕСТИТЬ ВТВрем ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОстатков, Счет В ИЕРАРХИИ (&Счет10), , ) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТВрем.* ИЗ ВТВРем ВНУТРЕННЕЕ СОЕДИНЕНИЕ ( ВЫБРАТЬ * ИЗ ВТВрем ГДЕ КоличествоОстаток < 0) КАК ВложенныйЗапрос ПО ВТВрем.Счет = ВложенныйЗапрос.Счет И ВТВрем.Субконто1 = ВложенныйЗапрос.Субконто1 |
|||
6
DrHiHi
15.10.12
✎
18:39
|
группировку сам добавишь ;))
|
|||
7
Oleg_Kag
15.10.12
✎
18:42
|
(6) Вот спасибо... значит все таки "Внутреннее"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |