0
smartem
25.06.14
✎
16:14
|
Добрый день!
Коллеги, прошу подсказать, весь день разбирался, но видимо начальных знаний не хватает.
В чем суть: Есть два справочника: "Компетенции" и "Сотрудники".
В справочнике "Сотрудники" есть табличная часть "ТекущиеКомпетенции", в котором есть реквизит наименование как ссылка на Справочник.Компетенции.
Необходимо создать отчет (табличный), в котором левая крайняя колонка, это перечень всех компетенций из справочника "Компетенции", остальные колонки это все сотрудники из справочника "Сотрудники". На пересечении строк с компетенцией и конкретного сотрудника ставить "1", в случае, если указанная компетенция есть у сотрудника в табличной части.
Интересует, есть ли возможность создать такой отчет? Если да, то каким способом?
Готовое решение не прошу, но вот от подсказки: в каком направлении смотреть, не отказался бы )
|
|
2
Azverin
25.06.14
✎
16:26
|
+(1)
Макет = ПолучитьМакет("Макет");
Макет.ПолучитьОбласть("Шапка|ПервыйСтолбец");
ТабДок.Вывести(Макет.ПолучитьОбласть("Шапка|ПервыйСтолбец"));
Для Каждого Роль из Метаданные.Роли Цикл
Область = Макет.ПолучитьОбласть("Шапка|Столбец");
Область.Параметры.Роль = Роль;
ТабДок.Присоединить(Область);
КонецЦикла;
ТабДок.Присоединить(Макет.ПолучитьОбласть("Шапка|ПоследнийСтолбец"));
ТабПользователей = Новый ТаблицаЗначений;
ТабПользователей.Колонки.Добавить("Пользователь");
ТабПользователей.Колонки.Добавить("Имя");
Для Каждого Пользователь из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл
НоваяСтрока = ТабПользователей.Добавить();
НоваяСтрока.Пользователь = Пользователь;
НоваяСтрока.Имя = Пользователь.Имя;
КонецЦикла;
ТабПользователей.Сортировать("Имя");
Для Каждого СтрокаТЗ из ТабПользователей Цикл
Пользователь = СтрокаТЗ.Пользователь;
Область = Макет.ПолучитьОбласть("Строка|ПервыйСтолбец");
Область.Параметры.Пользователь = Пользователь.Имя;
ТабДок.Вывести(Область);
Для Каждого Роль из Метаданные.Роли Цикл
Область = Макет.ПолучитьОбласть("Строка|Столбец");
Область.Параметры.РольДоступна = Пользователь.Роли.Содержит(Роль);
Область.Параметры.ПользовательРоль = Новый Структура("Пользователь, Роль", Пользователь, Роль);
ТабДок.Присоединить(Область);
КонецЦикла;
ТабДок.Присоединить(Макет.ПолучитьОбласть("Строка|ПоследнийСтолбец"));
КонецЦикла;
ТабДок.Вывести(Макет.ПолучитьОбласть("Подвал|ПервыйСтолбец"));
Для Каждого Роль из Метаданные.Роли Цикл
Область = Макет.ПолучитьОбласть("Подвал|Столбец");
ТабДок.Присоединить(Область);
КонецЦикла;
ТабДок.Присоединить(Макет.ПолучитьОбласть("Подвал|ПоследнийСтолбец"));
|
|