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

15.07.15

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Планировщик.dt
.dt 101,62Kb
259
259 Скачать (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 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

12000 руб.

02.09.2020    171738    960    403    

924

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    14293    108    46    

108

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

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

9360 руб.

17.05.2024    27260    96    48    

137

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

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

22200 руб.

06.10.2023    17264    43    15    

75

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

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

15000 руб.

10.11.2023    11888    45    27    

67

SALE! %

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

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

4800 3840 руб.

14.01.2013    191172    1152    0    

920

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

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1114    2    0    

5

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

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

5000 руб.

07.02.2018    104115    244    100    

307
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. vandalsvq 1592 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 247 04.03.15 20:42 Сейчас в теме
Инструмент замечательный и малополезный.
rovenskiy1C; +1 1 Ответить
4. vandalsvq 1592 04.03.15 23:39 Сейчас в теме
(2) WalterMort, на вскидку:
1. Заменить календарь который есть сейчас во всех типовых конфигурациях БП 3, Документооборот. Не говоря уже о подделках от рарус
2. Наконец есть развитие подсистемы задачи. Сами по себе задачи не создают план на неделю, планировщик - запросто
3. Избавиться от диаграммы Ганта в тех случаях когда нет нужды ставить связь между задачами
Это из общего. А частностей могу еще насыпать вагончик ))))
sergio199; TeMochkiN; dj_serega; kraynev-navi; +4 Ответить
5. Nio 72 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 154 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 154 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 209 11.03.15 12:58 Сейчас в теме
(15) "Проще" очень сильно не равно "Лучше")
17. friend0 11.03.15 13:08 Сейчас в теме
(15) talych, Outlook стоит дополнительных денег и некоторые компании придерживаются политики легального (по возможности бесплатного) софта. А ежели задачи привязываются к неким процессам в 1С, то ИМХО в 1С их и проще оставлять, а не гонять туда-сюда.
skif-m; talych; dj_serega; +3 Ответить
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 3141 19.05.15 09:14 Сейчас в теме
1С как всегда - вроде и нормально, но все равно не хватает функционала.

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

Аналогично.

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

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

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

Я бы это отредактировал свойством элемента формы, как нарисовано на картинке выше в этом обсуждении, но этот способ не подходит, потому что вывожу несколько различных интервалов (день, неделя, месяц) по кнопке.
Прикрепленные файлы:
44. dj_serega 393 02.02.16 18:25 Сейчас в теме
(43) Vladal, Так подойдет?
Прикрепленные файлы:
45. v.l. 436 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 2 30.09.19 20:27 Сейчас в теме
(79)
Нет. В таком виде как на моей картинке в планировщике невозможно сделать, т.к надо в одной шкале совместить измерение и шкалу времени.
81. AllexSoft 01.10.19 10:14 Сейчас в теме
(80) странно, я сделал. Нашел тут обработку где такой пример был.
Вот тут https://infostart.ru/public/853571/
Третья картинка.
82. smwed 2 01.10.19 13:57 Сейчас в теме
(81) Посмотрел. Даже не близко к тому, что я спрашивал здесь.
У меня на картинке строки - это измерение Сотрудник и внутри каждого шкала времени "Часы", а по столбцам - шкала времени "Дни". Скроллится всё по горизонтали - влево даты раньше, вправо - даты позже.

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


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

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

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

user2077167; cdmannnn; +2 Ответить
59. AlexeyPapanov 466 07.07.17 21:44 Сейчас в теме
(54) (54) У меня планировщик выводит расписание записей к врачам.
т.е. у меня одно измерение планировщика - Врачи.
как же я в измерения запихну ссылку?
получается, что в моем случае никак?
60. Dream_kz 129 07.07.17 21:54 Сейчас в теме
(59) Там помимо измерений, есть реквизит Значение произвольного типа, вот туда можно что угодно пихать
AlexeyPapanov; +1 Ответить
61. AlexeyPapanov 466 07.07.17 21:58 Сейчас в теме
(60) Спасибо! а то у меня уже бредовые мысли пошли писать номер документа в подсказку элемента планировщика, а потом искать... О_о
62. Dream_kz 129 07.07.17 22:02 Сейчас в теме
(61) На самом деле почитайте в СП про объект Планировщик, и расширение формы ПолеПланировщика, там много чего интересно написано
63. AlexeyPapanov 466 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 466 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 466 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 1106 04.09.18 14:04 Сейчас в теме
(65) столкнулся с такой задачей, решается так
			
ИнтервалФона = Планировщик.ИнтервалыФона.Добавить(ДатаФонаС,ДатаФонаПо);
ИнтервалФона.Цвет = новый Цвет(225, 255, 225);
				
СоответсвиеИзмерения = Новый Соответствие;
СоответсвиеИзмерения.Вставить(ИзмерениеПланировщика.Значение,ЭлементИзмерения.Значение);
ИнтервалФона.ЗначенияИзмерений = Новый ФиксированноеСоответствие(СоответсвиеИзмерения);
artseroff; +1 Ответить
91. davydoff 7 21.05.20 15:30 Сейчас в теме
(72)
СоответсвиеИзмерения = Новый Соответствие;
СоответсвиеИзмерения.Вставить(ИзмерениеПланировщика.Значение,ЭлементИзмерения.Значение);
ИнтервалФона.ЗначенияИзмерений = Новый ФиксированноеСоответствие(СоответсвиеИзмерения);


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

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

Вот у меня была задача: покрасить фоном рабочее время врачей, которые являются измерениями планировщика.
Код такой:
&НаСервере
Процедура ИнтервалыФонаПланировщика()
	
	Планировщик.ИнтервалыФона.Очистить();
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ГрафикиРаботыСотрудников.Сотрудник КАК Сотрудник,
	|	ГрафикиРаботыСотрудников.Подразделение.ЦветФонаВПланировщике КАК ЦветФонаВПланировщике,
	|	ГрафикиРаботыСотрудников.ДатаНачала,
	|	ГрафикиРаботыСотрудников.ДатаОкончания
	|ИЗ
	|	РегистрСведений.ГрафикиРаботыСотрудников КАК ГрафикиРаботыСотрудников
	|ГДЕ
	|	ГрафикиРаботыСотрудников.ДатаНачала МЕЖДУ &ДатаНачала И &ДатаОкончания";
	
	Если ЗначениеЗаполнено(Подразделение) Тогда
		Запрос.Текст = Запрос.Текст + " И ГрафикиРаботыСотрудников.Подразделение = &Подразделение";
		Запрос.УстановитьПараметр("Подразделение", Подразделение);
	КонецЕсли;
	Если ЗначениеЗаполнено(Врач) Тогда
		Запрос.Текст = Запрос.Текст + " И ГрафикиРаботыСотрудников.Сотрудник = &Сотрудник";
		Запрос.УстановитьПараметр("Сотрудник", Врач);
	КонецЕсли;
	
	Запрос.УстановитьПараметр("ДатаНачала", ПланировщикПериодС);
	Запрос.УстановитьПараметр("ДатаОкончания", ПланировщикПериодПо);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Выборка = РезультатЗапроса.Выбрать();
	
	СоответсвиеИзмерения = Новый Соответствие;
	
	Пока Выборка.Следующий() Цикл
		
		ИнтервалФона = Планировщик.ИнтервалыФона.Добавить(Выборка.ДатаНачала,Выборка.ДатаОкончания);
		Массив = СтрРазделить(Выборка.ЦветФонаВПланировщике,",");
		Если Массив.Количество()=3 Тогда
			ИнтервалФона.Цвет = новый Цвет(Массив[0], Массив[1], Массив[2]);
		КонецЕсли;
		
		СоответсвиеИзмерения.Вставить("Врачи", Выборка.Сотрудник);
		ИнтервалФона.ЗначенияИзмерений = Новый ФиксированноеСоответствие(СоответсвиеИзмерения);	
	КонецЦикла;
	
КонецПроцедуры
Показать
dimaster; artseroff; +2 Ответить
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 Сейчас в теме
Ребята, а как сделать чтобы элементы планировщика нельзя было перемещать мышкой? Галки разрешать перетаскивание не стоят. А при открытии управляемой Элементы.Планировщик.Разрешить перетаскивание=Ложь. В чем может быть дело?
Прикрепленные файлы:
90. sys1c 12.04.20 15:11 Сейчас в теме
(89) у меня обратная задача. Отследить перекрещение мышкой. Ни одно из событие не срабатывает.
93. Dimon93dimon 11.11.20 11:59 Сейчас в теме
(90)Перекрещение? Может перетаскивание? Перетаскивание точно отрабатывает в процедуре "ПланировщикПриОкончанииРедактирования"
94. i.oustinov 25.11.20 14:21 Сейчас в теме
Кто сталкивался? как сделать событие, чтобы занимало всю область измерения, а не узкую строку? пример на картинке "Обед" или "Отпуск"
Прикрепленные файлы:
95. margs 25.01.21 15:39 Сейчас в теме
подскажите как использовать измерения - "Сотрудник" - куда его надо добавить или описать?
нужно знать в какой день какому сотруднику что поручено
96. roa4ik 05.02.21 14:39 Сейчас в теме
(94) я шкалу времени устанавливал слева, тогда растягивает "Выравнивать границыЭлементовПоШирине", а как у Вас не получалось.. (
97. zonder2000 29.04.21 13:48 Сейчас в теме
Оставьте свое сообщение