Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Помогите с запросом (http://forums.kuban.ru/f1040/pomogite_s_zaprosom-6267057.html)

A l e x 13.11.2014 13:36

Помогите с запросом
 
Надо выбрать все счета с остатками и оборотами, без субсчетов.


Запрос.Текст = "ВЫБРАТЬ
| ВложенныйЗапрос.Счет КАК Счет,
| ВложенныйЗапрос.Счет.Код КАК НомерСчета
|ИЗ
| (ВЫБРАТЬ
| ХозрасчетныйОбороты.СуммаОборот КАК СуммаОборот,
| ВЫБОР
| КОГДА ХозрасчетныйОбороты.Счет.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка)
| ТОГДА ХозрасчетныйОбороты.Счет
| ИНАЧЕ ВЫБОР
| КОГДА ХозрасчетныйОбороты.Счет.Родитель.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка)
| ТОГДА ХозрасчетныйОбороты.Счет.Родитель
| ИНАЧЕ ХозрасчетныйОбороты.Счет.Родитель.Родитель
| КОНЕЦ
| КОНЕЦ КАК Счет
| ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, , , , , , ) КАК ХозрасчетныйОбороты) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Счет
|
|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.Счет.Код";

почемута пропускает некоторые счета (20,50, 80, 84), а некоторые с пустой обороткой показывает (10)

VZ 13.11.2014 16:29

Открыть План счетов.
Выбрать интересующий с аналитикой (субконто).
Посмотреть на эти субконто (внизу формы).
Если непонятен смысл слов, под которыми красуются "галки" ("Только обороты", "Суммовой") быстро-быстро нажать F1.
Читать вдумчиво.

A l e x 14.11.2014 13:13

Переделал запрос

Запрос.Текст = "ВЫБРАТЬ
| ВложенныйЗапрос.Счет КАК Счет,
| ВложенныйЗапрос.Счет.Код КАК НомерСчета
|ИЗ
| (ВЫБРАТЬ
| ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
| ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт,
| ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт КАК СуммаНачальныйОстатокКт,
| ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт КАК СуммаКонечныйОстатокКт,
| ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт,
| ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт,
| ВЫБОР
| КОГДА ХозрасчетныйОстаткиИОбороты.Счет.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка)
| ТОГДА ХозрасчетныйОстаткиИОбороты.Счет
| ИНАЧЕ ВЫБОР
| КОГДА ХозрасчетныйОстаткиИОбороты.Счет.Родитель.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка)
| ТОГДА ХозрасчетныйОстаткиИОбороты.Счет.Родитель
| ИНАЧЕ ХозрасчетныйОстаткиИОбороты.Счет.Родитель.Родитель
| КОНЕЦ
| КОНЕЦ КАК Счет
| ИЗ
| РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , , , ) КАК ХозрасчетныйОстаткиИОбороты) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Счет
|
|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.Счет.Код";

вроде все нормально, но 2 лишних счета все ж вылазит, 08 и, внезапно, МЦ, который ваще забалансовый
наверно недостаточно быстро жамкнул F1

aab 17.11.2014 17:30

Я бы сделал так:

"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Хозрасчетный.Ссылка КАК Счет,
| Хозрасчетный.Код КАК Код
|ПОМЕСТИТЬ СчетаПервогоУровня
|ИЗ
| ПланСчетов.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.Код = ПОДСТРОКА(Хозрасчетный.Код, 1, 2)
| И Хозрасчетный.Забалансовый = ЛОЖЬ
| И Хозрасчетный.Код <> """"
|
|ИНДЕКСИРОВАТЬ ПО
| Код
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| МИНИМУМ(ХозрасчетныйОстаткиИОбороты.Счет) КАК Счет,
| МИНИМУМ(ХозрасчетныйОстаткиИОбороты.Валюта) КАК Валюта,
| СУММА(ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт) КАК СуммаНачальныйОстатокДт,
| СУММА(ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт) КАК СуммаНачальныйОстатокКт,
| СУММА(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт) КАК СуммаКонечныйОстатокДт,
| СУММА(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт) КАК СуммаКонечныйОстатокКт,
| СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт) КАК СуммаОборотДт,
| СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотКт) КАК СуммаОборотКт,
| СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстатокДт) КАК КоличествоНачальныйОстатокДт,
| СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстатокКт) КАК КоличествоНачальныйОстатокКт,
| СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстатокДт) КАК КоличествоКонечныйОстатокДт,
| СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстатокКт) КАК КоличествоКонечныйОстатокКт,
| СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт) КАК КоличествоОборотДт,
| СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт) КАК КоличествоОборотКт,
| ПОДСТРОКА(ХозрасчетныйОстаткиИОбороты.Счет.Код, 1, 2) КАК Код
|ПОМЕСТИТЬ ОстаткиИОбороты
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , НЕ Счет.Забалансовый, , ) КАК ХозрасчетныйОстаткиИОбороты
|
|СГРУППИРОВАТЬ ПО
| ПОДСТРОКА(ХозрасчетныйОстаткиИОбороты.Счет.Код, 1, 2)
|
|ИНДЕКСИРОВАТЬ ПО
| Код
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СчетаПервогоУровня.Счет,
| СчетаПервогоУровня.Код КАК Код
|ИЗ
| ОстаткиИОбороты КАК ОстаткиИОбороты
| ЛЕВОЕ СОЕДИНЕНИЕ СчетаПервогоУровня КАК СчетаПервогоУровня
| ПО ОстаткиИОбороты.Код = СчетаПервогоУровня.Код
|
|УПОРЯДОЧИТЬ ПО
| Код"

VZ 17.11.2014 18:27

2-A l e x > Чувство юмора - необходимое качество в нашем деле :)
А третьего уровня в ПС нет?
Может, есть смысл просто отфильтровать субсчета одним условием?

A l e x 09.12.2014 16:27

с запросом вроде разобрался. другой вопрос:
есть у меня дерево значений "СписокСчетов"
заполняется через запрос нормально.
есть три колонки, "Код", "флВкл" и "Наименование". все отображаются, разворачиваются, но флажок только на верхнем уровне.
пытаюсь добавить подчиненные строки, они добавляются, но нет значка флажка. где я накосячил?

СписокСчетов = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
//СписокСчетов.Колонки.Добавить("флВкл",Новый ОписаниеТипов("Булево"));


ЭлементыФормы.СписокСчетов.СоздатьКолонки();
ЭлементыФормы.СписокСчетов.Колонки.Счет.Видимость = Ложь;
ЭлементыФормы.СписокСчетов.Колонки.флВкл.ДанныеФлажка = "флВкл";
ЭлементыФормы.СписокСчетов.Колонки.флВкл.Данные = "";
ЭлементыФормы.СписокСчетов.Колонки.флВкл.Ширина = 3;
ЭлементыФормы.СписокСчетов.Колонки.флВкл.Видимость = Истина;
ЭлементыФормы.СписокСчетов.Колонки.флВкл.Доступность = Истина;
ЭлементыФормы.СписокСчетов.Колонки.флВкл.УстановитьЭлементУправления(Тип("Флажок"));
ЭлементыФормы.СписокСчетов.Колонки.флВкл.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
ЭлементыФормы.СписокСчетов.Колонки.флВкл.ОтображатьИерархию = Истина;
ЭлементыФормы.СписокСчетов.Колонки.флВкл.ЭлементУправления.ПрозрачныйФон = Истина;
//ЭлементыФормы.СписокСчетов.Колонки.флВкл.ТриСостоянияФлажка = Истина;


Для Каждого Сч Из СписокСчетов.Строки Цикл
СубконтоСчета = Сч.Строки.Добавить();
СубконтоСчета.Наименование = " Карточка счета";
СубконтоСчета.Код = 1;
СубконтоСчета.ФлВкл = 1;
СубконтоСчета = Сч.Строки.Добавить();
СубконтоСчета.Наименование = " По Субконто";
СубконтоСчета.ФлВкл = 1;
КонецЦикла;


Текущее время: 20:49. Часовой пояс GMT +3.