Раздельный вывод частей даты на форму без программирования

12.01.19

Разработка - Работа с интерфейсом

Небольшой лайфхак для повышения удобства редактирования пользователем полей с типом "Дата".

Возможно, о данном "приеме" известно многим, хотя сам случайно увидел его у коллеги при том, что уже 7 лет работаю 1С-программистом.

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

Самым очевидным и простым решением проблемы, как лично я считал до недавнего времени, является создание отдельных реквизитов формы для каждого реквизита объекта с типом "Дата" с форматами редактирования под необходимую часть даты. То есть при наличии у документа стандартного реквизита "Дата" на форме объекта можно создать реквизиты формы "ДатаДата" и "ДатаВремя", например, с форматами дат "dd.mm.yyyy" и "HH:mm" соответственно, причем у времени убрать кнопку выбора и добавить кнопку регулировки. Но при таком варианте помимо создания реквизитов форм под каждую нужную дату объекта необходимо ещё в модуле формы описать заполнение реквизитов формы при создании формы на сервере и заполнение реквизита объекта при изменении каждого элемента-части даты.

Как оказалось, проще всего вспомнить тот факт, что элемент формы отображает данные, указанные в свойстве "ПутьКДанным", но эта связь может иметь вид "Один ко многим" - одни и те же данные могут отображаться несколькими угодно элементами формы! Поэтому для решения задачи отдельного отображения и редактирования даты и времени достаточно создать два элемента формы, которые будут ссылаться на одну и ту же дату, установить для них различные форматы редактирования, а также установить свойства "КнопкаВыбора" в "Нет" и "КнопкаРегулирования" в "Да" для элементов отображения времени. Это даст возможность удобно для пользователя редактировать на форме дату и время раздельно без строчки кода для разработчика. Важно также, что необязательно разделять дату всего лишь на две части - можно, к примеру, выводить отдельно часы и минуты друг от друга и так далее.

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

Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY

управляемые формы дата время

См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

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

Обработка предназначена для редактирования картинок в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Также обработка может быть использована из встроенного языка как объект для редактирования картинок. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Данная обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    61712    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

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

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

5000 руб.

14.01.2016    54320    16    21    

42

Управление дашбордами

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

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    16625    21    4    

35

Новогоднее оформление для 1С

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    10568    745    elcoan    45    

106

Конструктор HTML, CSS и javascript

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

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

2 стартмани

10.04.2023    9488    150    acces969    31    

115

Модель состояния для MVC

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3582    kalyaka    2    

27

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12013    1    5    

10
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. acanta 12.01.19 22:07 Сейчас в теме
Супер. Давно такую искала. Спасибо.
pavelpribytkin96; Jimbo; drmaxart; +3 Ответить
2. drmaxart 145 12.01.19 22:14 Сейчас в теме
(1)Спасибо, приятно слышать!
pavelpribytkin96; Jimbo; +2 Ответить
3. ltfriend 951 13.01.19 08:19 Сейчас в теме
Это самый очевидный и простой способ, а не создавать лишние реквизиты. Применимо и к обычным формам.
pavelpribytkin96; Jimbo; drmaxart; +3 Ответить
7. drmaxart 145 13.01.19 13:17 Сейчас в теме
(3) согласен! По этой причине я и уточнил, что именно лично я считал так до осознания описанного варианта
pavelpribytkin96; +1 Ответить
4. motorsoft 3 13.01.19 11:46 Сейчас в теме
Отлично, взял на заметку
pavelpribytkin96; drmaxart; +2 Ответить
5. rozer 305 13.01.19 12:11 Сейчас в теме
6. MCV 13.01.19 13:16 Сейчас в теме
8. acanta 13.01.19 13:29 Сейчас в теме
Вопрос: как должен выглядеть обработчик, чтобы при регулировании минут минуты были кратны, например 10?
9. drmaxart 145 13.01.19 14:33 Сейчас в теме
(8)Нужно реализовать обработчик события Регулирования у поля минут, в нём параметр Направление позволяет определить, какая из кнопок регулирования была нажата. При нажатии на увеличение (вверх) параметр равен 1, при нажатии на уменьшение (вниз) - равен -1. То есть ставим СтандартнаяОбработка в ЛОЖЬ и пишем Дата = Дата + 600 * Направление
pavelpribytkin96; programmer_87; DrAku1a; gradi; rpgshnik; acanta; +6 Ответить
10. kolosof 13.01.19 15:44 Сейчас в теме
11. kembrik 10 14.01.19 10:45 Сейчас в теме
Способ кстати прекрасно работает и на обычных формах, именно там я его и подсмотрел у предшественника, отлично мигрировал в управляемые. От кнопок выбора даты и переметки времени совсем отказались в итоге, данный функционал используется при таксировке путевых листов, там операторы обрабатывали путевые с клавиатуры с дикой скоростью, лишние контролы и мышка только замедляли процесс. Мы еще цветом подсвечиваем и шрифтами выделяем, совсем глазасто получается
Прикрепленные файлы:
drmaxart; +1 Ответить
12. dock 44 14.01.19 22:39 Сейчас в теме
Как оказалось, проще всего вспомнить тот факт, что элемент формы отображает данные, указанные в свойстве "ПутьКДанным", но эта связь может иметь вид "Один ко многим" - одни и те же данные могут отображаться несколькими угодно элементами формы!

Если такие вещи приходят "сам случайно увидел его у коллеги ", то как же у нас всё плохо с обучением...
Или в 1С-ники приходят совсем не программисты...
З.Ы. автору благодарность за наставление юных подаванов на пусть истины ;)
13. drmaxart 145 14.01.19 22:44 Сейчас в теме
(12)Ну за чем так критично - этот факт все знают, просто лично я вот просто не задумывался о таком варианте применения, в голову не приходило. Бывает)
14. dock 44 14.01.19 23:04 Сейчас в теме
(13) :) вот в этом и есть отличие в образовании. Я открыл статью, думал реально "что-то"... Посмотрел свой код, вспомнил как писал: у меня просто даже мысли не было, что можно сделать как-то по другому :) Скорее были тесты на правильное поведение системы.
Лирика:
Когда ты ещё студент, очень многие принципы/методы/подходы просто закладываются чуть ли не на уровень подсознания.
Закладывается базис, который в дальнейшем вырабатывается в стиль - почерк. Одно дело, когда ты в 20 лет на курсе по базам данных выполняешь лабораторные работы по приведению БД к 6-й нормальной форме и к окончанию курса ты просто не можешь сделать базу менее чем в 3-й НФ (что и обещал преподаватель)... И совсем другое дело, когда ты в 30 лет узнаешь вообще о том, что БД оказывается-то реляционная...
С опытом только по коду начинаешь определять, из какой сферы пришёл человек в программисты 1С.
Yashazz; ZOMI; +2 Ответить
15. Danilov 15.01.19 09:19 Сейчас в теме
Отлично, взял на заметку
ValentinGushchin; drmaxart; +2 Ответить
16. suepifanov 935 15.01.19 14:56 Сейчас в теме
дополнительно к этому можно сделать список быстрого выбора времени как, например, сделано в УНФ.
Кнопка выпадающего списка = да, и ПриСозданииНаСервере заполнить список нужными интервалами.

// Процедура заполняет список выбора времени.
// Параметры:
//  ПолеВводаФормы  - элемент-владелец списка,
//  Интервал        - интервал, с которым необходимо заполнить список, по умолчанию час.
Процедура ЗаполнитьСписокВыбораВремени(ПолеВводаФормы, Интервал = 3600, Начало = '00010101080000', Окончание = '00010101200000') Экспорт
	
	СписокВремен = ПолеВводаФормы.СписокВыбора;
	СписокВремен.Очистить();
	
	ВремяСписка = НачалоЧаса(Начало);
	
	Пока НачалоЧаса(ВремяСписка) <= НачалоЧаса(Окончание) Цикл
		
		Если НЕ ЗначениеЗаполнено(ВремяСписка) Тогда
			ПредставлениеВремени = "00:00";
		Иначе
			ПредставлениеВремени = Формат(ВремяСписка,"ДФ=ЧЧ:мм");
		КонецЕсли;
		
		СписокВремен.Добавить(ВремяСписка, ПредставлениеВремени);
		
		ВремяСписка = ВремяСписка + Интервал;
		
	КонецЦикла;
	
КонецПроцедуры
Показать
Прикрепленные файлы:
pavelpribytkin96; drmaxart; +2 Ответить
17. androgin 15.01.19 20:59 Сейчас в теме
я конечно извиняюсь, но это не лайфхак, а тупость, при чем всем известная еще стотыщ лет назад
PLAstic; Yashazz; proonec; ZOMI; +4 2 Ответить
18. drmaxart 145 15.01.19 21:16 Сейчас в теме
(17)ну не для всех. Я смотрю, у Вас ко всем публикациям есть претензии. На Инфостарте много статей о вещах, которые кто-то знает, а кто-то - нет. Им поможет, для такого обмена информацией ресурс и создан
MCV; pavelpribytkin96; Дон Кихот; snood; ivnik; +5 Ответить
20. androgin 16.01.19 15:24 Сейчас в теме
(18) то есть по факту вам сказать нечего. поперлись копаться и искать к чему бы в ответ прицепиться?
Это вас характеризует явно не в положительном ключе))))
Уверен, что этот ресурс создан не для дошкольных публикаций и очевидных вещей, которые должен знать каждый программист. Тут гораздо более сложные и ПОЛЕЗНЫЕ материалы публикуются, а не два элемента одного реквизита с разным форматированием
21. Yashazz 4707 27.08.21 15:31 Сейчас в теме
(20) к сожалению, похоже, что сложные и полезные нафиг никому не нужны, а вот дошкольно-пионерские "лайфхаки" подобно этому, что собрал более 70 плюсов, нужны. Увы. Если когда-то этот ресурс и был создан для профи, то после взятия курса на "капитализацию" единственная цель - раскрутка. А плюсики, они, как и деньги, не пахнут.
19. ZOMI 444 16.01.19 14:53 Сейчас в теме
Автору пора уже готовить доклад для Infostart Event. Так лаконично разжевал такую сложную тему.
PLAstic; Yashazz; ivnik; androgin; +4 Ответить
Оставьте свое сообщение