Удобный выбор периода (управляемая форма)


Удобный выбор периода для управляемого приложения 1С.

Саму идею нагло слизал с этой: //infostart.ru/public/90540/ публикации. Автор приложения молодец, ставьте плюсы и раздавайте хвалебные комменты.

Чтобы выбрать интервал дат на поле календаря, нужно зажать «Shift», выделить нужный интервал и нажать кнопку «Enter».  Для выбора конкретной даты нажать «Enter» или щелкнуть мышью 2 раза.

Есть возможность выбрать интервал из нескольких лет. Вверху формы появляется несколько кнопок с годами, например: 2012,  2013, 2014, 2025, 2025. Для быстрого выбора интервала нужно нажать сначала на 2012, потом на 2025. В результате мы выберем период с 01.01.2012 по 31.12.2025. Если два раза нажать на «2012», то результат будет интервал с 01.01.2012  по 31.12.2012

 

Для того, чтобы получить возможность выбрать более длительный интервал, справа и слева от кнопок с годами есть кнопки с тектстом «…». 

Чтобы использовать форму для своих целей нужно выполнить следующие действия:

Копировать из обработки форму «БыстрыйВыборСтандартногоПериода» в общие формы и в объекте (управляемое приложение) вставить следущий код (ПериодС  и ПериодПо  заменить на свои даты):

 

ПолучитьФорму("ОбщаяФорма.БыстрыйВыборСтандартногоПериода");
Форма.СтандартныйПериод.ДатаНачала = Объект.ПериодС ;
Форма.СтандартныйПериод.ДатаОкончания = Объект.ПериодПо ;
Форма.Дата = Объект.ПериодС ;

РезультатВыбора = Форма.ОткрытьМодально();

Если РезультатВыбора <> Неопределено Тогда

Объект.ПериодС = РезультатВыбора.ДатаНачала;
Объект.ПериодПо = РезультатВыбора.ДатаОкончания;

КонецЕсли;

 

42 Comments

  1. anton.fly7

    а если форму растащить? мышкой пошире. кнопки сильно разъедутся?

    Reply
  2. kser87

    От растаскивания кнопки не разъезжаются

    Reply
  3. w-divin

    хоть у кого-то руки дошли ))) сам юзаю основу — все хотел переделать на УФ, но руки не доходили… спс за труды )))

    Reply
  4. kser87

    рад стараться)

    Reply
  5. motkot

    Не совсем понял «Нет формы выбора стандартной настройки периода». Это о чем речь?

    Reply
  6. kser87

    Я имею в виду элемент управления «Выбор периода». В обычном приложении его еще можно создать конструктором

    «Новый НастройкаПериода». В управляемом приложении этот объект тоже недоступен

    Reply
  7. IamAlexy

    жуть жутчайшая…

    на картинках просто невообразимый .здец…

    в тестовой БП3 (которая была год назад) было красивее и нагляднее — и тоже отдельным открываемым окном с выбором периода.

    зы: в управляемых формах правильнее делать выбор периода так чтобы не надо было открывать дополнительных окон — это позитивно сказывается на быстродействии.

    имхо самый удачный выбор периода сейчас в текущей БП3 сделан в отчетах.. очень шустро и более чем наглядно

    Reply
  8. Para_1987

    класс, функциональный такой выбор периода) удобно, но уж очень большое окно. Все таки буду пользоваться)

    Reply
  9. motkot

    (6) а чем не подходит «Новый ДиалогРедактированияСтандартногоПериода»? Или мы о разном?

    Reply
  10. kser87

    Para_1987, Спасибо! Я считаю, что большое окно это большой плюс. Лучше видно

    Reply
  11. kser87

    IamAlexy, «выбор периода так чтобы не надо было открывать дополнительных окон» я учту ваше мнение

    Reply
  12. Adeptus

    Вау круто! Тока у меня покрасивее было. Расстояния не было между кнопочек, покомпактней бы

    Reply
  13. kser87

    (12) Adeptus, не придумал, как это сделать уменьшить расстояние на управляемой форме. Но с другой стороны, так лучше пользователям с ослабленным зрением=)

    Reply
  14. kser87

    (9) motkot, не совсем про это, но все равно спасибо. Не знал, как вызывать этот объект

    Reply
  15. Konder.Djironimo

    Спасибо, удобнинько бабульки в бухгалтерии в экстазе!

    Reply
  16. Dethmond

    Спасибо, хорошая вещь

    Reply
  17. kser87

    (15) Konder.Djironimo, По-моему для 1С-ника комплимента лучше и придумать нельзя))

    Reply
  18. karakozov

    Хорошая наработочка на каждый день. Необычненько.

    Reply
  19. Den_D

    Спасибо автору за труд!

    По мне так большинство людей работающих за компьютером со временем страдают ухудшением зрения. Можно сказать, что это профессиональное. Думаю что при таком подходе большое информативное окно это только плюс.

    Reply
  20. ATverdikov

    неплохо, взял на заметку.

    Reply
  21. mentos

    молодец, Анна!

    Reply
  22. popipo

    (21) mentos,

    Да, Анна, Молодец!

    Reply
  23. VasilevaHelen

    Спасибо, оказалась очень полезной.

    Reply
  24. Создание Тьмы

    такие хорошие отзывы, скачаю тоже)

    Reply
  25. AlexShap

    Спасибо. Классная штука.

    Reply
  26. vicmos

    спасибо

    Reply
  27. Risoks

    Спасибо! Полезная штука

    Reply
  28. AVK_Alex

    Хорошая штука.

    Предложения по улучшению:

    1. В форме список лет начинается с текущего года. Лучше было бы текущий год поместить в середину — можно будет быстро выбрать прошлый год…

    2. Текущий год можно выделить жирным — чтобы сразу бросался в глаза.

    3. Можно добавить поля ДатаС и ДатаПо — для ручного выбора периода.

    4. Добавить кнопку «Выбрать» — для п.3, и для выбора периода мышкой внизу (где месяцы).

    5. Кнопки год вперед / год назад сделать стрелками и перематывать по одному году.

    6. Хотелось бы год тоже выбирать одним кликом. Тут конфликт с выбором нескольких лет (можно решить с помощью п.3, 4)…

    7. Размер формы по умолчанию сделать таким, чтобы помещалось 3 месяца — прошлый, текущий, следующий.

    8. К полугодиям и кварталам добавить подписи «полуг.» и «кв.» соответственно — для тех, кто на бронепоезде 🙂

    Reply
  29. kser87

    (28) AVK_Alex, попробую сделать.

    Reply
  30. olbu

    на скрине выглядит очень хорошо! интересно, если не вставлять в конфигурацию, а «положить» в допобработки, возможно ли будет ее использовать?

    Reply
  31. kser87

    (30) olbu, где вы ее хотите использовать как доп обработку?

    Reply
  32. ECartman

    Обработка очень пригодилась. Прикрутил для вэб-интерфейса. Правда, пришлось исправить один глюк платформы: при создании стандартного периода

    Период = Новый СтандартныйПериод(ВариантСтандартногоПериода.ПроизвольныйПериод);

    у клиента вылетала ошибка

    Объект не поддерживает свойство или метод «getValue»

    Пришлось исправить на

    Период = Новый Структура;

    Все заработало.

    Хотя у меня платформа 8.2.19.83 и вроде как по багрепорту у 1с-ников данный глюк в этом релизе исправлен. А оказывается ничего подобного, глюк платформы есть.

    P.S. Еще одина ошибка в обработке: при выборе 2-го полугодия устанавливается период с 1.06 по 31.12, а должно с 1.07 по 31.12

    Reply
  33. kser87

    (32) ECartman, будет время-посмотрю ошибки

    Reply
  34. iones
  35. EMelihoff

    В ЕРП есть форма выбор периода, как написано можно посмотреть!

    Reply
  36. kser87

    (35) EMelihoff, когда я делал эту форму ERP еще не было)

    можете скриншот формы показать?

    Reply
  37. EMelihoff

    (36) Вы знаете я наверное поспешил, эта форма выбора периода только для года. зато в 8.3.5 нашёл интересный конструктор в СП

    Новый ДиалогРедактированияСтандартногоПериода()

    Reply
  38. lexxxus

    «Чтобы выбрать интервал дат на поле календаря, нужно зажать «Shift», выделить нужный интервал и нажать кнопку «Enter». »

    Не работает. При нажатии Enter выбирается период по первой дате, например если выбираю с 01.06.2016 по 15.06.2016, то ко мне придет период с 01.06.2015 00:00:00 по 01.06.2016 23:59:59

    Reply
  39. AlexO

    (12)УФ не позволяет все компактно сделать. Или так, или никак. Ну, или еще есть вариант от 1С. Увы.

    Reply
  40. AlexO

    (32)

    P.S. Еще одна ошибка в обработке: при выборе 2-го полугодия устанавливается период с 1.06 по 31.12, а должно с 1.07 по 31.12

    Эта ошибка и в оригинальной обработке для 8.1 была у Adeptus в https://infostart.ru/public/90540/.

    Сюда переехала по наследству )

    Reply
  41. AlexO

    (38)

    Не работает.

    И в оригинальной обработке в последних версиях тоже уже не работало. Элементы календаря в 8.2 перестали поддерживать функционал (первоначально обработка писалась для 8.1).

    Поэтому в оригинальной был добавлен стандартный выбор — именно для случая свободного выбора интервала дат.

    Здесь, видимо, повторить забыли )

    Хотя нет, судя по скриншотам — кнопочка стандартного выбора присутствует, и именно для свободного выбора дат.

    Reply
  42. dandykry

    Чем не понравилось?

    ДиалогРедактированияСтандартногоПериода (StandardPeriodEditDialog)

    Свойства:

    Период (Period)

    Методы:

    Показать (Show)

    Редактировать (Edit)

    Конструкторы:

    Основной

    Описание:

    Предназначен для интерактивного редактирования объекта СтандартныйПериод.

    Доступность:

    Тонкий клиент, веб-клиент, толстый клиент, внешнее соединение, мобильное приложение(клиент).

    Пример:

    Диалог = Новый ДиалогРедактированияСтандартногоПериода();

    Диалог.Период = ПеременнаяТипаСтандартныйПериод;

    Если Диалог.Редактировать() Тогда

    ПеременнаяТипаСтандартныйПериод = Диалог.Период;

    КонецЕсли;

    Reply

Leave a Comment

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