Форма выбора периода как в Такси УФ JS

Однажды мне пришла задача: «Ограничить выбор периода интерактивно».
Но, как оказалось, типовая форма выбора периода не позволяет ограничивать и учитывать запреты (или, может, я этого не знаю?).
Так вот раз, два и готово.

Проверялось на платформе "1С:Предприятие 8.3 (8.3.13.1644)" конфигурации "Документооборот 8 КОРП, редакция 2.1 (2.1.11.5) "

Однажды мне пришла задача: "Ограничить выбор периода интерактивно".
Но как оказалось, типовая форма выбора периода не позволяет ограничивать и учитывать запреты (или может я этого не знаю?).
Так вот раз два и готово.

Мурыжил я JS и через поле HTML документа все реализовал.

Тут у нас приложена обработочка с примером. Если куда встраивать нужно подменить пути к макету:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
....
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");

ПервыйБраузер  = ОбработкаОбъект.ПолучитьМакет("СкриптМакетаВыбораПериода").ПолучитьТекст();

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

Открывается форма следующим образом "рекомендации так сказать":

 

ПериоДС = Новый СтандартныйПериод();
ПериоДС.ДатаНачала = Дата("20240501000000");
ПериоДС.ДатаОкончания = Дата("20240401000000");

ПараметрыФормы = новый Структура();
ПараметрыФормы.Вставить("ДоступныйПериод", ПериоДС);
ПараметрыФормы.Вставить("ОдинМесяц", Истина);

Форма = ПолучитьФорму("ВнешняяОбработка.ФормаВыбораПериода.Форма.ФормаВыбораПериодаНовая",ПараметрыФормы,ЭтаФорма);
Форма.РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
Форма.Открыть();

 

2 Comments

  1. s_vidyakin

    норм, но над CSS я бы поработал ))

    Reply
  2. Mi4man

    Это?

    Расширение поля формы для поля календаря (Form field extension for a calendar field)

    НачалоПериодаОтображения (BeginOfRepresentationPeriod)

    Использование:

    Чтение и запись.

    Описание:

    Тип: Неопределено; Дата.

    Содержит нижнюю границу периода видимых в календаре дат. За указанную границу перемещение в календаре невозможно.

    Reply

Leave a Comment

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