Первым делом ссылки на ресурсы:
- Заметки из зазеркалья (http://v8.1c.ru/o7/index.htm)
- Планировщик (http://v8.1c.ru/o7/20140401plan/index.htm)
Результат заполнения планировщика выглядит так:
В строках видим время работы магазинов (с 9 до 18).
По колонкам: группы Магазинов и Продавцов.
Основные свойства планировщика для его программного заполнения:
- ТекущиеПериодыОтображения (тут можно указать рабочее время магазинов)
- Измерения (группировки: Магазин, Продавец)
- Элементы (сами заметки по измерениям)
Во вложенной dt только необходимый набор объектов (пару справочников, констант, общих модулей и регистр сведений), который потребуется для настройки простейшего планировщика. Естественно, фантазия 1С-ника велика, и на реализацию дополнительного функционала нужно больше времени. К примеру, вот эта подсистема: //infostart.ru/public/333366/
Еще раз повторюсь, что тут описаны только азы.
Итак. Приступим.
ТекущиеПериодыОтображения заполняются так (тут всё просто, поэтому описывать комментариями думаю не нужно ):
Планировщик.ТекущиеПериодыОтображения.Очистить();
Планировщик.ТекущиеПериодыОтображения.Добавить(ПериодОтображенияНачало, ПериодОтображенияКонец);
Измерения можно заполнить таким образом:
// Инициализируем измерения планировщика
ИзмеренияПланировщика = Планировщик.Измерения;
ИзмеренияПланировщика.Очистить();
#Область Заполнение_магазинов
// Создание группы Магазины
ИзмерениеМагазины = ИзмеренияПланировщика.Добавить("Магазины");
Пока ВыборкаМагазинов.Следующий() Цикл
// Добавление магазинов в группу Магазины
НовыйМагазин = ИзмерениеМагазины.Элементы.Добавить(ВыборкаМагазинов.Магазин);
НовыйМагазин.Текст = ВыборкаМагазинов.Магазин.Наименование;
КонецЦикла;
#КонецОбласти
#Область Заполнение_продавцов
// Создание измерения Продацы
ИзмерениеПродавцы = ИзмеренияПланировщика.Добавить("Продавцы");
Пока ВыборкаПродавцов.Следующий() Цикл
// Заполнение измерений продавцы
НовыйПродавец = ИзмерениеПродавцы.Элементы.Добавить(ВыборкаПродавцов.Продавец);
НовыйПродавец.Текст = ВыборкаПродавцов.Продавец.Наименование;
КонецЦикла;
#КонецОбласти
А вот так добавляем Элементы (записи в планировщике):
// Инициализация элементов планировщика (записи по измерениям)
ЭлементыПланировщика = Планировщик.Элементы;
ЭлементыПланировщика.Очистить();
Пока РезультатПланы.Следующий() Цикл
// Связка записей с измерениями выполняется через соответствия
СоответствиеЗначений = Новый Соответствие;
СоответствиеЗначений.Вставить("Магазины", РезультатПланы.Магазин);
СоответствиеЗначений.Вставить("Продавцы", РезультатПланы.Продавец);
РазницаВремениНачало = РезультатПланы.ВремяС - НачалоДня(РезультатПланы.ВремяС);
РазницаВремениКонец = РезультатПланы.ВремяПо - НачалоДня(РезультатПланы.ВремяПо);
Начало = НачалоДаты + РазницаВремениНачало;
Конец = НачалоДаты + РазницаВремениКонец;
// Добавление новой записи в промежуток времени
НовыйЭлемент = ЭлементыПланировщика.Добавить(Начало, Конец);
НовыйЭлемент.ЗначенияИзмерений = Новый ФиксированноеСоответствие(СоответствиеЗначений);
НовыйЭлемент.Текст = РезультатПланы.Задание;
КонецЦикла;
После того мы разобрались с заполнением, можно показать итоговый вид с заполненным регистром сведений Дни работы (в котором регистрируем рабочее время сотрудников)
Темы форума где обсуждался планировщик и решались реальные задачи:
http://forum.infostart.ru/forum86/topic134559/