Выбор периода на управляемой форме почти как на обычных формах

26.03.19

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

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

Для начала создаем реквизиты формы с типом дата, например НачПериода (Заголовок: Период с) и КонПериода (Заголовок: по), СоставДаты - Дата и время, реквизит с типом СтандартныйПериод - ВыборПериода. На форме создаем группу с горизонтальной группировкой и размещаем наши реквизиты: НачПериода, КонПериода, ВыборПериода.Вариант, ВыборПериода. Чтобы элементы ВыборПериодаВариант и ВыборПериода выглядели как кнопки ниспадающего списка и выбора, делаем следующее: в свойствах устанавливаем АвтоМаксимальнаяШирина = Ложь (снимаем галку), МаксимальнаяШирина=1. Далее в модуле формы создаем обработчики на событии ПриИзменении для этих элементов

Примечание: если в периоде не нужно использовать время в составе даты, то можно в качестве элементов даты применить ВыборПериода.ДатаНачала, ВыборПериода.ДатаДатаОкончания, задав заголовки.

&НаКлиенте
Процедура ВыборПериодаВариантПриИзменении(Элемент)
	ИзменитьПериод();
КонецПроцедуры

&НаКлиенте
Процедура ВыборПериодаПриИзменении(Элемент)
	ИзменитьПериод();
КонецПроцедуры

&НаКлиенте
Процедура ИзменитьПериод()
	НачПериода=НачалоДня(ВыборПериода.ДатаНачала);
	КонПериода=КонецДня(ВыборПериода.ДатаОкончания);
КонецПроцедуры	

Собственно, и все.

См. также

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

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

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

6000 руб.

16.01.2015    62023    43    59    

81

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

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

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

5000 руб.

14.01.2016    54654    16    21    

42

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

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

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

2400 руб.

29.06.2020    16877    21    4    

35

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

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

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

27.12.2023    11112    760    elcoan    45    

106

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

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

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

2 стартмани

10.04.2023    9858    153    acces969    31    

119

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

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

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

1 стартмани

05.07.2022    3908    kalyaka    4    

29

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

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

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

3600 руб.

29.04.2022    12266    1    5    

10

Условное оформление элементов форм в пользовательском режиме 1С (управление видимостью и доступностью элементов форм)

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

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

6000 руб.

18.01.2022    8929    1    2    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. nestokay 62 26.03.19 13:47 Сейчас в теме
Можно и без реквизитов на форме создавать диалог выбора периода, с передачей дат в нужные реквизиты.

&НаКлиенте
Процедура ОткрытьСписокПодбора(Команда)
          Диалог = Новый ДиалогРедактированияСтандартногоПериода();
          Диалог.Период = Новый СтандартныйПериод(Объект.ДатаН, Объект.ДатаК);
          Диалог.Показать(Новый ОписаниеОповещения("ВыборПериодаЗавершение", ЭтотОбъект, Новый Структура("Диалог", Диалог)));
КонецПроцедуры

&НаКлиенте
Процедура ВыборПериодаЗавершение(Период, ДополнительныеПараметры) 
       Диалог = ДополнительныеПараметры.Диалог;
       Объект.ДатаН = Период.ДатаНачала;
       Объект.ДатаК = Период.ДатаОкончания;		
КонецПроцедуры

Показать
Neiron_1C; SagittariusA; Slypower; vladimir-89; gtrr34; JohnyDeath; user1955512; user1559729; jollyk; Alchemist; Alien_RS_Forever; davdykin; Pim; ЕлыПалы; HIVvich; gebungen; kravius12; headMade; Serg O.; unknown181538; indefinitum000; marku; websamson; Septera1; nnnnnndfge; daho; romanagatiy; BoryaMbi; evt_alex; +29 Ответить
2. independ 1520 26.03.19 13:58 Сейчас в теме
(1) можно, здесь основная фишка в том, как просто сделать кнопки списка и выбора периода без лишней информации
user1252779; rpgshnik; +2 Ответить
3. nestokay 62 26.03.19 14:11 Сейчас в теме
(2) я понял Вас:) добавил свои пять копеек, вдруг тоже кому-то пригодится, не создавать же вторую статью:)
kravius12; independ; +2 Ответить
7. evt_alex 25.07.20 19:27 Сейчас в теме
Я проверил на своей обработке. Классно!!! Только вторую процедуру нужно сделать экспортной, а то ошибка выскакивает.

&НаКлиенте
Процедура ВыборПериодаЗавершение(Период, ДополнительныеПараметры) Экспорт
x-ynegve; +1 Ответить
9. user598422_morozoff.v 23.05.22 22:51 Сейчас в теме
&НаКлиенте
Процедура ОткрытьСписокПодбора(Команда)
	Диалог = Новый ДиалогРедактированияСтандартногоПериода();
	Диалог.Период = ПериодОбработки; 
	Диалог.Показать(Новый ОписаниеОповещения("ВыборПериодаЗавершение", ЭтотОбъект));
КонецПроцедуры

&НаКлиенте
Процедура ВыборПериодаЗавершение(Период, ДополнительныеПараметры) Экспорт
	ПериодОбработки = Период;
КонецПроцедуры
Показать


ПериодОбработки - реквизит с типом СтандартныйПериод
shtinn; sylex; +2 Ответить
19. sylex 12.04.23 14:45 Сейчас в теме
16. unknown181538 153 08.11.22 10:34 Сейчас в теме
(1) Процедура ВыборПериодаЗавершение(Период, ДополнительныеПараметры) Экспорт

"Экспорт" в конец еще нужно
20. user1559729 08.09.23 16:52 Сейчас в теме
(1) Не хватает Экспорта и Проверки на заполненность в случае отказа от выбора (иначе ошибка выскочит):

&НаКлиенте
Процедура ОткрытьСписокПодбора(Команда)
          Диалог = Новый ДиалогРедактированияСтандартногоПериода();
          Диалог.Период = Новый СтандартныйПериод(Объект.ДатаН, Объект.ДатаК);
          Диалог.Показать(Новый ОписаниеОповещения("ВыборПериодаЗавершение", ЭтотОбъект, Новый Структура("Диалог", Диалог)));
КонецПроцедуры

&НаКлиенте
Процедура ВыборПериодаЗавершение(Период, ДополнительныеПараметры) Экспорт
       Диалог = ДополнительныеПараметры.Диалог;
       Если ЗначениеЗаполнено(Период) Тогда
          Объект.ДатаН = Период.ДатаНачала;
          Объект.ДатаК = Период.ДатаОкончания;
       КонецЕсли; 
КонецПроцедуры
Показать
4. acsent 1200 01.04.19 18:40 Сейчас в теме
можно еще просто кинутьтип стандартный период на форму
Vary; Stref75; rmarkovych; Zircool; rpgshnik; Stanislav0505; +6 1 Ответить
5. Stanislav0505 10.04.19 15:25 Сейчас в теме
(4) Ага, только усложнил зачем-то всё
6. rpgshnik 3648 19.04.19 16:42 Сейчас в теме
(4)тоже не понял, чем удобнее стандартного периода
8. Yashazz 4726 29.07.20 18:28 Сейчас в теме
(4) Во-первых, у стандартного периода как поля формы отсутствует метод вызова отдельного модального окна. Т.е. "педалькой" вы его вызовете, а программно - нет. Во-вторых, штатное окно правки не работает со временем в датах. Короче, жаль, что объекта "НастройкаПериода" в УФ нет.

Сам когда-то не удержался: https://infostart.ru/public/236695/
10. skd1980 15.06.22 14:16 Сейчас в теме
Каким образом у вас получилось, что осталась видна кнопка при установленной МаксимальнаяШирина=1? У меня почему-то такого не происходит. А вот если сделать ширину = 2 тогда видно кнопку, но и видно поле ввода.
Прикрепленные файлы:
11. independ 1520 18.06.22 13:10 Сейчас в теме
(10) да верно на новых версиях платформы нужно установить МаксимальнаяШирина=2, появляется лишнее пространство слева, но текст кнопки виден
unknown181538; user1252779; +2 Ответить
15. unknown181538 153 08.11.22 10:31 Сейчас в теме
(11)
атформы нужно установить МаксимальнаяШирина=2, появляется лишнее пространство слева, но те
но это как-то все портит...
Получается, нормально теперь не сделать.
18. pavel06 2 09.12.22 17:22 Сейчас в теме
(11) А убрать это лишнее пространство слева никак нельзя? А то не так красиво, как у вас, кнопки выглядят
(Чтоб заголовок убрать надо еще в свойствах установить ПоложениеЗаголовка в Нет)
Прикрепленные файлы:
12. user1273498 12 18.07.22 09:22 Сейчас в теме
Ругается
Переменная не определена (ВыборПериода)
НачПериода=НачалоДня(<<?>>ВыборПериода.ДатаНачала);


Чтобы процедура "Изменить период" работала, нужно сделать:

&НаКлиенте
Процедура ИзменитьПериод()
	НачПериода=НачалоДня(Объект.ВыборПериода.ДатаНачала);
	КонПериода=КонецДня(Объект.ВыборПериода.ДатаОкончания);
КонецПроцедуры
17. pavel06 2 09.12.22 17:06 Сейчас в теме
(12) Нет, у меня работает так, как автор написал. А с Объект. , как у вас, дает ошибку "Поле объекта не обнаружено (ВыборПериода)"
13. user1273498 12 18.07.22 09:25 Сейчас в теме
Но вообще то, что в неуправляемых формах решалось одной кнопкой и одной процедурой, в управляемых формах решается двумя новыми элементами формы с настройкой + тремя процедурами, наводит на мысль о том, что разработчики издеваются над программистами
odinsmot; Antey; Yasasha; Altez50; freeek; pavel06; unknown181538; +7 Ответить
14. user1273498 12 18.07.22 09:28 Сейчас в теме
И еще надо поставить положение заголовка "Нет", чтобы текст заголовка не отображался
Оставьте свое сообщение