Работа с планировщиком

Первым делом ссылки на ресурсы:
— Заметки из зазеркалья (http://v8.1c.ru/o7/index.htm
— Планировщик (http://v8.1c.ru/o7/20140401plan/index.htm)  

Результат заполнения планировщика выглядит так:

В строках видим время работы магазинов (с 9 до 18).
По колонкам: группы Магазинов и Продавцов. 

Основная форма планировщика

Основные свойства планировщика для его программного заполнения:
— ТекущиеПериодыОтображения (тут можно указать рабочее время магазинов)
— Измерения (группировки: Магазин, Продавец)
— Элементы (сами заметки по измерениям)

Во вложенной dt только необходимый набор объектов (пару справочников, констант, общих модулей и регистр сведений), который потребуется для настройки простейшего планировщика. Естественно, фантазия 1С-ника велика, и на реализацию дополнительного функционала нужно больше времени. К примеру, вот эта подсистема: //tf21.ru/public/333366/

Еще раз повторюсь, что тут описаны только азы.

Итак. Приступим.

ТекущиеПериодыОтображения заполняются так (тут всё просто, поэтому описывать комментариями думаю не нужно Wink):

Планировщик.ТекущиеПериодыОтображения.Очистить();
Планировщик.ТекущиеПериодыОтображения.Добавить(ПериодОтображенияНачало, ПериодОтображенияКонец);

Измерения можно заполнить таким образом:

    // Инициализируем измерения планировщика
    ИзмеренияПланировщика   = Планировщик.Измерения;
    ИзмеренияПланировщика.Очистить();

    #Область Заполнение_магазинов
    // Создание группы Магазины
    ИзмерениеМагазины       = ИзмеренияПланировщика.Добавить(«Магазины»);
    Пока ВыборкаМагазинов.Следующий() Цикл

        // Добавление магазинов в группу Магазины
        НовыйМагазин = ИзмерениеМагазины.Элементы.Добавить(ВыборкаМагазинов.Магазин);
        НовыйМагазин.Текст = ВыборкаМагазинов.Магазин.Наименование;

    КонецЦикла;
    #КонецОбласти

    #Область Заполнение_продавцов
    // Создание измерения Продацы
    ИзмерениеПродавцы       = ИзмеренияПланировщика.Добавить(«Продавцы»);
    Пока ВыборкаПродавцов.Следующий() Цикл

        // Заполнение измерений продавцы
        НовыйПродавец = ИзмерениеПродавцы.Элементы.Добавить(ВыборкаПродавцов.Продавец);
        НовыйПродавец.Текст = ВыборкаПродавцов.Продавец.Наименование;

    КонецЦикла;
    #КонецОбласти

А вот так добавляем Элементы (записи в планировщике):

    // Инициализация элементов планировщика (записи по измерениям)
    ЭлементыПланировщика = Планировщик.Элементы;
    ЭлементыПланировщика.Очистить();

    Пока РезультатПланы.Следующий() Цикл

        // Связка записей с измерениями выполняется через соответствия
        СоответствиеЗначений = Новый Соответствие;
        СоответствиеЗначений.Вставить(«Магазины»,   РезультатПланы.Магазин);
        СоответствиеЗначений.Вставить(«Продавцы»,   РезультатПланы.Продавец);

        РазницаВремениНачало    = РезультатПланы.ВремяС     — НачалоДня(РезультатПланы.ВремяС);
        РазницаВремениКонец     = РезультатПланы.ВремяПо    — НачалоДня(РезультатПланы.ВремяПо);

        Начало  = НачалоДаты + РазницаВремениНачало;
        Конец   = НачалоДаты + РазницаВремениКонец;

        // Добавление новой записи в промежуток времени
        НовыйЭлемент = ЭлементыПланировщика.Добавить(Начало, Конец);
        НовыйЭлемент.ЗначенияИзмерений  = Новый ФиксированноеСоответствие(СоответствиеЗначений);
        НовыйЭлемент.Текст              = РезультатПланы.Задание;

    КонецЦикла;

После того мы разобрались с заполнением, можно показать итоговый вид с заполненным регистром сведений Дни работы (в котором регистрируем рабочее время сотрудников)

Начальная страница с планировщиком

Темы форума где обсуждался планировщик и решались реальные задачи:

http://forum.infostart.ru/forum86/topic134559/

РубрикиМетки

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *