Пример работы с Планировщиком 1С (УФ)

05.07.18

Разработка - Механизмы платформы 1С

В 1С 8.3.х появился такой объект, как "Планировщик". О нем и пойдет речь.

Скачать исходный код

Наименование Файл Версия Размер
Пример работы с Планировщиком 1С (УФ):
.epf 21,60Kb
143
.epf 21,60Kb 143 Скачать

Данная обработка может быть интересна тому, кто хочет сделать собственный календарь на базе "Планировщика".

Планировщик позволяет выводить информацию

  • по дням
  • неделям
  • месяцам

Для примера выводится документ "Событие". Собственно, каждый может наполнить данными из любого справочника или документа.

Пример заполнения планировщика:
 

Процедура ЗаполнитьЭлементыПланировщика()	
    // Инициализация элементов планировщика (записи по измерениям)
    ЭлементыПланировщика = Планировщик.Элементы;
    ЭлементыПланировщика.Очистить();
	
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Событие.Ссылка КАК Ссылка,
	|	Событие.Дата КАК Дата
	|ИЗ
	|	Документ.Событие КАК Событие";
	
	Результат = Запрос.Выполнить().Выгрузить();
	                                                        
	Для каждого подстрока Из Результат Цикл
		
		НовыйЭлемент = ЭлементыПланировщика.Добавить(подстрока.Дата, подстрока.Дата);
		
		НовыйЭлемент.Текст = подстрока.Ссылка;
		НовыйЭлемент.ЦветФона = WebЦвета.ЗеленаяЛужайка;	
		НовыйЭлемент.Картинка = БиблиотекаКартинок.Ресурс;
		НовыйЭлемент.Значение = подстрока.Ссылка;
	КонецЦикла;
	
КонецПроцедуры

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

Протестировано на платформе 8.3.9.2233.

Планировщик календарь

См. также

Сервисы интеграции без Шины и интеграции

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    2561    dsdred    16    

59

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Обмен между базами 1C Администрирование СУБД Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.17 появился замечательный механизм «Сервисы интеграции». Многие считают, что это просто коннектор 1С:Шины. Так ли это?

11.03.2024    5897    dsdred    53    

83

Как готовить и есть массивы

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Все мы используем массивы в своем коде. Это один из первых объектов, который дают ученикам при прохождении обучения программированию. Но умеем ли мы ими пользоваться? В этой статье я хочу показать все методы массива, а также некоторые фишки в работе с массивами.

24.01.2024    5846    YA_418728146    25    

68

Планы обмена VS История данных

Обмен между базами 1C Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    6964    dsdred    36    

113

1С-ная магия

Механизмы платформы 1С Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    19054    SeiOkami    46    

118

Дефрагментация и реиндексация после перехода на платформу 8.3.22

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    12764    human_new    27    

76

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    9385    YA_418728146    6    

143

Внешние компоненты Native API на языке Rust - Просто!

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

20.08.2023    6527    sebekerga    54    

95
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. RustIG 1595 26.06.18 15:25 Сейчас в теме
(0) график регистрируется и показывается по одному человеку - одного сотрудника, одного менеджера и т.д. Как совместить отображение графика работы нескольких сотрудников? По сути у каждого свой график - к примеру, график приема врачей, график развоза товаров у водителей и т.д.
Планировщик возможно не решает такого рода задачи.
+
2. MKFreeUser 71 26.06.18 16:49 Сейчас в теме
Смотря как решать задачу, единственное что за месяц будет не информативный планировщик, мало влазит информации. Не нашел свойств как управлять размером планировщика, он принудительно подгоняет под экран данные.
А так что Вам мешает в запросе вытянуть данные по нескольким сотрудникам и вывести их. В тексте можно фио указать, или цветом разделить, тут как душе угодно
+
6. RustIG 1595 29.06.18 13:52 Сейчас в теме
(2) понял вас - так и думал, что этот вопрос не решен. ...я над этой проблемой думал уже - решил по-своему - в моих публикациях есть такая , как "Сетка расписания".
+
3. MKFreeUser 71 26.06.18 16:51 Сейчас в теме
В планировщике есть Измерения - можно по ним разделить график, но он имеет ограничения -> нельзя перетянуть задачу/событие между измерениями.
+
5. leongl 526 28.06.18 12:35 Сейчас в теме
(3) Можно, и даже позволяет отлавливать событие перетягивания и обрабатывать как душе угодно. Юзайте событие "ПриОкончанииРедактирования" и будет вам счастье.
+
7. baracuda 2 24.08.18 15:13 Сейчас в теме
Скажите пожалуйста. К примеру у меня есть событие у которого есть ВремяНачала и ВремяОкончания.
Как мне их добавить на планировщик с учетом времени начала и окончания?
У вас в примере, берется только один реквизит дата документа.
+
8. MKFreeUser 71 24.08.18 17:24 Сейчас в теме
ЭлементыПланировщика = Планировщик.Элементы;
НовыйЭлемент = ЭлементыПланировщика.Добавить(ДатаНачала, ДатаОкончания);

А какие уж даты вы будете вставлять и из какого реквизита - вам решать.
+
9. baracuda 2 24.08.18 18:39 Сейчас в теме
(8) Спасибо большое, проглядел этот момент. Дейсвительно все очень просто
+
10. skyboy13 13 05.12.18 23:07 Сейчас в теме
А можно ли растянуть как-то подобно? что день закрашивался пропорционально часам
Прикрепленные файлы:
+
11. skyboy13 13 09.09.19 10:19 Сейчас в теме
И не хватает множества картинок.
+
12. skyboy13 13 09.09.19 10:19 Сейчас в теме
А то сейчас в планировщик можно только одну прикрепить.
+
13. AllexSoft 30.09.19 17:30 Сейчас в теме
спасибо за обработку, разобрался как построить планировщик "как в google календаре", по месяцу с переносом дат на следующую строку, похоже это только программно можно сделать.
+
14. пользователь 31.10.19 08:44
Сообщение было скрыто модератором.
...
15. Adept 21.01.20 09:54 Сейчас в теме
Добрый день, не могли бы вы поделится кодом переключения представлений с дневного на недельный и месячный?
+
16. MKFreeUser 71 22.01.20 12:49 Сейчас в теме
(15)
Добрый день, вечером отвечу
Adept; +1
17. MKFreeUser 71 22.01.20 21:26 Сейчас в теме
18. CAIN 16 03.02.20 11:36 Сейчас в теме
Здравствуйте, при создании события планировщика у меня открывается создание документа заявки(в нем есть два реквизита ВремяС и ВремяПо и стандартный реквизит Дата). Как мне передать значение выделенной области времени и даты планировщика в этот создаваемый документ? Мои мысли закончились на том, что мне нужно обратиться к значениям выделенной области и передать их в параметры формы, но я не знаю как к ним обратиться. Помогите пожалуйста
+
19. MKFreeUser 71 03.02.20 14:55 Сейчас в теме
(18)
заявки

Как-то так я думаю:

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

	ОткрытьФорму("Документ.Заявка.ФормаОбъекта", Парам);

КонецПроцедуры

//Функция из документа Заявка
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	Если Объект.Ссылка.Пустая() Тогда
		Если Параметры.Свойство("Начало") Тогда
			Объкт.ВремяС = Параметры.Начало;
		КонецЕсли;	
		Если Параметры.Свойство("Конец") Тогда
			Объкт.ВремяПо = Параметры.Конец;
		КонецЕсли;	
		
	КонецЕсли;
	
КонецПроцедуры


Показать
+
20. CAIN 16 03.02.20 15:54 Сейчас в теме
(19) &НаКлиенте
Процедура ПланировщикПередСозданием(Элемент, Начало, Конец, Значения, Текст, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;
ПараметрыФормы=Новый Структура();
ПараметрыФормы.Вставить("ВремяС", Начало);
ПараметрыФормы.Вставить("ВремяПо", Конец);
ОткрытьФорму("Документ.Заявки.ФормаОбъекта", ПараметрыФормы);
КонецПроцедуры

У меня такой код, но при выделении области ничего не происходит, те время не переносится, но и ошибки не выходят.
+
21. MKFreeUser 71 03.02.20 16:33 Сейчас в теме
(20) это есть в документе "Заявка"?
//Функция в документе Заявка
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Если Объект.Ссылка.Пустая() Тогда
Если Параметры.Свойство("Начало") Тогда
Объкт.ВремяС = Параметры.Начало;
КонецЕсли;
Если Параметры.Свойство("Конец") Тогда
Объкт.ВремяПо = Параметры.Конец;
КонецЕсли;

КонецЕсли;

КонецПроцедуры
+
23. CAIN 16 03.02.20 16:47 Сейчас в теме
(21) спасибо огромное!! время подставилось, сейчас попробую чтоб и дата автоматом подставлялась,
Еще раз спасибо.
+
22. CAIN 16 03.02.20 16:41 Сейчас в теме
(19) Спасибо)), сразу не увидела полный код, смысл понятен, попробую (если получится, отпишусь)
+
24. lug 18.05.21 10:06 Сейчас в теме
Добрый день .
Возможно ли элементы измерения планировщика не выводить в текущие периоды отображения, если по этим элементам нет движения в периоде?
Как есть и как надо изобразил на примере;
Прикрепленные файлы:
+
25. MKFreeUser 71 19.05.21 15:51 Сейчас в теме
(24) Так эта реализация на вашей стороне, какие объекты выводить. В частности, здесь выборка всех событий простым запросом без фильтров
Процедура ЗаполнитьЭлементыПланировщика()	
    // Инициализация элементов планировщика (записи по измерениям)
    ЭлементыПланировщика = Планировщик.Элементы;
    ЭлементыПланировщика.Очистить();
	
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Событие.Ссылка КАК Ссылка,
	|	Событие.Дата КАК Дата
	|ИЗ
	|	Документ.Событие КАК Событие";
	
	Результат = Запрос.Выполнить().Выгрузить();
	                                                        
	Для каждого подстрока Из Результат Цикл
		
		НовыйЭлемент = ЭлементыПланировщика.Добавить(подстрока.Дата, подстрока.Дата);
		
		НовыйЭлемент.Текст = подстрока.Ссылка;
		НовыйЭлемент.ЦветФона = WebЦвета.ЗеленаяЛужайка;	
		НовыйЭлемент.Картинка = БиблиотекаКартинок.Ресурс;
		НовыйЭлемент.Значение = подстрока.Ссылка;
	КонецЦикла;
	
КонецПроцедуры
Показать
+
26. lug 20.05.21 12:29 Сейчас в теме
(25)Спасибо за ответ. Не Элементы планировщика, а элементы измерения планировщика. При обходе результата запроса добавляю элемент измерения там где надо. При попытке удалить элемент измерения планировщика там где не надо удаляется вообще из всего планировщика этот элемент измерения. Предполагаю, что это в принципе невозможно сделать.
Прикрепленные файлы:
+
27. lug 20.05.21 12:39 Сейчас в теме
Получается вот так:
Прикрепленные файлы:
+
28. ВИЛенин 1 18.04.22 07:55 Сейчас в теме
выявил проблему.
НовыйЭлемент.Картинка = БиблиотекаКартинок.Ресурс;
Картинка тут вставляется ТОЛЬКО ЕСЛИ весь текст входит в отведённую под него плашку. Если хоть чуть-чуть не влазит, то при первом открытии - не увидите это картинку. А вот как сделать минимальный размер это плашки где текст отображется...вот это вопрос
+
Оставьте свое сообщение