gifts2017

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

Опубликовал Сергей Галюк (dj_serega) в раздел Программирование - Инструментарий

Активно читаю "Заметки из зазеркалья". Большинству заметок я очень рад, и очень жду их реализации. Одно из них - это "Планировщик".
Собственно, статья будет посвящена этому новому, и как по мне, удобному механизму.
Так как в процессе изучения было выявлено несколько нюансов заполнения, решил написать статью с кодом заполнения.

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    КонецЦикла;

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

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

 

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

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

 


Скачать файлы

Наименование Файл Версия Размер
Планировщик.dt 142
.dt 101,62Kb
04.03.15
142
.dt 101,62Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Александр Анисков (vandalsvq) 04.03.15 20:02
О... спасибо за изучение темы )))). Я пока еще реализовывать для 8.3.6 не начал, хочется текущий функционал полностью допилить. А интерфейс можно заменить позже, я не вижу пока грядущих проблем.
Скажи в драг-энд-дроп на поле планировщика 1С поддерживает? А то у меня это один из недостатков )))))
chmv; dj_serega; +2 Ответить 1
2. Walter (WalterMort) 04.03.15 20:42
Инструмент замечательный и малополезный.
3. Сергей Галюк (dj_serega) 04.03.15 21:31
(1) vandalsvq, Поддерживает.
Спасибо за идею. Я подумаю что еще в статью дописать.

(2) WalterMort, Ну на каждый механизм есть свой купец :)
Идей можно напридумывать.
Вот первые 3 которые на ум пришли.
1. График работ продавцов по магазинам.
2. Отобразить график водителей по маршрутам.
3. Так же по дням недели можно расписать посещения магазинов торговых менеджеров.
4. Александр Анисков (vandalsvq) 04.03.15 23:39
(2) WalterMort, на вскидку:
1. Заменить календарь который есть сейчас во всех типовых конфигурациях БП 3, Документооборот. Не говоря уже о подделках от рарус
2. Наконец есть развитие подсистемы задачи. Сами по себе задачи не создают план на неделю, планировщик - запросто
3. Избавиться от диаграммы Ганта в тех случаях когда нет нужды ставить связь между задачами
Это из общего. А частностей могу еще насыпать вагончик ))))
TeMochkiN; dj_serega; kraynev-navi; +3 Ответить
5. Nio Nio (Nio) 05.03.15 07:21
Спасибо за изучение. Жду с нетерпением.
Мой вариант это планирование загрузки мастеров приемщиков и постов в рем. зоне.
6. Алексей Рожнятовский (spetzpozh) 05.03.15 08:48
В БСП еще не добавили, не в курсе?
7. Алексей Белоусов (AllexSoft) 05.03.15 10:17
Эх! в свое время парился с диаграммой ганта, нужно было выводить графики заселения (даже пришлось сделать 2 обработки с гантом и на табличном документе).. в одной конфе видел что разрабы плюнули на нее и сдали свой ActiveX элемент специально под эти цели. Наконец-то и 1С сделало нам штатный нормальный контролл. За статью спасибо, плюс!
8. Сергей Галюк (dj_serega) 05.03.15 11:13
(6) spetzpozh, Да вряд ли. Релиза 8.3.6 еще нет.
9. Василий Калачинский (k_vasil) 05.03.15 12:15
10. Caponid V (caponid) 05.03.15 15:42
Спс, у меня до него руки еще не дошли - плотно засел за расширение - все таки оказался не такой бесполезный механизм, можно много интересного сделать.
в копилку.. на потом полюбопытствовать...
11. Сергей Галюк (dj_serega) 05.03.15 17:52
(10) caponid,
плотно засел за расширение - все таки оказался не такой бесполезный механизм, можно много интересного сделать
А напишите статейку по ним. Я за них как раз и не садился еще :)
12. Сергей Начина (serg_gres) 09.03.15 19:20
На какой версии 1С пробовали?
У меня шкала времени узкая совсем, не видно какой час...
13. Сергей Галюк (dj_serega) 10.03.15 12:12
(12) serg_gres,
На какой версии 1С пробовали?

Тестировал планировщик на 8.3.6.1760.
У меня шкала времени узкая совсем, не видно какой час...

На основной панели или в шкале времени?
14. friend0 11.03.15 11:37
Вещь вроде полезная... но только для небольших личных дел с почасовым планированием. Пытался использовать как замену д. Ганта для проектов с планированием по дням, и так крутил и эдак - получается все равно коряво.
15. Талыч Sha (talych) 11.03.15 12:19
Не проще ли использовать Microsoft Outlook? Сам пользуюсь уже давно этим инструментом. Все, что нужно в нем уже есть. Календарь, задачи, письма, общие папки, разделение папок по пользователям(настройка прав) и много всего другого. Для работы в онлайн есть OWA. А если и этого всего будет недостаточно, то есть user forms+VB Script В них уже можно сделать все, чего не хватает.
16. Роман Осадченко (cleaner_it) 11.03.15 12:58
(15) "Проще" очень сильно не равно "Лучше")
17. friend0 11.03.15 13:08
(15) talych, Outlook стоит дополнительных денег и некоторые компании придерживаются политики легального (по возможности бесплатного) софта. А ежели задачи привязываются к неким процессам в 1С, то ИМХО в 1С их и проще оставлять, а не гонять туда-сюда.
talych; dj_serega; +2 Ответить
18. Сергей Галюк (dj_serega) 11.03.15 14:11
(14) friend0, А какая структура необходима?
Если я правильно уловил то:
Измерения: Проект, Сотрудник
Периодичность: День
19. friend0 11.03.15 14:56
(18) dj_serega, "как должно быть" я честно говоря виду с трудом. Но есть как бы две отдельные задачи:
1. Внутри одного проекта показать когда какие этапы будут начинаться/заканчиваться
2. Показать все проекты скопом, чтоб увидеть на каких этапах задержки и когда какой проект завершится.

Самая главный фича(недостаток) планировщика - все показывается на экране и не надо (невозможно) скролить одновременно по вертикали и горизонтали.

Со второй задачей все совсем плохо - активных проектов дофига и все получается слишком мелко/скучковано и не работает скроллинг, чтоб можно было пролистать по интересующему проекту по времени вперед или по определенному времени пробежаться по проектам.

С первой проще, но все равно выглядит корявенько. По сотрудникам бить смысла особо нет. Можно бить по 2-3 веткам, но на большом экране получается слишком фрагментированно.
После различных манипуляций оптимальным показался вариант вообще без измерений.

Но все равно остается вопрос с масштабом: во-первых с периодами отображения, во-вторых с размером окна (или элемента формы) пользователя. От этого тоже наглядость сильно гуляет.
Прикрепленные файлы:
20. Сергей Галюк (dj_serega) 11.03.15 15:27
(19) friend0, Я Вас понял. Попробую поковырять на досуге. Две головы то лучше :)
21. friend0 11.03.15 15:58
(20) dj_serega, ну так-то оно не особо и надо. Просто воодушевился зазеркальем, а как до практики дошло - приуныл.
Ну и опять же реальные проекты сами по себе имеют разные масштабы. И этапы в них - один на полгода и кучка на 1-2 дня.
22. Сергей Галюк (dj_serega) 11.03.15 16:35
(21) friend0, А вдруг получится выкрутить :) Сам планирую некоторые объекты перевести (в будущем) на планировщик. Уже вижу что не всё получится. Но некоторые даже сейчас.
23. Сергей Начина (serg_gres) 12.03.15 11:13
24. Алексей Гладких (revned) 13.03.15 21:28
отпишусь чтобы не потерять.. попробую применить..
25. Сергей (InShallaH) 06.05.15 13:22
Не получается вывести несколько дней на одной форме. Ставлю периодичность день, кратность 5 но вижу только один день и временную шкалу. Что делаю не так?
26. Наталья Баева (Emiliya_Emili) 13.05.15 11:11
как правильно загрузить файл с в конфигурацию?
27. Сергей Галюк (dj_serega) 13.05.15 15:55
(26) Emiliya_Emili, это dt. Нужно создать новую (пустую) базу. Потом в конфигураторе "Администрирование - Загрузить информационную базу". Выбрать скачанный файл и нажать "открыть".
28. Наталья Баева (Emiliya_Emili) 14.05.15 07:48
(27) dj_serega, я это пробовала но у программа не видит этот файл, можно загрузить только файлы формата .cf
также пробовала чет простое открытие
29. Наталья Баева (Emiliya_Emili) 14.05.15 13:28
(27) dj_serega, удалила систему и заново поставила, странно но все заработало
30. Сергей Галюк (dj_serega) 18.05.15 14:24
31. Дмитрий Топчий (hakerxp) 19.05.15 09:14
1С как всегда - вроде и нормально, но все равно не хватает функционала.

Проблема номер раз - нет возможности выстраивать иерархию измерений и это основной минус данного планировщика в данный момент (8.3.6.1999)
Можно добавлять измерения, в них элементы, но они не связаны.
Например, есть автоцентры, в них - менеджеры. Так вот планировщик не даст вам выстроить подчинение автоцентр-менеджер - он будет брать всех менеджеров и "пихать" во все автоцентры. И еще не допускает неуникальность элементов измерений. Следовательно, если менеджер имеет события в нескольких автоцентрах, то планировщик отобразит его в первом автоцентре и на остальные ругнется.
В данном примере такая же проблема, если присмотреться к скринам.
32. Сергей Галюк (dj_serega) 19.05.15 14:56
(31) hakerxp,
нет возможности выстраивать иерархию измерений и это основной минус
Согласен на 100%. Надеюсь этот функционал будет реализован в будущем.
Можно добавлять измерения, в них элементы, но они не связаны.
...
В данном примере такая же проблема, если присмотреться к скринам.

Аналогично.

Элементарные вещи не смогли реализовать. То ли это бетку решили выпустить, то ли "забыли" сделать этот необходимый функционал. Ну или не предназначено.

Я выкручивался созданием групп и выделял их цветом. Немного не так как на скринах.
33. Дмитрий Топчий (hakerxp) 05.06.15 15:37
Надо 1С спросить об этой проблеме.
34. Надежда Ефимова (TINa78) 17.08.15 15:49
Вопрос: интересно, а для отчета типа "план-факт" с привязкой ко времени этот механизм подойдет?
35. Сергей Галюк (dj_serega) 18.08.15 08:12
(34) TINa78, В принципе можно "запилить". Даже и ничего-так будет выглядеть. Но в этом вопросе лучше диаграммы не будет ничего, имхо.
36. Nicholas Mikuslas (Nicholas) 26.08.15 14:49
Поймал интересный баг и не пойму в какую сторону копать.
Платформа 8.3.6.2100, установлена на сервере. База файловая. Все работают через RDP. У некоторых пользователей планировщик работает прекрасно, а у некоторых не работает вообще (на форме отображается пустой прямоугольник и на клики мышью не реагирует).
Насколько я понимаю, у этих пользователей не хватает каких-то прав. Может быть на запуск определенной DLL, отвечающей за планировщик, или на запись в какой-нибудь временный файл.
37. Сергей Галюк (dj_serega) 27.08.15 17:47
(36) Nicholas, А если создать внешнюю обработку, там добавить реквизит с планировщиком, заполнить его и попытаться открыть, аналогично?
38. Алексей Папанов (El_Loco) 30.09.15 22:28
спасибо за публикацию! в качестве примера очень здорово подошло.
dj_serega; +1 Ответить
39. WED WED (smwed) 04.12.15 15:32
Добрый день!

Кто-нибудь знает, можно ли с помощью планировщика сделать график подобный как на рисунке?
Сейчас он делается в табличном поле.
Прикрепленные файлы:
40. Сергей Галюк (dj_serega) 22.12.15 19:04
(39) smwed, хм... поковыряться нужно. Если еще актуально, свяжитесь со мной в ЛС.
41. V. L. (Vladal) 01.02.16 20:57
Кто придумал, как вывести месяц в виде календаря?
Например, в 7 столбиков и 5 строк.
Я не смог. Кто смог, поделитесь, пожалуйста.
42. Сергей Галюк (dj_serega) 02.02.16 18:14
(41) Vladal, Так?
Прикрепленные файлы:
43. V. L. (Vladal) 02.02.16 18:21
Да. Форма такая.
Я сделал как во вложении, но сначала не смог победить отображение часов сверху "План задач Месяц.PNG",
а теперь не могу победить периоды слева - файл "План задач Месяц по датам.PNG"
Выделил желтым шкалу, которую хочу убрать.

Я бы это отредактировал свойством элемента формы, как нарисовано на картинке выше в этом обсуждении, но этот способ не подходит, потому что вывожу несколько различных интервалов (день, неделя, месяц) по кнопке.
Прикрепленные файлы:
44. Сергей Галюк (dj_serega) 02.02.16 18:25
(43) Vladal, Так подойдет?
Прикрепленные файлы:
45. V. L. (Vladal) 02.02.16 18:47
(44) dj_serega, увы, нет. Я программно эти шкалы перезаполняю при нажатьии кнопки "день", "неделя" или "месяц".
Еще покумекаю...

Заборол!
Получилось установкой свойства
Планировщик.ОтображатьПеренесенныеЗаголовки = Истина;
для День м Неделя, и
Планировщик.ОтображатьПеренесенныеЗаголовки = Ложь;
для Месяца.
46. Nicholas Mikuslas (Nicholas) 25.08.16 09:03
(37) dj_serega, по всякому пробовали. Замечено, что проблема только на серверах 2012. На 2008 все нормально. Проблема явно с какими-то правами, т.к. под администратором работает, но понять с какими именно не получается.
Иногда помогает добавление about:security_1cv8.exe в исключительные узлы Интернет Эксплоэра, но крайне редко.
47. Александр Кузьмин (alex-1c) 22.11.16 11:22
Подскажите, как можно вывести на печать планировщик.?
48. Александр Кузьмин (alex-1c) 22.11.16 13:28
(47) alex-1c, сам разобрался. Нужно было просто в настройка предварительного просмотра поставить флажок просмотра рисунков