Собственно, статья будет посвящена этому новому, и как по мне, удобному механизму.
Так как в процессе изучения было выявлено несколько нюансов заполнения, решил написать статью с кодом заполнения.
Первым делом ссылки на ресурсы:
— Заметки из зазеркалья (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/
О… спасибо за изучение темы )))). Я пока еще реализовывать для 8.3.6 не начал, хочется текущий функционал полностью допилить. А интерфейс можно заменить позже, я не вижу пока грядущих проблем.
Скажи в драг-энд-дроп на поле планировщика 1С поддерживает? А то у меня это один из недостатков )))))
Инструмент замечательный и малополезный.
(1) vandalsvq, Поддерживает.
Спасибо за идею. Я подумаю что еще в статью дописать.
(2) WalterMort, Ну на каждый механизм есть свой купец 🙂
Идей можно напридумывать.
Вот первые 3 которые на ум пришли.
1. График работ продавцов по магазинам.
2. Отобразить график водителей по маршрутам.
3. Так же по дням недели можно расписать посещения магазинов торговых менеджеров.
(2) WalterMort, на вскидку:
1. Заменить календарь который есть сейчас во всех типовых конфигурациях БП 3, Документооборот. Не говоря уже о подделках от рарус
2. Наконец есть развитие подсистемы задачи. Сами по себе задачи не создают план на неделю, планировщик — запросто
3. Избавиться от диаграммы Ганта в тех случаях когда нет нужды ставить связь между задачами
Это из общего. А частностей могу еще насыпать вагончик ))))
Спасибо за изучение. Жду с нетерпением.
Мой вариант это планирование загрузки мастеров приемщиков и постов в рем. зоне.
В БСП еще не добавили, не в курсе?
Эх! в свое время парился с диаграммой ганта, нужно было выводить графики заселения (даже пришлось сделать 2 обработки с гантом и на табличном документе).. в одной конфе видел что разрабы плюнули на нее и сдали свой ActiveX элемент специально под эти цели. Наконец-то и 1С сделало нам штатный нормальный контролл. За статью спасибо, плюс!
(6) spetzpozh, Да вряд ли. Релиза 8.3.6 еще нет.
Спасибо, будем юзать ))
Спс, у меня до него руки еще не дошли — плотно засел за расширение — все таки оказался не такой бесполезный механизм, можно много интересного сделать.
в копилку.. на потом полюбопытствовать…
(10) caponid,
А напишите статейку по ним. Я за них как раз и не садился еще 🙂
На какой версии 1С пробовали?
У меня шкала времени узкая совсем, не видно какой час…
(12) serg_gres,
Тестировал планировщик на 8.3.6.1760.
На основной панели или в шкале времени?
Вещь вроде полезная… но только для небольших личных дел с почасовым планированием. Пытался использовать как замену д. Ганта для проектов с планированием по дням, и так крутил и эдак — получается все равно коряво.
Не проще ли использовать Microsoft Outlook? Сам пользуюсь уже давно этим инструментом. Все, что нужно в нем уже есть. Календарь, задачи, письма, общие папки, разделение папок по пользователям(настройка прав) и много всего другого. Для работы в онлайн есть OWA. А если и этого всего будет недостаточно, то есть user forms+VB Script В них уже можно сделать все, чего не хватает.
(15) «Проще» очень сильно не равно «Лучше»)
(15) talych, Outlook стоит дополнительных денег и некоторые компании придерживаются политики легального (по возможности бесплатного) софта. А ежели задачи привязываются к неким процессам в 1С, то ИМХО в 1С их и проще оставлять, а не гонять туда-сюда.
(14) friend0, А какая структура необходима?
Если я правильно уловил то:
Измерения: Проект, Сотрудник
Периодичность: День
(18) «как должно быть» я честно говоря виду с трудом. Но есть как бы две отдельные задачи:
1. Внутри одного проекта показать когда какие этапы будут начинаться/заканчиваться
2. Показать все проекты скопом, чтоб увидеть на каких этапах задержки и когда какой проект завершится.
Самая главный фича(недостаток) планировщика — все показывается на экране и не надо (невозможно) скролить одновременно по вертикали и горизонтали.
Со второй задачей все совсем плохо — активных проектов дофига и все получается слишком мелко/скучковано и не работает скроллинг, чтоб можно было пролистать по интересующему проекту по времени вперед или по определенному времени пробежаться по проектам.
С первой проще, но все равно выглядит корявенько. По сотрудникам бить смысла особо нет. Можно бить по 2-3 веткам, но на большом экране получается слишком фрагментированно.
После различных манипуляций оптимальным показался вариант вообще без измерений.
Но все равно остается вопрос с масштабом: во-первых с периодами отображения, во-вторых с размером окна (или элемента формы) пользователя. От этого тоже наглядость сильно гуляет.
(19) friend0, Я Вас понял. Попробую поковырять на досуге. Две головы то лучше 🙂
(20) ну так-то оно не особо и надо. Просто воодушевился зазеркальем, а как до практики дошло — приуныл.
Ну и опять же реальные проекты сами по себе имеют разные масштабы. И этапы в них — один на полгода и кучка на 1-2 дня.
(21) friend0, А вдруг получится выкрутить 🙂 Сам планирую некоторые объекты перевести (в будущем) на планировщик. Уже вижу что не всё получится. Но некоторые даже сейчас.
(13)
На оси времени.
отпишусь чтобы не потерять.. попробую применить..
Не получается вывести несколько дней на одной форме. Ставлю периодичность день, кратность 5 но вижу только один день и временную шкалу. Что делаю не так?
как правильно загрузить файл с в конфигурацию?
(26) Emiliya_Emili, это dt. Нужно создать новую (пустую) базу. Потом в конфигураторе «Администрирование — Загрузить информационную базу». Выбрать скачанный файл и нажать «открыть».
(27) я это пробовала но у программа не видит этот файл, можно загрузить только файлы формата .cf
также пробовала чет простое открытие
(27) удалила систему и заново поставила, странно но все заработало
(25) InShallaH, еще актуально?
1С как всегда — вроде и нормально, но все равно не хватает функционала.
Проблема номер раз — нет возможности выстраивать иерархию измерений и это основной минус данного планировщика в данный момент (8.3.6.1999)
Можно добавлять измерения, в них элементы, но они не связаны.
Например, есть автоцентры, в них — менеджеры. Так вот планировщик не даст вам выстроить подчинение автоцентр-менеджер — он будет брать всех менеджеров и «пихать» во все автоцентры. И еще не допускает неуникальность элементов измерений. Следовательно, если менеджер имеет события в нескольких автоцентрах, то планировщик отобразит его в первом автоцентре и на остальные ругнется.
В данном примере такая же проблема, если присмотреться к скринам.
(31) hakerxp,
Согласен на 100%. Надеюсь этот функционал будет реализован в будущем.
…
В данном примере такая же проблема, если присмотреться к скринам.
Аналогично.
Элементарные вещи не смогли реализовать. То ли это бетку решили выпустить, то ли «забыли» сделать этот необходимый функционал. Ну или не предназначено.
Я выкручивался созданием групп и выделял их цветом. Немного не так как на скринах.
Надо 1С спросить об этой проблеме.
Вопрос: интересно, а для отчета типа «план-факт» с привязкой ко времени этот механизм подойдет?
(34) TINa78, В принципе можно «запилить». Даже и ничего-так будет выглядеть. Но в этом вопросе лучше диаграммы не будет ничего, имхо.
Поймал интересный баг и не пойму в какую сторону копать.
Платформа 8.3.6.2100, установлена на сервере. База файловая. Все работают через RDP. У некоторых пользователей планировщик работает прекрасно, а у некоторых не работает вообще (на форме отображается пустой прямоугольник и на клики мышью не реагирует).
Насколько я понимаю, у этих пользователей не хватает каких-то прав. Может быть на запуск определенной DLL, отвечающей за планировщик, или на запись в какой-нибудь временный файл.
(36) Nicholas, А если создать внешнюю обработку, там добавить реквизит с планировщиком, заполнить его и попытаться открыть, аналогично?
спасибо за публикацию! в качестве примера очень здорово подошло.
Добрый день!
Кто-нибудь знает, можно ли с помощью планировщика сделать график подобный как на рисунке?
Сейчас он делается в табличном поле.
(39) smwed, хм… поковыряться нужно. Если еще актуально, свяжитесь со мной в ЛС.
Кто придумал, как вывести месяц в виде календаря?
Например, в 7 столбиков и 5 строк.
Я не смог. Кто смог, поделитесь, пожалуйста.
(41) Vladal, Так?
Да. Форма такая.
Я сделал как во вложении, но сначала не смог победить отображение часов сверху «План задач Месяц.PNG»,
а теперь не могу победить периоды слева — файл «План задач Месяц по датам.PNG»
Выделил желтым шкалу, которую хочу убрать.
Я бы это отредактировал свойством элемента формы, как нарисовано на картинке выше в этом обсуждении, но этот способ не подходит, потому что вывожу несколько различных интервалов (день, неделя, месяц) по кнопке.
(43) Vladal, Так подойдет?
(44) увы, нет. Я программно эти шкалы перезаполняю при нажатьии кнопки «день», «неделя» или «месяц».
Еще покумекаю…
Заборол!
Получилось установкой свойства
для День м Неделя, и
для Месяца.
(37) по всякому пробовали. Замечено, что проблема только на серверах 2012. На 2008 все нормально. Проблема явно с какими-то правами, т.к. под администратором работает, но понять с какими именно не получается.
Иногда помогает добавление about:security_1cv8.exe в исключительные узлы Интернет Эксплоэра, но крайне редко.
Подскажите, как можно вывести на печать планировщик.?
(47) alex-1c, сам разобрался. Нужно было просто в настройка предварительного просмотра поставить флажок просмотра рисунков
Есть у кого рабочий код, как отобразить месяц и неделю как в google календаре? Не могу разобраться.
Показать
У меня ерунда получается (
(49) А как в гугл календаре?
(50) Неделю сделал, а вот месяц нужен вроде этого
Коллеги, а подскажите, как переопределить событие редактирования задачи планировщика?
К примеру, у нас есть документы «Задача», которые отображаются в планировщике. Когда мы кликаем по задаче, мы хотим, чтобы открылась форма нашего уже записанного ранее документа, чтобы мы могли его отредактировать.
Я прочел, что это делается через событие планировщика ПередНачаломБыстрогоРедактирования.
В нем надо установить СтандартнаяОбработка=Ложь.
А как получить ссылку и открыть форму требуемого документа?
А как сохранять данные в планировщике после выхода из него, или печать этих данных?
(52) У элемента Планировщик есть свойство Выделенные элементы, у которого есть свойство Значение измерений.
Если при заполнении в ЗначенияИзмерений элемента помещаете ссылку, то при активации (одинарный клик) или при выборе элемента (двойной клик) планировщика можно по этим данным открыть форму нужного документа.
Проблема с этим у меня возникла при добавлении (перетаскивании) на планировщик новых элементов. Решил через поиск по номеру документа.
У меня реализовано просто заполнение данных при активации строки.
Вопрос — как увеличить высоту элементов?
(53) Печать — в меню есть предварительный просмотр. Или через файл — печать. Планировщик сделан веб страницей, поэтому просмотр через соответствующее приложение.
Сохранить данные после выхода — где-то в базе, например, в регистре сведений дополнительном. Или нужно смотреть откуда в планировщик попадают данные — и при изменении элементов планировщика перезаписывать в том месте, откуда берутся данные.
(55)
Алексей а можете привести пример, с сохранением в регистре сведений.
(56) У меня самописная часть конфы, где это записывается. Там свой регистр. На его основании строится планировщик. Запись пока еще я не реализовал в нем, т. к. пока нет необходимости (пользователи не захотели так работать, хотят по старому)) )
Вот немного набросал, только там еще проверки нужны.
Показать
Срабатывает, когда перетаскиваем элемент планировщика по времени. Потом записывается в регистр с новым временем.
(54) (54) У меня планировщик выводит расписание записей к врачам.
т.е. у меня одно измерение планировщика — Врачи.
как же я в измерения запихну ссылку?
получается, что в моем случае никак?
(59) Там помимо измерений, есть реквизит Значение произвольного типа, вот туда можно что угодно пихать
(60) Спасибо! а то у меня уже бредовые мысли пошли писать номер документа в подсказку элемента планировщика, а потом искать… О_о
(61) На самом деле почитайте в СП про объект Планировщик, и расширение формы ПолеПланировщика, там много чего интересно написано
(62) Да, тема интересная и очень востребованная большим числом пользователей.
для остальных кусочек кода, которым я открываю документ:
Показать
Коллеги, реально ли как-то задать интервал фона не для всех элементов измерений, а только нужным?
рисунок прикреплю для наглядности.
т.е. делаю я расписание врачам, которые у меня являются измерениями планировщика. и хочу подсвечивать фоном тот интервал времени, в который данный врач работает.
ну типа задали график работы врачу и показываем цветом в какое время он может принять.
есть такой код:
Показать
но так окрашиваются все измерения за день. а я хочу отдельным врачам подсвечивать свои интервалы.
(64) Думаю так сделать не получится, исходя из сущности планировщика, что есть измерения, и время, они одинаковы для всех, и на их пересечении элементы.
Костыль конечно, но можно на время в которое не работает врач создавать служебный элемент, со своим цветом, и запрещать его редактировать, в целом будет видно что там нельзя добавить новый прием.
Однако, если получится ваша затея, буду рад если поделитесь решением.
(59) Ну и что, что одно измерение. Все можно сделать и для одного.
Показать
(64) Не совсем понял. Нужно как в (54) ? один элемент одного цвета, другой — другого? Так можно. Я при заполнении делал.
Хотя Вы про цвет фона планировщика… вот тут не знаю.
(66) я же описал, что надо и код привел. хочу через свойство планировщика ИнтервалФона окрасить определенный временной промежуток, но не для всех измерений, а для заданных.
(65)У меня так получилось.
Сначала создать таблицу значений в которую разместить доступные для записи интервалы времени.
Из этой таблицы раскрасить фоны планировщика.
Показать
А потом проверять нужное время на доступность в ТЗ при клике по планировщику.
Показать
Показать
Подскажите пожалуйста минимальную высоту элемента.
Заполняю элементами по 5 минут, а отображается по 8. Не понятно.
Показать
Добрый день! Подскажите пожалуйста, каким образом можно за определенным промежутком времени, а именно с 12 -13 , закрепить текст элемента » Обед». Можно ли это как то написать в программном коде?
(51) тоже остановился на том, что не смог сделать месяц как в гугл календарь…
Может кто подскажет, возможно ли, и если да то как?
(65) столкнулся с такой задачей, решается так
Здравствуйте, подскажите пожалуйста, как сделать полосы прокрутки у планировщика
Здравствуйте! А как получить значение добавленных измерений при вызове ПередНачаломБыстрогоРедактирования? На стандартной форме есть (переговорная), но не понимаю, откуда и как вытащить, чтобы передать своей форме редактирования НОВОГО элемента?
(74) я свою форму нарисовал, с разными реквизитами.
(1) может кому-то будет полезно.
Драг энд-энд-дроп поддерживает, но только для элементов планировщика.
Т.е. если вы захотите например взять элемент из таблицы (задачу из списка) и перекинуть на планировщик — он просто так это вам сделать не даст.
Но, если в процедуре ПроверкаПеретаскивания для планировщика СтандартнаяОбработка установить в ложь, а ПриОкончанииПеретаскивания или Перетаксивание — обработать получение нового элемента — то можно вполне себе подружить таблицу или дерево.
(54) АРМ печатника сами делали или это конфигурация есть?
(51) сделал в итоге? то же не могу сделать, не понимаю как его нужно настроить, уже все варианты перебрал
(79)
Нет. В таком виде как на моей картинке в планировщике невозможно сделать, т.к надо в одной шкале совместить измерение и шкалу времени.
(80) странно, я сделал. Нашел тут обработку где такой пример был.
https://infostart.ru/public/853571/
Вот тут
Третья картинка.
(81) Посмотрел. Даже не близко к тому, что я спрашивал здесь.
У меня на картинке строки — это измерение Сотрудник и внутри каждого шкала времени «Часы», а по столбцам — шкала времени «Дни». Скроллится всё по горизонтали — влево даты раньше, вправо — даты позже.
Как я ни крутил, но такого же результата от планировщика добиться не смог.
Максимально близкое, что я получил это
столбцы — Дни, а в внутри каждого дня Сотрудники
строки: Шкала времени «Часы»
Такой результат не устраивает и пока пользуемся старым вариантом.
(78) Сам делал, УНФ доработанная.
(83) Дорабатываю BAS ERP для типографии. Интересно бы посмотреть этот АРМ, могу купить или взамен что-то предложить…