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

15.07.15

Разработка - Инструментарий разработчика

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки для того, чтобы самостоятельно ее доработать для вашей базы данных. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в вашей базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке Купить один файл
Планировщик.dt
.dt 101,62Kb
254
254
1 SM
Скачать Купить за 1 850 руб.

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    КонецЦикла;

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

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

 

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

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

 


См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    135841    750    391    

779

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 руб.

06.10.2023    10742    25    6    

55

Инструментарий разработчика Программист Платформа 1С v8.3 1С:Управление нашей фирмой 3.0 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

5400 руб.

17.05.2024    7743    20    14    

51

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    6656    18    2    

44

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 руб.

14.01.2013    180885    1101    0    

874

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    15730    3    12    

38

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    100770    241    97    

300

Инструментарий разработчика Перенос данных 1C Программист Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    24239    17    15    

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

(2) WalterMort, Ну на каждый механизм есть свой купец :)
Идей можно напридумывать.
Вот первые 3 которые на ум пришли.
1. График работ продавцов по магазинам.
2. Отобразить график водителей по маршрутам.
3. Так же по дням недели можно расписать посещения магазинов торговых менеджеров.
sergio199; +1 Ответить
77. pbahushevich 09.09.19 17:51 Сейчас в теме
(1) может кому-то будет полезно.
Драг энд-энд-дроп поддерживает, но только для элементов планировщика.
Т.е. если вы захотите например взять элемент из таблицы (задачу из списка) и перекинуть на планировщик - он просто так это вам сделать не даст.

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

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

На основной панели или в шкале времени?
23. serg_gres 153 12.03.15 11:13 Сейчас в теме
14. friend0 11.03.15 11:37 Сейчас в теме
Вещь вроде полезная... но только для небольших личных дел с почасовым планированием. Пытался использовать как замену д. Ганта для проектов с планированием по дням, и так крутил и эдак - получается все равно коряво.
18. dj_serega 393 11.03.15 14:11 Сейчас в теме
(14) friend0, А какая структура необходима?
Если я правильно уловил то:
Измерения: Проект, Сотрудник
Периодичность: День
19. friend0 11.03.15 14:56 Сейчас в теме
(18) "как должно быть" я честно говоря виду с трудом. Но есть как бы две отдельные задачи:
1. Внутри одного проекта показать когда какие этапы будут начинаться/заканчиваться
2. Показать все проекты скопом, чтоб увидеть на каких этапах задержки и когда какой проект завершится.

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

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

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

Но все равно остается вопрос с масштабом: во-первых с периодами отображения, во-вторых с размером окна (или элемента формы) пользователя. От этого тоже наглядость сильно гуляет.
Прикрепленные файлы:
20. dj_serega 393 11.03.15 15:27 Сейчас в теме
(19) friend0, Я Вас понял. Попробую поковырять на досуге. Две головы то лучше :)
21. friend0 11.03.15 15:58 Сейчас в теме
(20) ну так-то оно не особо и надо. Просто воодушевился зазеркальем, а как до практики дошло - приуныл.
Ну и опять же реальные проекты сами по себе имеют разные масштабы. И этапы в них - один на полгода и кучка на 1-2 дня.
22. dj_serega 393 11.03.15 16:35 Сейчас в теме
(21) friend0, А вдруг получится выкрутить :) Сам планирую некоторые объекты перевести (в будущем) на планировщик. Уже вижу что не всё получится. Но некоторые даже сейчас.
15. talych 17 11.03.15 12:19 Сейчас в теме
Не проще ли использовать Microsoft Outlook? Сам пользуюсь уже давно этим инструментом. Все, что нужно в нем уже есть. Календарь, задачи, письма, общие папки, разделение папок по пользователям(настройка прав) и много всего другого. Для работы в онлайн есть OWA. А если и этого всего будет недостаточно, то есть user forms+VB Script В них уже можно сделать все, чего не хватает.
16. cleaner_it 221 11.03.15 12:58 Сейчас в теме
(15) "Проще" очень сильно не равно "Лучше")
17. friend0 11.03.15 13:08 Сейчас в теме
(15) talych, Outlook стоит дополнительных денег и некоторые компании придерживаются политики легального (по возможности бесплатного) софта. А ежели задачи привязываются к неким процессам в 1С, то ИМХО в 1С их и проще оставлять, а не гонять туда-сюда.
talych; dj_serega; +2 Ответить
24. revned 6 13.03.15 21:28 Сейчас в теме
отпишусь чтобы не потерять.. попробую применить..
25. InShallaH 59 06.05.15 13:22 Сейчас в теме
Не получается вывести несколько дней на одной форме. Ставлю периодичность день, кратность 5 но вижу только один день и временную шкалу. Что делаю не так?
30. dj_serega 393 18.05.15 14:24 Сейчас в теме
26. Emiliya_Emili 13.05.15 11:11 Сейчас в теме
как правильно загрузить файл с в конфигурацию?
27. dj_serega 393 13.05.15 15:55 Сейчас в теме
(26) Emiliya_Emili, это dt. Нужно создать новую (пустую) базу. Потом в конфигураторе "Администрирование - Загрузить информационную базу". Выбрать скачанный файл и нажать "открыть".
28. Emiliya_Emili 14.05.15 07:48 Сейчас в теме
(27) я это пробовала но у программа не видит этот файл, можно загрузить только файлы формата .cf
также пробовала чет простое открытие
29. Emiliya_Emili 14.05.15 13:28 Сейчас в теме
(27) удалила систему и заново поставила, странно но все заработало
31. hakerxp 2983 19.05.15 09:14 Сейчас в теме
1С как всегда - вроде и нормально, но все равно не хватает функционала.

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

Аналогично.

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

Я выкручивался созданием групп и выделял их цветом. Немного не так как на скринах.
33. hakerxp 2983 05.06.15 15:37 Сейчас в теме
Надо 1С спросить об этой проблеме.
34. TINa78 25 17.08.15 15:49 Сейчас в теме
Вопрос: интересно, а для отчета типа "план-факт" с привязкой ко времени этот механизм подойдет?
35. dj_serega 393 18.08.15 08:12 Сейчас в теме
(34) TINa78, В принципе можно "запилить". Даже и ничего-так будет выглядеть. Но в этом вопросе лучше диаграммы не будет ничего, имхо.
36. Nicholas 897 26.08.15 14:49 Сейчас в теме
Поймал интересный баг и не пойму в какую сторону копать.
Платформа 8.3.6.2100, установлена на сервере. База файловая. Все работают через RDP. У некоторых пользователей планировщик работает прекрасно, а у некоторых не работает вообще (на форме отображается пустой прямоугольник и на клики мышью не реагирует).
Насколько я понимаю, у этих пользователей не хватает каких-то прав. Может быть на запуск определенной DLL, отвечающей за планировщик, или на запись в какой-нибудь временный файл.
37. dj_serega 393 27.08.15 17:47 Сейчас в теме
(36) Nicholas, А если создать внешнюю обработку, там добавить реквизит с планировщиком, заполнить его и попытаться открыть, аналогично?
46. Nicholas 897 25.08.16 09:03 Сейчас в теме
(37) по всякому пробовали. Замечено, что проблема только на серверах 2012. На 2008 все нормально. Проблема явно с какими-то правами, т.к. под администратором работает, но понять с какими именно не получается.
Иногда помогает добавление about:security_1cv8.exe в исключительные узлы Интернет Эксплоэра, но крайне редко.
38. AlexeyPapanov 463 30.09.15 22:28 Сейчас в теме
спасибо за публикацию! в качестве примера очень здорово подошло.
dj_serega; +1 Ответить
39. smwed 1 04.12.15 15:32 Сейчас в теме
Добрый день!

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

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

Заборол!
Получилось установкой свойства
Планировщик.ОтображатьПеренесенныеЗаголовки = Истина;
для День м Неделя, и
Планировщик.ОтображатьПеренесенныеЗаголовки = Ложь;
для Месяца.
47. alex-1c 22.11.16 11:22 Сейчас в теме
Подскажите, как можно вывести на печать планировщик.?
48. alex-1c 22.11.16 13:28 Сейчас в теме
(47) alex-1c, сам разобрался. Нужно было просто в настройка предварительного просмотра поставить флажок просмотра рисунков
49. horhe_x3 10.05.17 15:47 Сейчас в теме
Есть у кого рабочий код, как отобразить месяц и неделю как в google календаре? Не могу разобраться.

ПериодОтображенияНачало = НачалоНедели(ТекущаяДата());
	ПериодОтображенияКонец = КонецНедели(ТекущаяДата());
	
	Объект.План.ТекущиеПериодыОтображения.Очистить();
	Объект.План.ТекущиеПериодыОтображения.Добавить(ПериодОтображенияНачало, ПериодОтображенияКонец);
	Объект.План.ШкалаВремени.Положение = ПоложениеШкалыВремени.Верх;
	Объект.План.ЕдиницаПериодическогоВарианта = ТипЕдиницыШкалыВремени.День;
	Объект.План.ОтображатьПеренесенныеЗаголовки = Истина;
	Объект.План.КратностьПериодическогоВарианта = 7;
Показать


У меня ерунда получается (
50. dj_serega 393 12.05.17 17:40 Сейчас в теме
(49) А как в гугл календаре?
51. horhe_x3 12.05.17 19:16 Сейчас в теме
(50) Неделю сделал, а вот месяц нужен вроде этого
Прикрепленные файлы:
71. baracuda 2 05.07.18 22:36 Сейчас в теме
(51) тоже остановился на том, что не смог сделать месяц как в гугл календарь...
Может кто подскажет, возможно ли, и если да то как?
79. AllexSoft 30.09.19 16:57 Сейчас в теме
(51) сделал в итоге? то же не могу сделать, не понимаю как его нужно настроить, уже все варианты перебрал
80. smwed 1 30.09.19 20:27 Сейчас в теме
(79)
Нет. В таком виде как на моей картинке в планировщике невозможно сделать, т.к надо в одной шкале совместить измерение и шкалу времени.
81. AllexSoft 01.10.19 10:14 Сейчас в теме
(80) странно, я сделал. Нашел тут обработку где такой пример был.
Вот тут https://infostart.ru/public/853571/
Третья картинка.
82. smwed 1 01.10.19 13:57 Сейчас в теме
(81) Посмотрел. Даже не близко к тому, что я спрашивал здесь.
У меня на картинке строки - это измерение Сотрудник и внутри каждого шкала времени "Часы", а по столбцам - шкала времени "Дни". Скроллится всё по горизонтали - влево даты раньше, вправо - даты позже.

Как я ни крутил, но такого же результата от планировщика добиться не смог.
Максимально близкое, что я получил это
столбцы - Дни, а в внутри каждого дня Сотрудники
строки: Шкала времени "Часы"
Такой результат не устраивает и пока пользуемся старым вариантом.
104. SAnatoliy 06.01.24 00:13 Сейчас в теме
(51)
Подскажите как реализовать месяц?
52. AlexeyPapanov 463 11.06.17 16:53 Сейчас в теме
Коллеги, а подскажите, как переопределить событие редактирования задачи планировщика?
К примеру, у нас есть документы "Задача", которые отображаются в планировщике. Когда мы кликаем по задаче, мы хотим, чтобы открылась форма нашего уже записанного ранее документа, чтобы мы могли его отредактировать.


Я прочел, что это делается через событие планировщика ПередНачаломБыстрогоРедактирования.
В нем надо установить СтандартнаяОбработка=Ложь.

А как получить ссылку и открыть форму требуемого документа?
54. revned 6 14.06.17 10:38 Сейчас в теме
(52) У элемента Планировщик есть свойство Выделенные элементы, у которого есть свойство Значение измерений.
Если при заполнении в ЗначенияИзмерений элемента помещаете ссылку, то при активации (одинарный клик) или при выборе элемента (двойной клик) планировщика можно по этим данным открыть форму нужного документа.
Проблема с этим у меня возникла при добавлении (перетаскивании) на планировщик новых элементов. Решил через поиск по номеру документа.
У меня реализовано просто заполнение данных при активации строки.

Вопрос - как увеличить высоту элементов?

user2077167; cdmannnn; +2 Ответить
59. AlexeyPapanov 463 07.07.17 21:44 Сейчас в теме
(54) (54) У меня планировщик выводит расписание записей к врачам.
т.е. у меня одно измерение планировщика - Врачи.
как же я в измерения запихну ссылку?
получается, что в моем случае никак?
60. Dream_kz 129 07.07.17 21:54 Сейчас в теме
(59) Там помимо измерений, есть реквизит Значение произвольного типа, вот туда можно что угодно пихать
AlexeyPapanov; +1 Ответить
61. AlexeyPapanov 463 07.07.17 21:58 Сейчас в теме
(60) Спасибо! а то у меня уже бредовые мысли пошли писать номер документа в подсказку элемента планировщика, а потом искать... О_о
62. Dream_kz 129 07.07.17 22:02 Сейчас в теме
(61) На самом деле почитайте в СП про объект Планировщик, и расширение формы ПолеПланировщика, там много чего интересно написано
63. AlexeyPapanov 463 07.07.17 22:07 Сейчас в теме
(62) Да, тема интересная и очень востребованная большим числом пользователей.

для остальных кусочек кода, которым я открываю документ:
&НаКлиенте
Процедура ПланировщикПередНачаломБыстрогоРедактирования(Элемент, СтандартнаяОбработка)
	
	СтандартнаяОбработка=ложь;
	
	ОткрытьЗначение(Элемент.ВыделенныеЭлементы[0].значение); // в поле "значение" мы заранее пишем ссылку на документ
	
КонецПроцедуры
Показать
mybracho; +1 Ответить
103. SAnatoliy 04.01.24 22:56 Сейчас в теме
(63)
ОткрытьЗначение(Элемент.ВыделенныеЭлементы[0].значение);


Попробовал по Вашему совету.
В УФ выходит сообщение, что:
по причине:
Использование модальных окон в данном режиме запрещено!

Подскажите как исправить?

Надо из планировщика, открыть окно документа для редактирования
66. revned 6 19.07.17 15:33 Сейчас в теме
(59) Ну и что, что одно измерение. Все можно сделать и для одного.
Для Каждого ВыборкаНарядов Из ТабНарядов Цикл 
		СоответствиеЗначений = Новый Соответствие;
		СоответствиеЗначений.Вставить("Статус",	ВыборкаНарядов.Статус); // - это перечисление
		СоответствиеЗначений.Вставить("Наряд",	ВыборкаНарядов.Наряд); // - это ссылка на документ
		
		
		НовыйЭлемент = ЭлементыПланировщика.Добавить(ВыборкаНарядов.НачалоПечати, ВыборкаНарядов.ОкончаниеПечати);
		НовыйЭлемент.ЗначенияИзмерений  = Новый ФиксированноеСоответствие(СоответствиеЗначений);
		НовыйЭлемент.Текст              = ПечатникъНожи.УдалитьЛидирующиеНули(ВыборкаНарядов.Номер);
		НовыйЭлемент.ЦветФона			= ВыбратьЦветФона(ВыборкаНарядов.Статус); // - во тут устанавливаю цвет фона элемента в завасимости от "статуса"
		НовыйЭлемент.Подсказка			= НовыйЭлемент.Текст; 
	КонецЦикла;
Показать

(64) Не совсем понял. Нужно как в (54) ? один элемент одного цвета, другой - другого? Так можно. Я при заполнении делал.
Хотя Вы про цвет фона планировщика... вот тут не знаю.
67. AlexeyPapanov 463 19.07.17 16:47 Сейчас в теме
(66) я же описал, что надо и код привел. хочу через свойство планировщика ИнтервалФона окрасить определенный временной промежуток, но не для всех измерений, а для заданных.
78. JohnGalt 58 19.09.19 11:10 Сейчас в теме
(54) АРМ печатника сами делали или это конфигурация есть?
83. revned 6 09.10.19 12:55 Сейчас в теме
(78) Сам делал, УНФ доработанная.
84. JohnGalt 58 09.10.19 13:00 Сейчас в теме
(83) Дорабатываю BAS ERP для типографии. Интересно бы посмотреть этот АРМ, могу купить или взамен что-то предложить...
53. user760974 13.06.17 12:48 Сейчас в теме
А как сохранять данные в планировщике после выхода из него, или печать этих данных?
55. revned 6 14.06.17 10:50 Сейчас в теме
(53) Печать - в меню есть предварительный просмотр. Или через файл - печать. Планировщик сделан веб страницей, поэтому просмотр через соответствующее приложение.
Сохранить данные после выхода - где-то в базе, например, в регистре сведений дополнительном. Или нужно смотреть откуда в планировщик попадают данные - и при изменении элементов планировщика перезаписывать в том месте, откуда берутся данные.
56. Artjomrgv 21.06.17 10:50 Сейчас в теме
(55)

Алексей а можете привести пример, с сохранением в регистре сведений.
57. revned 6 21.06.17 11:20 Сейчас в теме
(56) У меня самописная часть конфы, где это записывается. Там свой регистр. На его основании строится планировщик. Запись пока еще я не реализовал в нем, т. к. пока нет необходимости (пользователи не захотели так работать, хотят по старому)) )
58. revned 6 21.06.17 11:39 Сейчас в теме
Вот немного набросал, только там еще проверки нужны.

&НаКлиенте
Процедура ПланировщикПриОкончанииРедактирования(Элемент, НовыйЭлемент, ОтменаРедактирования)
	
	Если ОтменаРедактирования Тогда 
		Возврат;
	КонецЕсли;
	Если НовыйЭлемент Тогда 
		Возврат;
	КонецЕсли;
	Если Элемент.ВыделенныеЭлементы.Количество() <> 1 Тогда 
		Возврат;
	КонецЕсли;
	СоответствиеИзмерений = Элемент.ВыделенныеЭлементы[0].ЗначенияИзмерений;
	ЗаписываемыйНаряд	= СоответствиеИзмерений["Наряд"];
	Начало				= Элемент.ВыделенныеЭлементы[0].Начало;
	Конец				= Элемент.ВыделенныеЭлементы[0].Конец;
	ЗапистьНарядНаСервере(ЗаписываемыйНаряд, Начало, Конец);
	
КонецПроцедуры

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


Срабатывает, когда перетаскиваем элемент планировщика по времени. Потом записывается в регистр с новым временем.
dialogsoft; +1 Ответить
64. AlexeyPapanov 463 12.07.17 16:42 Сейчас в теме
Коллеги, реально ли как-то задать интервал фона не для всех элементов измерений, а только нужным?
рисунок прикреплю для наглядности.

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

есть такой код:
Планировщик.ИнтервалыФона.Очистить();
	Пока пТекущийПериод < ПланировщикПериодПо  + 24*3600 Цикл
			ИнтервалФона = Планировщик.ИнтервалыФона.Добавить(
						НачалоДня(пТекущийПериод) + (Час(НачалоРабочегоДня) * 3600) + (Минута(НачалоРабочегоДня) * 60), 
						НачалоДня(пТекущийПериод) + (Час(НачалоРабочегоДня) * 3600) + (Минута(НачалоРабочегоДня) * 60) + КоличествоРабочихЧасовВДне * 3600-1) ;
			ИнтервалФона.Цвет = новый Цвет(225, 255, 225);
			
		КонецЕсли;
		пТекущийПериод = пТекущийПериод + 24*3600;
	КонецЦикла;
Показать

но так окрашиваются все измерения за день. а я хочу отдельным врачам подсвечивать свои интервалы.
Прикрепленные файлы:
65. Dream_kz 129 12.07.17 17:14 Сейчас в теме
(64) Думаю так сделать не получится, исходя из сущности планировщика, что есть измерения, и время, они одинаковы для всех, и на их пересечении элементы.
Костыль конечно, но можно на время в которое не работает врач создавать служебный элемент, со своим цветом, и запрещать его редактировать, в целом будет видно что там нельзя добавить новый прием.
Однако, если получится ваша затея, буду рад если поделитесь решением.
68. user862878 15.11.17 09:46 Сейчас в теме
(65)У меня так получилось.
Сначала создать таблицу значений в которую разместить доступные для записи интервалы времени.
Из этой таблицы раскрасить фоны планировщика.
	Планировщик.ИнтервалыФона.Очистить();
	Для Каждого Эл из ДоступныеПериоды цикл
		
		Начало = Дата(""+Формат(Эл.День,"ДФ=ггггММдд")+Формат(Эл.ВремяНачала,"ДФ=ЧЧммсс"));
		Конец = Дата(""+Формат(Эл.День,"ДФ=ггггММдд")+Формат(Эл.ВремяОкончания,"ДФ=ЧЧммсс"));
		
		НИ = Планировщик.ИнтервалыФона.Добавить(Начало,Конец); 
		НИ.Цвет = Новый Цвет(255, 255, 255);
		
	КонецЦикла;
Показать


А потом проверять нужное время на доступность в ТЗ при клике по планировщику.
Функция ДоступноДляЗаписи(Начало, Конец)
	
	Результат = Ложь;
	
	Отбор =Новый Структура("День",НачалоДня(Начало));
	Поиск_ = ДоступныеПериоды.НайтиСтроки(Отбор);
	Если Поиск_.Количество() > 0 тогда
		
		Для Каждого Эл из Поиск_ цикл
			
			НачалоДоступного = Дата(""+Формат(Эл.День,"ДФ=ггггММдд")+Формат(Эл.ВремяНачала,"ДФ=ЧЧммсс"));
			КонецДоступного = Дата(""+Формат(Эл.День,"ДФ=ггггММдд")+Формат(Эл.ВремяОкончания,"ДФ=ЧЧммсс"));
			Если _ОбщиеМеханизмы.ПересечениеПериодов(Начало,Конец,НачалоДоступного,КонецДоступного) тогда
				Результат = Истина;
			КонецЕсли;
			
		КонецЦикла;
	КонецЕсли;
	
	Возврат Результат;
	
КонецФункции
Показать


Функция ПересечениеПериодов(Начало1,Конец1,Начало2,Конец2) Экспорт
	Если Макс(Начало1,Начало2) < Мин(Конец1,Конец2) Тогда
		Прересекаются = Истина;
	Иначе
		Прересекаются = Ложь;
	КонецЕсли;	
	Возврат Прересекаются;
КонецФункции // ПересечениеПериодов()
Показать
72. suepifanov 995 04.09.18 14:04 Сейчас в теме
(65) столкнулся с такой задачей, решается так
			
ИнтервалФона = Планировщик.ИнтервалыФона.Добавить(ДатаФонаС,ДатаФонаПо);
ИнтервалФона.Цвет = новый Цвет(225, 255, 225);
				
СоответсвиеИзмерения = Новый Соответствие;
СоответсвиеИзмерения.Вставить(ИзмерениеПланировщика.Значение,ЭлементИзмерения.Значение);
ИнтервалФона.ЗначенияИзмерений = Новый ФиксированноеСоответствие(СоответсвиеИзмерения);
artseroff; +1 Ответить
91. davydoff 7 21.05.20 15:30 Сейчас в теме
(72)
СоответсвиеИзмерения = Новый Соответствие;
СоответсвиеИзмерения.Вставить(ИзмерениеПланировщика.Значение,ЭлементИзмерения.Значение);
ИнтервалФона.ЗначенияИзмерений = Новый ФиксированноеСоответствие(СоответсвиеИзмерения);


Спасибо тебе добрый человек. Сколько я искал и не мог найти.
92. AlexeyPapanov 463 28.10.20 16:41 Сейчас в теме
(72)
Спасибо! Уже несколько лет прошло, а я вернулся к этому вопросу.
Правда, я затупил вначале, не поняв, что передавать в ключ и значение переменной СоответсвиеИзмерения.

Для тех, кто тоже не вкурил:
мы должны для каждого элемента коллекции ИнтервалыФона задать параметр ЗначенияИзмерений.

Вот у меня была задача: покрасить фоном рабочее время врачей, которые являются измерениями планировщика.
Код такой:
&НаСервере
Процедура ИнтервалыФонаПланировщика()
	
	Планировщик.ИнтервалыФона.Очистить();
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ГрафикиРаботыСотрудников.Сотрудник КАК Сотрудник,
	|	ГрафикиРаботыСотрудников.Подразделение.ЦветФонаВПланировщике КАК ЦветФонаВПланировщике,
	|	ГрафикиРаботыСотрудников.ДатаНачала,
	|	ГрафикиРаботыСотрудников.ДатаОкончания
	|ИЗ
	|	РегистрСведений.ГрафикиРаботыСотрудников КАК ГрафикиРаботыСотрудников
	|ГДЕ
	|	ГрафикиРаботыСотрудников.ДатаНачала МЕЖДУ &ДатаНачала И &ДатаОкончания";
	
	Если ЗначениеЗаполнено(Подразделение) Тогда
		Запрос.Текст = Запрос.Текст + " И ГрафикиРаботыСотрудников.Подразделение = &Подразделение";
		Запрос.УстановитьПараметр("Подразделение", Подразделение);
	КонецЕсли;
	Если ЗначениеЗаполнено(Врач) Тогда
		Запрос.Текст = Запрос.Текст + " И ГрафикиРаботыСотрудников.Сотрудник = &Сотрудник";
		Запрос.УстановитьПараметр("Сотрудник", Врач);
	КонецЕсли;
	
	Запрос.УстановитьПараметр("ДатаНачала", ПланировщикПериодС);
	Запрос.УстановитьПараметр("ДатаОкончания", ПланировщикПериодПо);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Выборка = РезультатЗапроса.Выбрать();
	
	СоответсвиеИзмерения = Новый Соответствие;
	
	Пока Выборка.Следующий() Цикл
		
		ИнтервалФона = Планировщик.ИнтервалыФона.Добавить(Выборка.ДатаНачала,Выборка.ДатаОкончания);
		Массив = СтрРазделить(Выборка.ЦветФонаВПланировщике,",");
		Если Массив.Количество()=3 Тогда
			ИнтервалФона.Цвет = новый Цвет(Массив[0], Массив[1], Массив[2]);
		КонецЕсли;
		
		СоответсвиеИзмерения.Вставить("Врачи", Выборка.Сотрудник);
		ИнтервалФона.ЗначенияИзмерений = Новый ФиксированноеСоответствие(СоответсвиеИзмерения);	
	КонецЦикла;
	
КонецПроцедуры
Показать
artseroff; +1 Ответить
86. user1125642 25.02.20 16:52 Сейчас в теме
(64)Кто нибудь знает, как скрыть например на это картинке врач 1?
То есть например 10 июля работает врач 1, а 11 июля врач 2, а 12 июля они оба. Как сделать так, чтобы не показывались те сотрудники, которые не работают в этот день? Может есть метод удалить?
69. JedBez 16.11.17 03:02 Сейчас в теме
Подскажите пожалуйста минимальную высоту элемента.
Заполняю элементами по 5 минут, а отображается по 8. Не понятно.
Начало = Дата(""+Формат(Период_.День,"ДФ=ггггММдд")+Формат(Период_.ВремяНачала,"ДФ=ЧЧммсс"));
		Для i = 0 по 59 цикл
			НачалоЭленмента = Начало+i*5*60;
			КонецЭлемента = НачалоЭленмента+5*60;
			НЭл = Планировщик.Элементы.Добавить(НачалоЭленмента,КонецЭлемента);
			НЭл.Текст = ""+i +" - "+НачалоЭленмента+" : "+КонецЭлемента;
			НЭл.ЦветФона = Новый Цвет(255, 255, 255);
		КонецЦикла;
Показать
Прикрепленные файлы:
70. user933943 13.06.18 08:43 Сейчас в теме
Добрый день! Подскажите пожалуйста, каким образом можно за определенным промежутком времени, а именно с 12 -13 , закрепить текст элемента " Обед". Можно ли это как то написать в программном коде?
73. newbie_1c 29.10.18 10:03 Сейчас в теме
Здравствуйте, подскажите пожалуйста, как сделать полосы прокрутки у планировщика
Прикрепленные файлы:
74. user1096761 07.12.18 12:20 Сейчас в теме
Здравствуйте! А как получить значение добавленных измерений при вызове ПередНачаломБыстрогоРедактирования? На стандартной форме есть (переговорная), но не понимаю, откуда и как вытащить, чтобы передать своей форме редактирования НОВОГО элемента?
75. Aleskey_K 35 20.12.18 09:17 Сейчас в теме
(74) я свою форму нарисовал, с разными реквизитами.
76. пользователь 03.07.19 22:39
Сообщение было скрыто модератором.
...
85. пользователь 30.10.19 11:05
Сообщение было скрыто модератором.
...
87. set5553 01.03.20 13:38 Сейчас в теме
Что за красная линия на главном скрине? Когда добавляю запись в другом цвете, появляется красная линия
88. criptid 08.04.20 18:33 Сейчас в теме
(87)
Что за красная линия на главном скрине? К
Текущее время
89. user1313273 10.04.20 02:32 Сейчас в теме
Ребята, а как сделать чтобы элементы планировщика нельзя было перемещать мышкой? Галки разрешать перетас