В качестве бонуса: стандартный диалог "Настройка периода" из режима "Обычное приложение"
Форму «ВыборДаты» можно поместить в общие формы, пример вызова — команда «ВыбратьДиапазоны» в основной форме
Форма при закрытии с «ОК» возвращает структуру с ключами «ДатаНачала», «ДатаОкончания», закрытие с «Отмена» — возвращает Неопределено
В случае завершения выбора на первой закладке ключ «Интервалы» — массив, содержащщий массивы дат выбранных интервалов
«ДатаНачала», «ДатаОкончания» в этом случае содержат, соответственно, — первую дату первого диапазона и последнюю дату последнего диапазона
UPD_20130226: добавил обработку для обычного режима
UPD_20130715: для режима «Управляемое приложение»
доработал: yuraos (обсуждение в комментариях)
Люблю делать первый пост в статье!
😀 😀 😀 😀 😀 😀 😀
(1),
А знаете почему???
—
Во первых,
потому что смайликов можно в первом посте навставлять.
А во вторых,
потому что потом в рассылке на е-мэйл в сообщениях говорится,
что Я — АВТОР СТАТЬИ !!!
🙂
(2),
ну а если серьезно,
плюс автору за то, что реализовал традиционный диалог выбора периода для тонкого клиента.
чесно говоря я уже запарился лазить по дурацкому списку выбора стандартного периода,
который пришел в 1С с системой компоновки данных,
а затем благополучно перекочевал в управляемый интерфейс на безальтернативной основе.
(3)
еще, -думаю, — интересно: диалог можно дорабатывать в отличие от системного
к примеру: если привязать диалог к календарю, то пользователю можно выбирать периоды с учетом визуально отображенных праздников, выходных дней
он там мышкой растягивается — хоть на год 🙂
(4) nnn,
да безусловно.
я уже тоже кое-что начал делать в этом направлении.
правда я в основном «варюсь» под 8.1 и до управляемого интерфеса дело не дошло.
и вообще до этого как-то руки не доходют — остановился на функционале закладки «Период» диалога выбора.
так что вы меня опередили
🙂
(5),
Я правда изначально поставил усложненную задачу:
сделать так,
чтобы форма обработки полностью имитировала объект «НастройкаПериода»
то есть имела бы те же экспортные методы и атрибуты.
Это было бы удобно при использовании:
получил форму и используй ее вместо объекта «НастройкаПериода».
Вот вам еще хорошая идея, можете покапать и в этом направлении,
заодно создать для общности и формы для обычного интерфейса.
(3),
пара критических замечаний:
1) в толстом клиенте в режиме управляемого приложения валятся ошибки времени выполнения
из-за попытки присвоения значения атрибуту глобального контекста «РабочаяДата»,
который обычно доступен только для чтения.
2) при работе формы выбора дат выполняются серверные вызовы, которых с моей точки зрения,
можно было избежать.
Покрайней мере точно можно заменить на внеконтекстные серверные вызовы.
yuraos, спасибо за замечания
по поводу ошибки — обязательно проверю
по поводу замены серверного вызова на внеконтекстсный серверный — если отправите обработку (d.n[]bk.ru) с рекомендуемыми Вами изменениями — выложу тут как новую версию с соотв. комментириями о Вашем участии
я двумя руками «за» совместную разработку — самому времени не хватает довести до ума
(8) nnn,
на всякий случай скачал последнюю версию обработки.
подтверждаю дефект:
в толстом клиенте (управляемое)
если тычить по переключателям на закладках «Интервал» и «Период»
вываливается ошибка времени выполнения:
{Форма.ВыборДаты.Форма(632)}: Поле объекта недоступно для записи (РабочаяДата)
РабочаяДата = Рабочая_Дата();
(9)
можете как говорится не дожидаясь меня править код.
—
в принципе я поправил обработку:
осталось только одна функция, с вызовом сервера с клиента:
которую тоже можно заменить на арифметические действия с датами
…
если отправите обработку (d.n[]bk.ru) с рекомендуемыми Вами изменениями
адресок в скобках — ето что ???
[] = @
🙂
(11) nnn,
подправленный файлец на указанный адресок
отправил в порядке, так сказать, дружеского разбора реализации.
всего я потратил на правку минут 20-30.
больще всего пришлось повозиться с функцией ДО().
…
что вы с ней перемудрили.
лучше было-бы все действия с этой функцией
выполнить в самом конце — при выборе в форме.
(8)
свой вариант .
PS,
на счет сотруднечества:
я наконец допилил до товарного вида
в том виде, в каком я его задумал.
(13)
Моя обработка просто имитирует системный диалог
(+ режим выбора «Редактировать как стандартный период«).
Сделана добротно, досконально и весьма концептуально.
Было бы неплохо «прикрутить» к ней ваш режим выбора,
обозвав его, например, «Редактировать как календарь«
(14) кошак не в себе)))