1с планировщик формат даты
В статье представлены способы задать формат даты 1с 8. Для этого необходимо использовать форматную строку. Редактировать ее можно либо вручную, либо при помощи специального конструктора.
Форматные строки используются в:
При использовании функции Формат, следует помнить, что она возвращает строковое значение, т.е. представление переданной даты в определенном формате.
Формат даты 1с при помощи форматной строки
При помощи форматной строки можно задать параметры форматирования даты. Не стоит описывать их полностью вручную. Лучше всего, воспользоваться встроенным в платформу конструктором, а затем отредактировать полученную форматную строку вручную. Это сэкономит ваши силы и позволит быстро добиться результата.
- Следует описать функцию Формат, без форматной строки:
- Поставить курсор между кавычек, вызвать конструктор;
- После окончания работы с конструктором нажать ОК.
Конструктор форматной строки
Сам же конструктор форматной строки представляет собой набор вкладок, предназначенных для форматирования данных различных типов. Нас интересует вкладка Дата.
В остальных случаях можно пользоваться произвольным форматом даты. Его можно не только выбирать из выпадающего списка, но и редактировать вручную. Для редактирования используются следующие форматные коды:
Также можно добавлять в форматную строку произвольный текст, используя кавычки (если добавляемый текст не может быть интерпретирован, как составная часть даты, тогда можно обойтись и без кавычек):
Итоговый текст такой форматной строки будет выглядеть следующим образом:
Примеры использования формата дат
Приведем несколько примеров форматирования даты.
Дата без времени (05.10.2020)
Только время (12:35:50)
Месяц текстом, год полностью (Октябрь 2020)
Месяц текстом кратко, год без тысячелетия (окт. 20)
Месяц числом, через точку год полностью (10.2020)
Склонение названия месяца
Функция возвращает массив вариантов склонения строки. Подробнее прочитать про заполнение параметров можно в синтаксис помощнике.
Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.
Формат
Описание:
Формирует удобное для чтения представление значений. Полезно использование в отчетах и при прочем визуальном отображении значений.
Синтаксис:
Параметры:
Форматная строка представляет собой строковое значение, включающее параметры форматирования.
Параметры форматирования перечисляются через символ ";". Наличие параметра означает отличие форматирования от стандартного.
Если параметр не задан, то применяется стандартное форматирование, которое в основном соответствует преобразованию значения к строке. Однако для значений типа Число и Дата по умолчанию (0 и 01.01.0001 00:00:00 соответственно) будет выдаваться пустая строка.
- 0 (0) - строка вида "(1,1)";
- 1 (1) - строка вида "-1,1";
- 2 (2) - строка вида "- 1,1";
- 3 (3) - строка вида "1,1-";
- 4 (4) - строка вида "1,1 -".
- д - день месяца (цифрами) без лидирующего нуля;
- дд - день месяца (цифрами) с лидирующим нулем;
- ддд - краткое название дня недели;
- дддд- полное название дня недели ;
- М - номер месяца (цифрами) без лидирующего нуля;
- ММ - номер месяца (цифрами) с лидирующим нулем;
- МММ - краткое название месяца;
- ММММ - полное название месяца;
- к - номер квартала в году;
- г - номер года без века и лидирующего нуля;
- гг - номер года без века с лидирующим нулем;
- гггг - номер года с веком;
- ч - час в 12 часовом варианте без лидирующих нулей;
- чч - час в 12 часовом варианте с лидирующим нулем;
- Ч - час в 24 часовом варианте без лидирующих нулей;
- ЧЧ (HH) - час в 24 часовом варианте с лидирующим нулем;
- м - минута без лидирующего нуля;
- мм - минута с лидирующим нулем;
- с - секунда без лидирующего нуля;
- сс - секунда с лидирующим нулем;
- вв - отображение половины дня AM/PM (действительно только для языков конфигурирования, поддерживающих 12 часовой вариант представления времени).
- Д - дата (цифрами);
- ДД - длинная дата (месяц прописью);
- В - полное время, дата может объединяться со временем;
- ДВ - дата время.
Функция Формат в языке 1С 8.3, 8.2 (в примерах)
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
В нашем "Календаре" отображаются стандартные "Задачи исполнителя" и элементы собственного справочника "События".
На основании справочника "События" можно стартовать бизнес-процессы, кроме того, для них доступна настройка повторения по расписанию. Нужно отметить, что повторяются события только в календаре, новые элементы справочника при этом не создаются. А вот бизнес-процессы на основании этих виртуальных повторяемых событий должны создаваться вполне реальные, с реальными датами. Рассмотрим пример реализации данной задачи.
Справочник "События" выглядит следующим образом:
В режиме "Предприятие":
Расписание - реквизит формы с типом значения "Произвольный". При его редактировании свойства расписания записываются в реквизиты события, а при создании формы события - наооборот.
При заполнении календаря расписание элементов заполняется сходным образом:
Планировщик 1С обрабатывает элементы с заполненным расписанием следующим образом: на каждый период повтора создаётся элемент планировщика с датами начала и окончания, соответствующими периоду повтора, и значением единственного реального элемента, который мы добавили при обходе выборки.
Выглядит это так:
Обработка "ПередНачаломРедактирования" элемента планировщика у нас нестандартная и вызывает открытие формы задачи/события в зависимости от типа значения. Но какой бы элемент из повторяющихся мы не открывали, даты начала и окончания в форме будут исходные, в данном случае 18.08.2017 и 19.08.2017.
Значит, из календаря будем открывать форму с параметрами, и обрабатывать их при создании на сервере.
Обработчик при создании формы события:
Если присмотреться, на размещённом в начале статьи скриншоте с формой события по два элемента с заголовками "Дата начала" и "Дата окончания". В зависимости от того, повторяемый это элемент или основной, видны либо реальные "Дата начала" и "Дата окончания", либо реквизиты формы "Дата начала элемента повторения" и "Дата окончания элемента повторения".
Стандартный ввод на основании для повторяемых элементов тоже пришлось переписать:
Разумеется, все запущенные на основании повторяемых элементов бизнес-процессы будут подчинены единственному реальному событию.
А теперь о реализации так полюбившейся пользователям функции - перемещения элементов календаря мышкой с сохранением изменений. Планировщик позволяет перемещать элементы и изменять их границы мышью "из коробки". При этом у элементов планировщика меняются даты начала и окончания. Осталось только записать их в реальные объекты.
Удобно выделять элементы планировщика разных видов цветом. У элемента есть свойства "ЦветФона", "ЦветТекста" и "ЦветРамки". В зависимости от тех или иных условий можно выбирать какие угодно их сочетания. Планировщик сам позаботится о том, чтобы элементы остались видимыми. В нашей конфигурации задачи, не принятые к исполнению, выделяются одним цветом, принятые - другим, а для каждого события цвет выбирается пользователем и сохраняется в справочнике в реквизите типа "ХранилищеЗначений". При заполнении планировщика данными цвет события устанавливается так:
Вот и всё самое интересное, что мне удалось выяснить в процессе работы с планировщиком. Возможно, кому-нибудь эта информация будет полезна.
В строках видим время работы магазинов (с 9 до 18).
По колонкам: группы Магазинов и Продавцов.
Еще раз повторюсь, что тут описаны только азы.
ТекущиеПериодыОтображения заполняются так (тут всё просто, поэтому описывать комментариями думаю не нужно ):
Планировщик . ТекущиеПериодыОтображения . Очистить ();
Планировщик . ТекущиеПериодыОтображения . Добавить ( ПериодОтображенияНачало , ПериодОтображенияКонец );
Измерения можно заполнить таким образом:
// Инициализируем измерения планировщика
ИзмеренияПланировщика = Планировщик . Измерения ;
ИзмеренияПланировщика . Очистить ();
// Добавление магазинов в группу Магазины
НовыйМагазин = ИзмерениеМагазины . Элементы . Добавить ( ВыборкаМагазинов . Магазин );
НовыйМагазин . Текст = ВыборкаМагазинов . Магазин . Наименование ;
// Заполнение измерений продавцы
НовыйПродавец = ИзмерениеПродавцы . Элементы . Добавить ( ВыборкаПродавцов . Продавец );
НовыйПродавец . Текст = ВыборкаПродавцов . Продавец . Наименование ;
А вот так добавляем Элементы (записи в планировщике):
// Инициализация элементов планировщика (записи по измерениям)
ЭлементыПланировщика = Планировщик . Элементы ;
ЭлементыПланировщика . Очистить ();
Пока РезультатПланы . Следующий () Цикл
Начало = НачалоДаты + РазницаВремениНачало ;
Конец = НачалоДаты + РазницаВремениКонец ;
// Добавление новой записи в промежуток времени
НовыйЭлемент = ЭлементыПланировщика . Добавить ( Начало , Конец );
НовыйЭлемент . ЗначенияИзмерений = Новый ФиксированноеСоответствие ( СоответствиеЗначений );
НовыйЭлемент . Текст = РезультатПланы . Задание ;
После того мы разобрались с заполнением, можно показать итоговый вид с заполненным регистром сведений Дни работы (в котором регистрируем рабочее время сотрудников)
Читайте также: