#0
by ssserg
Добрый день. Задача такая: получить иерархически весь справочник с его элементами и группами, а также с итогами прицепленными из другой таблицы по каждому элементу, но при этом чтобы не было дублей. Если бы у меня не было числовых итогов, то всё решалось просто, в запросе написал бы: и вывелась бы идеальная иерархия, вот как пример на скриншоте: Сам справочник при этм выглядит так: Но так как мне нужны ещё и итоги, то вместо "Упорядочить" использую конструкцию ГДЕ Ссылка.ЭтоГруппа = ЛОЖЬ ... ИТОГИ СУММА(СуммаОстаток) ПО Ссылка ТОЛЬКО ИЕРАРХИЯ Выглядит запрос следующим образом: ПО Ссылка ТОЛЬКО ИЕРАРХИЯ но в результате получаю, что в дереве значений в группах могут лежать эти же самые группы, содержащие при этом в себе элементы, которые должны быть вложены в корень группы. получается как на скриншоте: а должны быть так По ссылка маааленькая база с данными, где можно посмотреть как выполняется запрос: P.S. Эту тему смотрел а также статью к ней Но тамошняя функция по удалению дублей мне не подходит, т.к. она удаляет группу-дубль вместе с нужным элементом, который в неё вложен
#4
by ssserg
эту статью тоже читал. от моего запроса этот отличается только тем, что у меня ещё есть секция "Упорядочить" в запросе, а также условие "Где", но от их удаления из запроса результат НЕ ПОМЕНЯЛСЯ, как были дубли так и остались (получится ли на этот раз ссылку выложить аккуратно))
#6
by D_E_S_131
У тебя нет условия, что группы не будут выбираться, вот они и выходят в отчет. А еще иерархия добавляется.
#7
by ssserg
вы потеряли нить повествования. Я его убрал, потому что товарищ в предложил мне запрос без условия "где ЭтоГруппа = Ложь", а первоначально запрос выглядит так: ВЫБРАТЬ СУММА(СуммаОстаток) ПО Ссылка ТОЛЬКО ИЕРАРХИЯ
#8
by D_E_S_131
Видимо суть в . Построитель (который использует например "Консоль отчетов") нормально выводит иерархию при задании вывода группировки тип "Иерархия".
#9
by ssserg
используется при заполнении фиксированного макета, в котором каждой строке соответствует строка из дерева значений как на картинке из первого поста, а также имеются строки-группы, содержимое которых должно суммировать в себе несколько позиций по обычным строкам. Грубо говоря мне бы достаточно было в запросе просто получать адекватную иерархию с суммами и без дублей групп. Дерево значений то бишь. Та самая картинка из первого поста:
#10
by ssserg
Нет, он не выводит нормально в том случае который описал я. Вот он скриншот результат ещё раз:
#11
by D_E_S_131
А ты попробуй это сделать в консоли ОТЧЕТОВ и увидишь разницу. Консоль запросов не все "умеет".
#12
by ssserg
сори, был невнимателен, но мне от того, что в консоли отчетов оно может быть выводится правильно не легче. Я засунул запрос в код, и поставил точку останова, затем выгрузил его результат в дерево значений и вызвал метод выбрать строку: после этого имею следующего вида окно: в котором видно, что всё таки дублируется группа в самой структуре дерева значений. То есть то, что в консоли отчетов может быть даже дубль группы не выводится - это прекрасно, но мне на выходе нужно Дерево значений, а не результат компоновки данных или что там получается на выхлопе у консоли.
#13
by D_E_S_131
Нормально построить иерархию можно только с условием иерархии групп и элементов. При выводе данных куда-либо в любом случае придется отличать группировку от детальных записей. Поэтому можешь делать это самостоятельно (работая с выборкой запроса), а можешь доверить работу Построителю или СКД.
#15
by ssserg
Попробовал следующий способ через Построитель запроса и точку останова, текст запроса отрабатывал как надо в консоли отчетов и давал нужный вид отчета, но при пытке засунуть в код, он ведет себя опять не так как нужно и получается такой же результат как и обычном запросе Построитель = Новый ПостроительОтчета;
#16
by ssserg
Не получится, т.к. проблема в том, что Иерархия не может использоваться во временной таблице
#18
by ssserg
ни разу не приходилось ими пользоваться без помещениях оных во временные таблицы. Так ну ладно, взял я иерархию(действительно не ругается) - это запрос пакета 1 взял я итоги - это запрос пакета 2, а что с ними потом делать то? Как я могу обратиться к пакету 2 из результата пакета 1?? Не совсем понятно что имелось ввиду. Или имелась ввиду ситуация, что выполняем отдельно два запроса. результат первого - это иерархия с элементами, а результат второго просто итоги по каждой позиции? и в цикле по результату иерархии делаем вложенный цикл в котором перебираем элементы в поисках подходящего из второго результата запроса?
#19
by ssserg
Решить проблему четко как я писал в заглавном посте так и не удалось. Но зато добился требуемого мне результата другим путём: 1) Переделал запроса так, чтобы он получал суммовые итоги ТОЛЬКО по элементам, группы же при этому сумм не имели. Вывод элементов так и оставил в иерархии 2) Выгружаю запрос в дерево значений 3) В цикле прохожу по всем заглавным веткам дерева значений, в них если встречаю группу, то рекурсивно вызываю функцию, которая возвращает мне сумму по вложенным элементам(если снова попадается папка, то функция снова себя вызывает). В результате такого обхода заполняю таблицу значений вида то есть ДЕРЕВО значений вида: я преобразовываю в ТАБЛИЦУ значений:
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Долгий пересчет итогов.
- Дубли таблиц после объединения?
- Аут!!! После полного пересчета итогов слетают итоги по регистрам. Почему?
- Полный пересчет итогов
- Вывести запрос с итогами по иерархии с группировкой строк по иерархии
- Установка периода итогов для Основных итогов
- Как найти дубли в справочнике по коду?
- Дубли при переносе между идентичными конфигурациями
- Выводу дубли с СКД Помогите
- СКД Макет итогов по иерархии
В этой группе 1С
- v7: Может ли "Налогоплательщик ЮЛ" загрузить книги продаж/покупок для НДС 2015?
- Перестала работать история изменений УТ 11
- Ошибка 0x00002746 Удаленный хост принудительно разорвал соединение
- Сервер терминалов для файловой 1с 8.3
- Перетаскивание в табличном документе
- БП 3.0 не могу выбрать склад в авансовом отчёте
- Нумерация в файле
- Вывод отчета из документа, по нажатию кнопки.управляемые формы.
- Переход УПП => ERP
- Учет в разных единицах измерения УТ 11.1
- УПП корректировка поступления и доп. расходы.
- подключение принтера чеков к 1с розница
- Батник по запуску нескольких баз 1С 8
- Интеграция УТ 10.3(не типовая) и Библиотеки Электронных документов
- Мобильное и http сервисы
- Конвертация данных
- УТ 11.1 Отчет по оборачиваемости товаров!
- Внешняя печатная форма. Управляемое приложение
- поле html документа "на этой странице произошла ошибка сценария"
- Кто внедрял "Бит финанс"