Имя: Пароль:
1C
 
Дерево значений. Группировка по двум колонкам.
0 Help1с
 
04.07.16
13:18
Приветствую.
Есть таблица значений с шестью колонками, необходимо отобразить как дерево значений следующим образом:
+ Реквизит1Внешний; Реквизит1Внутренний;
++ Реквизит2Внешний; Реквизит2Внутренний;
  +++ Реквизит3Внешний; Реквизит3Внутренний;

Опишу - делаю синхронизацию. Необходимо внешнему реквизиту сопоставить внутренний. Первоначально колонки "Внутренний" отобразятся пустыми. В родителе группировки присваиваю значение "Внутренний" и заполняю это значение у всех строк данной группировки.

Можно такое реализовать?
Спасибо.
1 Help1с
 
04.07.16
13:27
Может как-то через Иерархическое отображение можно так вывести на экран?
2 aleks_default
 
04.07.16
14:07
Ниче не понятно
3 Help1с
 
04.07.16
14:43
(2) ну как бы объяснить. вот ТЗ:
Центральный офис; Администрация; Иванов;
Центральный офис; Администрация; Петров;
Центральный офис; Бухгалтерия; Петрова;
Филиал 1; Бухгалтерия; Маша;
Филиал 1; Бухгалтерия; Петрова;

Данные берутся из файла, эти данные нужно сопоставить с данными в БД. Я добавляю в ТЗ колнки, для сопоставления. Как видно из примера наименования могут пересекаться, поэтому нужно рассматривать как иерархию элементов.

Вопрос - как отобразить на форме такую структуру, чтобы во главе иерархии были две колонки, одна колонка заполнена данными из файла, другая пустая, заполнится в процессе.
Результат должен быть такой:
+Центральный офис; "";
++Администрация; "";
  +++Иванов; "";
  +++Петров; "";
++Бухгалтерия; "";
  +++Петрова; "";
+Филиал 1; "";
++Бухгалтерия; "";
  +++Маша; "";
  +++Петрова; "";
4 Help1с
 
04.07.16
14:46
Если я в группировке, например +Центральный офис; ""; в пустую колонку устанавливаю значение элемента из справочника, то я это значение автоматом проставляю на все строки подчиненной иерархии.

По идее можно отобразить как обычную таблицу, но не удобно к восприятию.
5 novichok79
 
04.07.16
14:47
я бы делал так.
1) без СКД: получаешь таблицу значений. подсовываешь в запрос, делаешь еще 1 колонку где суммируешь коды с наименования так, чтобы получился 1 реквизит-ключ из двух полей. по нему делаешь группировку в итогах и в ресурсы ставишь МАКСИМУМ() составных полей
2) с СКД: берешь таблицу значений, подсовываешь в СКД при компоновке, делаешь группировку по двум колонкам.
6 aleks_default
 
04.07.16
15:20
Да просто таблицу в запрос, и итог по двум колонкам. А потом результат выгружаешь с обходом по иерархии. Вот тебе и дерево
7 Очевидно
 
04.07.16
18:28
(0) ну а если без велосипеда и чисто запросом тогда это делается так :

ВЫБРАТЬ
    "Центральный офис" КАК Подразделение,
    "Администрация" КАК Отдел,
    "Иванов" КАК ФИО
ПОМЕСТИТЬ ВТ_НачальныеДанные

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Центральный офис",
    "Администрация",
    "Петров"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Центральный офис",
    "Бухгалтерия",
    "Петрова"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Филиал 1",
    "Бухгалтерия",
    "Маша"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Филиал 1",
    "Бухгалтерия",
    "Петрова"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_НачальныеДанные.ФИО КАК ФИО
ИЗ
    ВТ_НачальныеДанные КАК ВТ_НачальныеДанные

Итоги
ВЫБОР
        КОГДА ВТ_НачальныеДанные.Отдел ЕСТЬ NULL
            ТОГДА ВТ_НачальныеДанные.Подразделение
            
        ИНАЧЕ ВТ_НачальныеДанные.Отдел
    КОНЕЦ КАК ФИО    
ПО     
Подразделение,
    Отдел