![]() |
Помогите с запросом Надо выбрать все счета с остатками и оборотами, без субсчетов. Запрос.Текст = "ВЫБРАТЬ | ВложенныйЗапрос.Счет КАК Счет, | ВложенныйЗапрос.Счет.Код КАК НомерСчета |ИЗ | (ВЫБРАТЬ | ХозрасчетныйОбороты.СуммаОборот КАК СуммаОборот, | ВЫБОР | КОГДА ХозрасчетныйОбороты.Счет.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка) | ТОГДА ХозрасчетныйОбороты.Счет | ИНАЧЕ ВЫБОР | КОГДА ХозрасчетныйОбороты.Счет.Родитель.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка) | ТОГДА ХозрасчетныйОбороты.Счет.Родитель | ИНАЧЕ ХозрасчетныйОбороты.Счет.Родитель.Родитель | КОНЕЦ | КОНЕЦ КАК Счет | ИЗ | РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, , , , , , ) КАК ХозрасчетныйОбороты) КАК ВложенныйЗапрос | |СГРУППИРОВАТЬ ПО | ВложенныйЗапрос.Счет | |УПОРЯДОЧИТЬ ПО | ВложенныйЗапрос.Счет.Код"; почемута пропускает некоторые счета (20,50, 80, 84), а некоторые с пустой обороткой показывает (10) |
Открыть План счетов. Выбрать интересующий с аналитикой (субконто). Посмотреть на эти субконто (внизу формы). Если непонятен смысл слов, под которыми красуются "галки" ("Только обороты", "Суммовой") быстро-быстро нажать F1. Читать вдумчиво. |
Переделал запрос Запрос.Текст = "ВЫБРАТЬ | ВложенныйЗапрос.Счет КАК Счет, | ВложенныйЗапрос.Счет.Код КАК НомерСчета |ИЗ | (ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт, | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт, | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт КАК СуммаНачальныйОстатокКт, | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт КАК СуммаКонечныйОстатокКт, | ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт, | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт, | ВЫБОР | КОГДА ХозрасчетныйОстаткиИОбороты.Счет.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка) | ТОГДА ХозрасчетныйОстаткиИОбороты.Счет | ИНАЧЕ ВЫБОР | КОГДА ХозрасчетныйОстаткиИОбороты.Счет.Родитель.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка) | ТОГДА ХозрасчетныйОстаткиИОбороты.Счет.Родитель | ИНАЧЕ ХозрасчетныйОстаткиИОбороты.Счет.Родитель.Родитель | КОНЕЦ | КОНЕЦ КАК Счет | ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , , , ) КАК ХозрасчетныйОстаткиИОбороты) КАК ВложенныйЗапрос | |СГРУППИРОВАТЬ ПО | ВложенныйЗапрос.Счет | |УПОРЯДОЧИТЬ ПО | ВложенныйЗапрос.Счет.Код"; вроде все нормально, но 2 лишних счета все ж вылазит, 08 и, внезапно, МЦ, который ваще забалансовый наверно недостаточно быстро жамкнул F1 |
Я бы сделал так: "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Хозрасчетный.Ссылка КАК Счет, | Хозрасчетный.Код КАК Код |ПОМЕСТИТЬ СчетаПервогоУровня |ИЗ | ПланСчетов.Хозрасчетный КАК Хозрасчетный |ГДЕ | Хозрасчетный.Код = ПОДСТРОКА(Хозрасчетный.Код, 1, 2) | И Хозрасчетный.Забалансовый = ЛОЖЬ | И Хозрасчетный.Код <> """" | |ИНДЕКСИРОВАТЬ ПО | Код |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | МИНИМУМ(ХозрасчетныйОстаткиИОбороты.Счет) КАК Счет, | МИНИМУМ(ХозрасчетныйОстаткиИОбороты.Валюта) КАК Валюта, | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт) КАК СуммаНачальныйОстатокДт, | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт) КАК СуммаНачальныйОстатокКт, | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт) КАК СуммаКонечныйОстатокДт, | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт) КАК СуммаКонечныйОстатокКт, | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт) КАК СуммаОборотДт, | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотКт) КАК СуммаОборотКт, | СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстатокДт) КАК КоличествоНачальныйОстатокДт, | СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстатокКт) КАК КоличествоНачальныйОстатокКт, | СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстатокДт) КАК КоличествоКонечныйОстатокДт, | СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстатокКт) КАК КоличествоКонечныйОстатокКт, | СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт) КАК КоличествоОборотДт, | СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт) КАК КоличествоОборотКт, | ПОДСТРОКА(ХозрасчетныйОстаткиИОбороты.Счет.Код, 1, 2) КАК Код |ПОМЕСТИТЬ ОстаткиИОбороты |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , НЕ Счет.Забалансовый, , ) КАК ХозрасчетныйОстаткиИОбороты | |СГРУППИРОВАТЬ ПО | ПОДСТРОКА(ХозрасчетныйОстаткиИОбороты.Счет.Код, 1, 2) | |ИНДЕКСИРОВАТЬ ПО | Код |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СчетаПервогоУровня.Счет, | СчетаПервогоУровня.Код КАК Код |ИЗ | ОстаткиИОбороты КАК ОстаткиИОбороты | ЛЕВОЕ СОЕДИНЕНИЕ СчетаПервогоУровня КАК СчетаПервогоУровня | ПО ОстаткиИОбороты.Код = СчетаПервогоУровня.Код | |УПОРЯДОЧИТЬ ПО | Код" |
2-A l e x > Чувство юмора - необходимое качество в нашем деле :) А третьего уровня в ПС нет? Может, есть смысл просто отфильтровать субсчета одним условием? |
с запросом вроде разобрался. другой вопрос: есть у меня дерево значений "СписокСчетов" заполняется через запрос нормально. есть три колонки, "Код", "флВкл" и "Наименование". все отображаются, разворачиваются, но флажок только на верхнем уровне. пытаюсь добавить подчиненные строки, они добавляются, но нет значка флажка. где я накосячил? СписокСчетов = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); //СписокСчетов.Колонки.Добавить("флВкл",Новый ОписаниеТипов("Булево")); ЭлементыФормы.СписокСчетов.СоздатьКолонки(); ЭлементыФормы.СписокСчетов.Колонки.Счет.Видимость = Ложь; ЭлементыФормы.СписокСчетов.Колонки.флВкл.ДанныеФлажка = "флВкл"; ЭлементыФормы.СписокСчетов.Колонки.флВкл.Данные = ""; ЭлементыФормы.СписокСчетов.Колонки.флВкл.Ширина = 3; ЭлементыФормы.СписокСчетов.Колонки.флВкл.Видимость = Истина; ЭлементыФормы.СписокСчетов.Колонки.флВкл.Доступность = Истина; ЭлементыФормы.СписокСчетов.Колонки.флВкл.УстановитьЭлементУправления(Тип("Флажок")); ЭлементыФормы.СписокСчетов.Колонки.флВкл.РежимРедактирования = РежимРедактированияКолонки.Непосредственно; ЭлементыФормы.СписокСчетов.Колонки.флВкл.ОтображатьИерархию = Истина; ЭлементыФормы.СписокСчетов.Колонки.флВкл.ЭлементУправления.ПрозрачныйФон = Истина; //ЭлементыФормы.СписокСчетов.Колонки.флВкл.ТриСостоянияФлажка = Истина; Для Каждого Сч Из СписокСчетов.Строки Цикл СубконтоСчета = Сч.Строки.Добавить(); СубконтоСчета.Наименование = " Карточка счета"; СубконтоСчета.Код = 1; СубконтоСчета.ФлВкл = 1; СубконтоСчета = Сч.Строки.Добавить(); СубконтоСчета.Наименование = " По Субконто"; СубконтоСчета.ФлВкл = 1; КонецЦикла; |
Текущее время: 20:49. Часовой пояс GMT +3. |