Антонов Игорь | Руководитель отдела разработки | АО "ДальЖАСО"

«Как вырастить разработчиков и не сойти с ума»

Что делать, когда не хватает разработчиков? Вырастить их самостоятельно! В докладе расскажу про эффективное обучение начинающих разработчиков. Как научить так, чтобы потом не стыдно было брать на работу. * Что не так с классическим образованием; * Фундамент или практические навыки; * Как учится максимально эффективно; * Образование в режиме онлайн: школы, плюсы и минусы; * Менторство. Что дает работа с ментором; * Как мы учим разрабатывать. Геймификация, менторство, проекты; * Популярные технологии для изучения сегодня; * Переквалификация 1С-разработчика.

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

Программирование - Инструментарий

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

Первым делом ссылки на ресурсы:
- Заметки из зазеркалья (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/

 


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

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

См. также

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

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

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

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

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

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

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

Но все равно остается вопрос с масштабом: во-первых с периодами отображения, во-вторых с размером окна (или элемента формы) пользователя. От этого тоже наглядость сильно гуляет.
Прикрепленные файлы:
20. dj_serega 352 11.03.15 15:27 Сейчас в теме
(19) friend0, Я Вас понял. Попробую поковырять на досуге. Две головы то лучше :)
21. friend0 11.03.15 15:58 Сейчас в теме
(20) ну так-то оно не особо и надо. Просто воодушевился зазеркальем, а как до практики дошло - приуныл.
Ну и опять же реальные проекты сами по себе имеют разные масштабы. И этапы в них - один на полгода и кучка на 1-2 дня.
22. dj_serega 352 11.03.15 16:35 Сейчас в теме
(21) friend0, А вдруг получится выкрутить :) Сам планирую некоторые объекты перевести (в будущем) на планировщик. Уже вижу что не всё получится. Но некоторые даже сейчас.
15. talych 16 11.03.15 12:19 Сейчас в теме
Не проще ли использовать Microsoft Outlook? Сам пользуюсь уже давно этим инструментом. Все, что нужно в нем уже есть. Календарь, задачи, письма, общие папки, разделение папок по пользователям(настройка прав) и много всего другого. Для работы в онлайн есть OWA. А если и этого всего будет недостаточно, то есть user forms+VB Script В них уже можно сделать все, чего не хватает.
16. cleaner_it 232 11.03.15 12:58 Сейчас в теме
(15) "Проще" очень сильно не равно "Лучше")
17. friend0 11.03.15 13:08 Сейчас в теме
(15) talych, Outlook стоит дополнительных денег и некоторые компании придерживаются политики легального (по возможности бесплатного) софта. А ежели задачи привязываются к неким процессам в 1С, то ИМХО в 1С их и проще оставлять, а не гонять туда-сюда.
talych; dj_serega; +2 Ответить
24. revned 8 13.03.15 21:28 Сейчас в теме
отпишусь чтобы не потерять.. попробую применить..
25. InShallaH 50 06.05.15 13:22 Сейчас в теме
Не получается вывести несколько дней на одной форме. Ставлю периодичность день, кратность 5 но вижу только один день и временную шкалу. Что делаю не так?
30. dj_serega 352 18.05.15 14:24 Сейчас в теме
26. Emiliya_Emili 13.05.15 11:11 Сейчас в теме
как правильно загрузить файл с в конфигурацию?
27. dj_serega 352 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 1566 19.05.15 09:14 Сейчас в теме
1С как всегда - вроде и нормально, но все равно не хватает функционала.

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

Аналогично.

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

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

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

Я бы это отредактировал свойством элемента формы, как нарисовано на картинке выше в этом обсуждении, но этот способ не подходит, потому что вывожу несколько различных интервалов (день, неделя, месяц) по кнопке.
Прикрепленные файлы:
44. dj_serega 352 02.02.16 18:25 Сейчас в теме
(43) Vladal, Так подойдет?
Прикрепленные файлы:
45. Vladal 416 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 352 12.05.17 17:40 Сейчас в теме
(49) А как в гугл календаре?
51. horhe_x3 12.05.17 19:16 Сейчас в теме
(50) Неделю сделал, а вот месяц нужен вроде этого
Прикрепленные файлы:
71. baracuda 3 05.07.18 22:36 Сейчас в теме
(51) тоже остановился на том, что не смог сделать месяц как в гугл календарь...
Может кто подскажет, возможно ли, и если да то как?
52. El_Loco 260 11.06.17 16:53 Сейчас в теме
Коллеги, а подскажите, как переопределить событие редактирования задачи планировщика?
К примеру, у нас есть документы "Задача", которые отображаются в планировщике. Когда мы кликаем по задаче, мы хотим, чтобы открылась форма нашего уже записанного ранее документа, чтобы мы могли его отредактировать.


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

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

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

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

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

(64) Не совсем понял. Нужно как в (54) ? один элемент одного цвета, другой - другого? Так можно. Я при заполнении делал.
Хотя Вы про цвет фона планировщика... вот тут не знаю.
67. El_Loco 260 19.07.17 16:47 Сейчас в теме
(66) я же описал, что надо и код привел. хочу через свойство планировщика ИнтервалФона окрасить определенный временной промежуток, но не для всех измерений, а для заданных.
53. user760974 13.06.17 12:48 Сейчас в теме
А как сохранять данные в планировщике после выхода из него, или печать этих данных?
55. revned 8 14.06.17 10:50 Сейчас в теме
(53) Печать - в меню есть предварительный просмотр. Или через файл - печать. Планировщик сделан веб страницей, поэтому просмотр через соответствующее приложение.
Сохранить данные после выхода - где-то в базе, например, в регистре сведений дополнительном. Или нужно смотреть откуда в планировщик попадают данные - и при изменении элементов планировщика перезаписывать в том месте, откуда берутся данные.
56. Artjomrgv 21.06.17 10:50 Сейчас в теме
(55)

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

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

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


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

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

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

но так окрашиваются все измерения за день. а я хочу отдельным врачам подсвечивать свои интервалы.
Прикрепленные файлы:
65. Dream_kz 75 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) Тогда
		Прересекаются = Истина;
	Иначе
		Прересекаются = Ложь;
	КонецЕсли;	
	Возврат Прересекаются;
КонецФункции // ПересечениеПериодов()
Показать
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 , закрепить текст элемента " Обед". Можно ли это как то написать в программном коде?
Оставьте свое сообщение