Имя: Пароль:
1C
 
Проблема с выводом данных в планировщик...
0 mikecool
 
15.04.26
21:41
Давно не брал я его в руки, не выходит каменный цветок
Код:
    Табель.Измерения.Очистить();
    ИПодразделение = Табель.Измерения.Добавить("Подразделение", "Подразделение");
    ИСотрудник = Табель.Измерения.Добавить("Сотрудник", "Сотрудник");
    
    Табель.Элементы.Очистить();
    Для Каждого СтрокаПодразделение Из ДанныеТабеля.Строки Цикл
        Подразделение = Строка(СтрокаПодразделение.ПодразделениеУИД);
        Если ИПодразделение.Элементы.Найти(Подразделение) = Неопределено Тогда
            ИПодразделение.Элементы.Добавить(Подразделение, СтрокаПодразделение.Подразделение);
        КонецЕсли;                
        Для Каждого СтрокаСотрудник Из СтрокаПодразделение.Строки Цикл  
            Сотрудник = Подразделение + "_" + Строка(СтрокаСотрудник.СотрудникУИД);  
            Если ИСотрудник.Элементы.Найти(Сотрудник) = Неопределено Тогда
                ИСотрудник.Элементы.Добавить(Сотрудник, СтрокаСотрудник.Сотрудник);
            КонецЕсли;
            Для Каждого СтрокаТабеля Из СтрокаСотрудник.Строки Цикл
                
                ОтборИзмерений = Новый Соответствие;
                ОтборИзмерений.Вставить("Подразделение", Подразделение);
                ОтборИзмерений.Вставить("Сотрудник", Сотрудник);
                Если Не ЗначениеЗаполнено(СтрокаТабеля.НачалоИнтервала) Или Не ЗначениеЗаполнено(СтрокаТабеля.ОкончаниеИнтервала) Тогда
                    НовыйЭлементПланировщика = Табель.Элементы.Добавить(Табель.ТекущиеПериодыОтображения[0].Начало, Табель.ТекущиеПериодыОтображения[0].Начало);
                    НовыйЭлементПланировщика.ЗначенияИзмерений = Новый ФиксированноеСоответствие(ОтборИзмерений);
                    Продолжить;
                КонецЕсли;

                НовыйЭлементПланировщика = Табель.Элементы.Добавить(СтрокаТабеля.НачалоИнтервала, СтрокаТабеля.ОкончаниеИнтервала);
                НовыйЭлементПланировщика.ЗначенияИзмерений = Новый ФиксированноеСоответствие(ОтборИзмерений);
                НовыйЭлементПланировщика.Значение = Новый Структура("ТипСостояния, ПричинаСостояния", СтрокаТабеля.ТипСостояния, СтрокаТабеля.ПричинаСостояния);
                НовыйЭлементПланировщика.Текст = СтрокаТабеля.ТипСостоянияОписание;
                НовыйЭлементПланировщика.Подсказка = СтрокаТабеля.ПричинаСостоянияОписание;  
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;
На каждое подразделение выводит весь пул сотрудников, почему?
В отладке хожу по коду - в каждом подразделении свой список сотрудников, отбор измерений заполняется верно
что же я делаю не так?
1 mikecool
 
15.04.26
22:05
Получилось только со вложенными элементами
Видимо так, как я описал в сабже - никак, интернет тоже это говорит
2 vicof
 
15.04.26
23:24
Как приятно поговорить с хорошим человеком))
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший