gifts2017

Выбор периода и диапазонов для режимов "Управляемое приложение" и "Обычное приложение"

Опубликовал Николай (nnn) в раздел Программирование - Работа с интерфейсом

Форма выбора (одним действием) произвольного количества диапазонов с использованием элемента "Поле календаря"
В качестве бонуса: стандартный диалог "Настройка периода" из режима "Обычное приложение"

Форму "ВыборДаты" можно поместить в общие формы, пример вызова - команда "ВыбратьДиапазоны" в основной форме

Форма при закрытии с "ОК" возвращает структуру с ключами "ДатаНачала", "ДатаОкончания", закрытие с "Отмена" - возвращает Неопределено

 

 

В случае завершения выбора на первой закладке ключ "Интервалы" - массив, содержащщий массивы дат выбранных интервалов

"ДатаНачала", "ДатаОкончания" в этом случае содержат, соответственно, - первую дату первого диапазона и последнюю дату последнего диапазона

UPD_20130226: добавил обработку для обычного режима

UPD_20130715: для режима "Управляемое приложение"

доработал: yuraos  (обсуждение в комментариях)

Скачать файлы

Наименование Файл Версия Размер
ВыборДаты.epf 46
.epf 17,71Kb
15.07.13
46
.epf 17,71Kb Скачать
для стандартного режима 10
.epf 20,75Kb
26.02.13
10
.epf 20,75Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Юрий Осипов (yuraos) 24.02.13 18:56
Люблю делать первый пост в статье!
:D :D :D :D :D :D :D
2. Юрий Осипов (yuraos) 24.02.13 19:00
(1),
А знаете почему???
---
Во первых,
потому что смайликов можно в первом посте навставлять.
А во вторых,
потому что потом в рассылке на е-мэйл в сообщениях говорится,
что Я - АВТОР СТАТЬИ !!!
:)
3. Юрий Осипов (yuraos) 24.02.13 19:05
(2),
ну а если серьезно,
плюс автору за то, что реализовал традиционный диалог выбора периода для тонкого клиента.
чесно говоря я уже запарился лазить по дурацкому списку выбора стандартного периода,
который пришел в 1С с системой компоновки данных,
а затем благополучно перекочевал в управляемый интерфейс на безальтернативной основе.
Рамзес; +1 Ответить 2
4. Николай (nnn) 24.02.13 19:16
(3) yuraos,
еще, -думаю, - интересно: диалог можно дорабатывать в отличие от системного
к примеру: если привязать диалог к календарю, то пользователю можно выбирать периоды с учетом визуально отображенных праздников, выходных дней
он там мышкой растягивается - хоть на год :)
5. Юрий Осипов (yuraos) 24.02.13 19:29
(4) nnn,
да безусловно.
я уже тоже кое-что начал делать в этом направлении.
правда я в основном "варюсь" под 8.1 и до управляемого интерфеса дело не дошло.
и вообще до этого как-то руки не доходют - остановился на функционале закладки "Период" диалога выбора.

так что вы меня опередили
:)
6. Юрий Осипов (yuraos) 24.02.13 19:43
(5),
Я правда изначально поставил усложненную задачу:
сделать так,
чтобы форма обработки полностью имитировала объект "НастройкаПериода"
то есть имела бы те же экспортные методы и атрибуты.

Это было бы удобно при использовании:
получил форму и используй ее вместо объекта "НастройкаПериода".

Вот вам еще хорошая идея, можете покапать и в этом направлении,
заодно создать для общности и формы для обычного интерфейса.
7. Юрий Осипов (yuraos) 04.07.13 10:45
(3),
пара критических замечаний:
1) в толстом клиенте в режиме управляемого приложения валятся ошибки времени выполнения
из-за попытки присвоения значения атрибуту глобального контекста "РабочаяДата",
который обычно доступен только для чтения.
2) при работе формы выбора дат выполняются серверные вызовы, которых с моей точки зрения,
можно было избежать.
Покрайней мере точно можно заменить на внеконтекстные серверные вызовы.
8. Николай (nnn) 04.07.13 11:52
yuraos, спасибо за замечания
по поводу ошибки - обязательно проверю
по поводу замены серверного вызова на внеконтекстсный серверный - если отправите обработку (d.n[]bk.ru) с рекомендуемыми Вами изменениями - выложу тут как новую версию с соотв. комментириями о Вашем участии
я двумя руками "за" совместную разработку - самому времени не хватает довести до ума
9. Юрий Осипов (yuraos) 04.07.13 18:51
(8) nnn,
на всякий случай скачал последнюю версию обработки.
подтверждаю дефект:
в толстом клиенте (управляемое)
если тычить по переключателям на закладках "Интервал" и "Период"
вываливается ошибка времени выполнения:

{Форма.ВыборДаты.Форма(632)}: Поле объекта недоступно для записи (РабочаяДата)
РабочаяДата = Рабочая_Дата();
10. Юрий Осипов (yuraos) 04.07.13 18:56
(9)
можете как говорится не дожидаясь меня править код.

---
в принципе я поправил обработку:
осталось только одна функция, с вызовом сервера с клиента:
&НаСервереБезКонтекста
Функция РазностьДат(Дата1, Дата2, ЕдиницаИзмерения = Неопределено) Экспорт

которую тоже можно заменить на арифметические действия с датами
...

если отправите обработку (d.n[]bk.ru) с рекомендуемыми Вами изменениями

адресок в скобках - ето что ???
11. Николай (nnn) 04.07.13 20:16
12. Юрий Осипов (yuraos) 14.07.13 17:02
(11) nnn,
подправленный файлец на указанный адресок
отправил в порядке, так сказать, дружеского разбора реализации.
всего я потратил на правку минут 20-30.
больще всего пришлось повозиться с функцией ДО().
...
что вы с ней перемудрили.
лучше было-бы все действия с этой функцией
выполнить в самом конце - при выборе в форме.
13. Юрий Осипов (yuraos) 14.07.13 17:05
(8)
PS,
на счет сотруднечества:
я наконец допилил до товарного вида свой вариант.
в том виде, в каком я его задумал.
14. Юрий Осипов (yuraos) 14.07.13 17:10
(13)
Моя обработка просто имитирует системный диалог
(+ режим выбора "Редактировать как стандартный период").
Сделана добротно, досконально и весьма концептуально.

Было бы неплохо "прикрутить" к ней ваш режим выбора,
обозвав его, например, "Редактировать как календарь"
15. Сергей Иванов (psa247) 02.08.16 07:07
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа