Имя: Пароль:
1C
1С v8
Планировщик. Перетаскивание из других элементов управляемой формы
0 DosBot
 
10.08.20
16:02
Платформа 1С:Предприятие 8.3.15.1700

Делаю интерфейс на управляемых формах. Внешняя обработка. На форме: Планировщик с измерениями по физ. лицам, табличная часть "Заявки", которые я хочу перетаскиванием добавить в Планировщик на конкретного работника.
Проблема, что в финальном событии ПланировщикПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Дата, Значения) - я не могу тут выловить к какому конкретному измерению - Физ. лицу осуществлено перетаскивание.
Значение = пустое ФиксированноеСоответствие. Заполнено только Дата, блин.

В событии ПланировщикПроверкаПеретаскивания(...) делаю СтандартнаяОбработка = Ложь, иначе ПланировщикПеретаскивание(...) вообще не возникает.

ЧЯДНТ?
1 Ёпрст
 
10.08.20
16:19
больше кода
2 DosBot
 
10.08.20
18:42
&НаСервере
Процедура Планировщик_Построить()
    
    Планировщик.Элементы.Очистить();
    Планировщик.Измерения.Очистить();
    
    ТЗ = ДанныеПланирования.Выгрузить();
    ТЗ.Свернуть("ФизическоеЛицо");
    ВсеФизЛица = ТЗ.ВыгрузитьКолонку("ФизическоеЛицо");
    ИзмерениеФизЛица = Планировщик.Измерения.Добавить("ФизЛица");
    
    // Измерения Физические лица
    Для каждого ТекФизЛицо Из ВсеФизЛица Цикл
        
        НовоеИзмерение = ИзмерениеФизЛица.Элементы.Добавить(ТекФизЛицо);
        НовоеИзмерение.Текст = "" + ТекФизЛицо;
        
        НужныеСтроки = ДанныеПланирования.НайтиСтроки(Новый Структура("ФизическоеЛицо", ТекФизЛицо));
        
        // Элементы
        Для каждого ТекСтрока Из НужныеСтроки Цикл
            
            Соответствие = Новый Соответствие();
            Соответствие.Вставить("ФизЛица", ТекСтрока.ФизическоеЛицо);
            ЗначенияИзмерений = Новый ФиксированноеСоответствие(Соответствие);
            
            Если ТекСтрока.СвободноеВремя Тогда
                НовыйИнтервал = Планировщик.ИнтервалыФона.Добавить(ТекСтрока.ДатаНачала, ТекСтрока.ДатаОкончания);
                НовыйИнтервал.Цвет = ЦветГрафикРаботы;
                НовыйИнтервал.ЗначенияИзмерений = ЗначенияИзмерений;
            Иначе
                НовыйЭлемент = Планировщик.Элементы.Добавить(ТекСтрока.ДатаНачала,
                                                                 ТекСтрока.ДатаОкончания);    
                ТекЗначение = Новый Структура("ФизическоеЛицо,ДокументПланирования,Событие");                                                        
                ЗаполнитьЗначенияСвойств(ТекЗначение, ТекСтрока);
                
                НовыйЭлемент.Значение = ТекЗначение;
                НовыйЭлемент.Текст       = "" + ?(ТекСтрока.СвободноеВремя, "", ТекСтрока.Событие);
                НовыйЭлемент.ЦветФона = WebЦвета.ЦианСветлый;
                НовыйЭлемент.ЗначенияИзмерений = ЗначенияИзмерений;
            КонецЕсли;
            
        КонецЦикла;
        
    КонецЦикла;
    
КонецПроцедуры
3 DosBot
 
10.08.20
18:43
&НаКлиенте
Процедура ПланировщикПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Дата, Значения)
    СтандартнаяОбработка = Ложь;
КонецПроцедуры
4 DosBot
 
12.08.20
06:55
В общем плюнул я на перетаскивание в планировщике. Сделал кнопку с быстрой клавишей и успокоился...
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn