Обработка "EditPeriod": традиционный диалог настройки периода на Web-клиенте и тонком клиенте.

22.03.14

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

Обработка имитирует функционал системного объекта «НастройкаПериода».  
Обеспечивает работу альтернативного диалога настройки периода,
как в режиме обычного приложения, так и в Web-клиенте и в тонком клиенте.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?] Купить один файл
ViewValues-8x_Demo.rar
.rar 1,30Mb
29
29
1 SM
Скачать Купить за 1 850 руб.
Неудобно спать на потолке, одеяло спадает. А остальное - все удобно!!!
...мнение прапорщика РККА.

Das ist schweinen, buggy, gluhten, nicht verstehen, nicht einfaches programmen!!!
...мнение фюрера 3-го рейха.

Предыстория вопроса: 

Часто при работе в базах данных возникает необходимость ввода периода «чего-нибудь».
Традиционно в 1С для этой цели служил специальный системный диалог.
В случае платформы 1С 7.x этот диалог выводится функцией ВвестиПериод(),
а случае платформы 1С 8.x этот диалог открывается методом Редактировать() объекта “НастройкаПериода”.
Классификация же вариантов периодов, используемых в этом диалоге, заложена ещё в 1С:Бухгалтерия-6.0.

К сожалению в настоящее время на Web-клиенте и тонком клиенте объект “НастройкаПериода” не доступен.
И в этих режимах для ввода периода на безальтернативной основе предлагается
использовать диалог ввода стандартного периода системы компоновки данных.

Вопрос удобства, конечно, является понятием субъективным  (и чего греха таить - внушаемым).
Однако я полагаю, что многие считают традиционный диалог настройки периода более удобным.


Реализация решения: 

Чтобы как-то компенсировать указанное ограничение платформы и связанную с ней “несправедливость” в подсистему “ViewValues”,
начиная с версий 8.1.1.4 и 8.2.1.4, включены обработка EditPeriod и используемый ей одноименный общий модуль.

Обработка имеет два интерфейса - обычный и управляемый (управляемый – только в подсистеме версии 8.2.1.4).

Это обеспечивает ее работу в различных режимах:

Основные формы обработки (Рис.1, Рис.5, Рис.9)  - являются тестовыми,
служат для проверки работы объекта “НастройкаПериода” и демонстрации ее собственных возможностей. 
Также у обработки есть служебные формы, непосредственно реализующие функционал объекта “НастройкаПериода”.


Обработка максимально точно имитирует поведение системного диалога настройки периода:

  • Всем свойствам объекта “НастройкаПериода” соответствуют одноименные  реквизиты обработки;
  • Всем методам объекта “НастройкаПериода” соответствуют экспортные функции служебных форм обработки;
  • Диалоги служебных форм обработки для настройки периода максимально приближены
    к системному диалогу по дизайну и поведению при изменении данных;

Имеются также свои особенности:

  • Свойства диалога настройки периода в служебных формах обработки доступны не напрямую,
    а через реквизит формы “Объект” (смотрите ниже пример использования);
  • Поскольку служебные перечисления, связанные с объектом “НастройкаПериода”, также не доступны в управляемом приложении,
    то вместо их значений в обработке используются строковые мнемокоды в стиле макрокоманд установки периода 1С:Бухгалтерии-6.0.
    Так мнемокод “!ДНК” – соответствует варианту периода “День с начала квартала”.
    Полный перечень мнемокодов приведен в справочном описании к обработке;
  • Положение окна диалога ввода периода запоминается при использовании (системный диалог всегда выводится в центре экрана);
  • Есть и другие, более тонкие отличия поведения диалога (смотрите справочное описание);

Дополнительные возможности:

  • Обработка поддерживает дополнительный режим ввода периода «Редактировать как стандартный период» и
    соответствующую ей закладку в диалоге настройки (Рис.4, Рис.8, Рис.12);
  • Для диалога настройки периода обработки можно задать свой заголовок и тайм-аут ввода.
    Истечение тайм-аута выводится в заголовке формы в квадратных скобках (Рис.10);
  • В диалоге настройки периода обработки можно включать-выключать вывод текущей даты и времени,
    а также переключать представление выбранного периода с «обычного» на «финансовый»;
  • На закладке “Период” имеется дополнительная опция выбора периода 'С текущей даты' / 'По текущую дату',
    облегчающая выбор периода типа "Год NNNN по текущую дату" (Рис.13);

Общие замечания: 

Управляемая форма настройки периода обработки оптимизирована по взаимодействию с сервером.
При ее работе на клиенте в явном виде не используются серверные вызовы (включая внеконтекстные).

Основной функционал обработки вынесен в общий модульEditPeriod, который кроме этого предоставляет
экспортный метод
Создать() - своего рода «конструктор» для более привычного создания диалога настройки периода.


Пример использования:

НастройкаПериода = EditPeriod.Создать(,,);
НастройкаПериода.Объект.РедактироватьКакИнтервал  = Истина;
НастройкаПериода.Объект.РедактироватьКакПериод = Истина;
НастройкаПериода.Объект.РедактироватьКакСтандартныйПериод = Истина;
НастройкаПериода.Объект.ВариантНастройки = "!П";
НастройкаПериода.УстановитьПериод(ДатаНачала, ?(ДатаОкончания='0001-01-01', ДатаОкончания, КонецДня(ДатаОкончания)),Ложь);

НастройкаПериода.Объект.ФинансовыйПериод = Истина;
НастройкаПериода.Объект.ВыводитьТекущуюДату = Истина;

Если
НастройкаПериода.Редактировать("Ввод периода акта взаиморасчётов:", 180) Тогда
   
ДатаНачала = НастройкаПериода.ПолучитьДатуНачала();
   
ДатаОкончания = НастройкаПериода.ПолучитьДатуОкончания();
КонецЕсли;

Описание файлов поставки и установки:

В архиве с файлами поставки к статье находятся выгрузки демонстрационных баз подсистемы “ViewValues”
для платформы 1С версий 8.1 и 8.2, в которых можно проверить работу обработки.

Для установки описанного в статье функционала достаточно из конфигураций подсистемы “ViewValues”
указанных версий включить в конфигурацию базы данных обработку “EditPeriod” и используемый ей одноименный общий модуль.


Имеется похожая публикация:

//infostart.ru/public/175213/ (автор nnn).
Обе разработки велись независимо примерно в одно время. Но nnn опубликовал свою работу раньше.
Выложенная в его статье обработка больше ориентирована на выбор массива интервалов дат с помощью отметки в поле календаря,
однако она также имеет «бонусные» закладки “Интервал” и “Период”,
аналогичные одноименным закладкам системного диалога настройки периода.

См. также

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

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

2400 руб.

29.06.2020    17613    24    6    

38

Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    5345    smielka    37    

95

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

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

27.12.2023    12360    787    elcoan    47    

110

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

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

2 стартмани

10.04.2023    10614    158    acces969    31    

120

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

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

1 стартмани

05.07.2022    4577    kalyaka    6    

32

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

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

6000 руб.

18.01.2022    9345    1    2    

6

В каком из диалогов выбора периода явдяется более удобным


Традиционный диалог "Настройка периода" (68.65%, 127 голосов)
68.65%
Диалог ввода стандартного периода системы СКД (11.35%, 21 голосов)
11.35%
Не один из диалогов не удобен, лутше вводить обе даты вручную (10.81%, 20 голосов)
10.81%
я не в теме - затрудняюсь ответить (9.19%, 17 голосов)
9.19%

Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. yuraos 1001 13.07.13 06:13 Сейчас в теме
Обработка тестировалась на платформах
8.1.15, 8.2.13, 8.2.14.

На 8.3 - не тестировалась,
но думаю особых проблем возникнуть не должно.

если что - сообщайте,
будем думать как скрестить "ужа" с "ежом".
4. Поручик 4683 13.07.13 23:20 Сейчас в теме
(1) Аффтар, из какого класса церковно-приходской школы тебя вытурили за безграмотность?
Не один из диалогов не удобен, лутше вводить обе даты вручную
6. yuraos 1001 14.07.13 15:39 Сейчас в теме
(4) Поручик,
не обессудь
1) школа была физико - матИматической, по русскАму с литИратурой в аттестате трояки.
2) намеренные грамматические ошибки сейчас - это новое слово в пиаре.
3) в голосовании, если в спешке прокосячился - то уже исправить ничего невозможно.
9. ediks 337 14.07.13 21:43 Сейчас в теме
(6) 1. Не поверишь, я тоже заканчивал физико-математическую школу, но тем не менее с грамотностью все нормально.
2. Ну, может быть, не надо было спешить с голосованием. Можно и без него обойтись на современном Инфостарте.
3. И потом, это было не обвинение, а констатация факта.
2. yuraos 1001 13.07.13 06:46 Сейчас в теме
Примечание к эпиграфу статьи:
--
С мнением прапорщика посмею не согласиться, ну а
мнение фюрера у нас в последнее время - это ГЛАС НАРОДА - его надо уважать.
---
и так:
кто кого? Прапорщик или фюрер?

---
дружно голосуем, рассказываем что-нибудь интересное.
3. ediks 337 13.07.13 22:00 Сейчас в теме
Две грамматические ошибки в одном предложении - это, пожалуй, перебор.
Не один из диалогов не удобен, лутше вводить обе даты вручную
7. yuraos 1001 14.07.13 15:43 Сейчас в теме
(3) ediks, (4) Поручик,
в древнем Риме, если нечего было ответить оппоненту - его обвиняли в нетрадиционной ориентации.
ну а на современном Инфостарте, смотрю, - обвиняют в грамматических ошибках.
8. Поручик 4683 14.07.13 18:03 Сейчас в теме
(7) В позднем Древнем Риме многие были той самой ориентации, даже императоры не прочь были. Да и в раннем на ту самую ориентацию особо не смотрели. Причём в войсках в походах это даже поощрялось.
А что плохого в обвинении в грамматических ошибках? Давайте и дальше становиться безграмотным быдлом, политика такая в этой стране.
Alex_grem; +1 Ответить
10. yuraos 1001 15.07.13 06:01 Сейчас в теме
(8) Поручик, (9) ediks,
я все понимаю,
но давайте все-таки по теме господа ...
5. Поручик 4683 13.07.13 23:23 Сейчас в теме
(0) Не зря хозяин сайта убрал из заголовка слово "профессиональное".
11. spleen 65 15.07.13 09:37 Сейчас в теме
фразу фюрера переведи на русский.
12. yuraos 1001 15.07.13 10:02 Сейчас в теме
(11) spleen,
что опять претензии по правописанию?
теперь уже немецкому?

по-моему "бункеровские" приколы переводить с немецкого бесмысленно.
13. Bukaska 140 15.07.13 12:08 Сейчас в теме
По мне так самое удобное - стандартный период
14. yuraos 1001 15.07.13 12:36 Сейчас в теме
(13) Bukaska,
ну удобно так удобно.

---
ну по результатам голосования я смотрю...
ФЮРЕР далеко позади оставил ПРАПОРЩИКА
15. Bukaska 140 15.07.13 15:57 Сейчас в теме
(14) А теперь расшифруй))))))
16. yuraos 1001 16.07.13 06:10 Сейчас в теме
(15)
Ну Bukaska, ты у меня такая умненькая . Придумай что-нибудь.
17. yuraos 1001 16.07.13 06:21 Сейчас в теме
(16)
И так, судя по результатам голосования
подавляющее большинство не согласно с ПРАПОРЩИКОМ
и таким образом уважает мнение ФЮРЕРА
...
18. yuraos 1001 16.07.13 06:25 Сейчас в теме
(17)
По поводу этого позволю себе
немного покритиковать управляемый интерфейс и
управляемое приложение в нынешнем виде.
19. yuraos 1001 16.07.13 06:48 Сейчас в теме
При разработке обработке мне пришлось
столкнуться с рядом проблем.

I) КОНЦЕПТУАЛЬНЫЕ ПРОБЛЕММЫ:
20. yuraos 1001 16.07.13 06:50 Сейчас в теме
1) Часть функционала обработки вынесена в общий модуль
с потерей универсальности не от хорошей жизни:

к сожалению, ни модуль объекта обработки, ни модуль ее менеджера
(где этот функционал можно было бы разместить) на клиенте не доступны
---
очень не хватает публичных модулей, подчиненых объектам метаданных,
с доступом на клиенте
21. yuraos 1001 16.07.13 07:00 Сейчас в теме
2) Для функционирования формы часто
(как в случае диалога настройки периода) сервер в принципе не нужен.
Всю работу можно было бы организовать на строне клиента
(кстати с выигрыщем по производительности, ради которой весь сыр-бор).
---
Но управляемое приложение в нынешнем виде не дает такой возможности:
а. Чтобы создать форму нужен сервер.
б. После ее создания без обращения к серверу тоже не обойтись:
Например вызовы к серверу идут при установке флагов
"Доступность" и "ТолькоПросмотр" у элементов управления.
22. yuraos 1001 16.07.13 07:18 Сейчас в теме
II) ИНТЕРФЕЙСНЫЕ ПРОБЛЕММЫ:
23. yuraos 1001 16.07.13 07:38 Сейчас в теме
1) Нельзя запретить изменение размеров управляемой формы,
открытой модально. Также нельзя запретить ее максимизацию.

2) Нельзя в заголовке управляемой формы устанавливать картинку.

3) Вид управляемая форма с фиксированными размерами
(если у всех элементов формы для свойств
"Автоматически расширять по вертикали/горизонтали"
установить значение "Нет")
может сильно искажаться в разных клиентах разных версий.

4) Нельзя для поля надписи в форме задать цвет фона, отличный от фона формы.

5) У поля надписи можно настроить контекстное меню,
но его команды не отрабатываются обработчиками событий
(пришлось такие надписи заменить на поля ввода).

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

7) У полей флажка и полей переключателя почему-то не предусмотрено свойства "Длина".
Реальная длина устанавливается длине выводимого заголовка с учетом пробелов.
(пришлось "прыгать с бубном", особенно для поля переключателя)
24. absolutblohin 16.07.13 17:23 Сейчас в теме
В опросе голосую за пункт: "Ни один из диалогов не удобен, но пользуюсь ими из-за отсутствия альтернативы лучшего )"
25. yuraos 1001 16.07.13 18:57 Сейчас в теме
(24) absolutblohin,
благодарю!
Ты первый, кто высказался по теме...
а в поле календаря как в этой статье
может будет удобней ?
26. absolutblohin 17.07.13 12:05 Сейчас в теме
(25)О, да. Это один из самых удобных вариантов. Я тоже писал свой выбор периода, называл его "выбор произвольного периода в один клик (в пределах года)", т.е. выбор периода драг энд дропом в поле календаря. Все закончилось что тонкий клиент зависал на вечно при попытке отрисовать поле календаря размером в год :(. Может в новых версиях платформы баг пофиксили, но запал прошел.
А в основном все упирается в то, что свой диалог выбора периода приходится вручную прикручивать, и если в отчетах еще можно как-то автозаменой, то с журналами документов(да и любыми динамическими списками) вообще беда. Не видать своей 1с с шахматами и поэтессами :(
27. yuraos 1001 15.03.14 09:11 Сейчас в теме
Всем доброго времени суток!
Обновлен файл поставки.

Текущие изменения не каснулись функционала описанного в этой публикации.

Конфигурация демонстрационной базы обновлена до последних изменений
в подсистеме "ViewValues" от 01.03.2014.
Оставьте свое сообщение