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

22.03.14

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

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

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

Наименование Файл Версия Размер
ViewValues-8x_Demo.rar
.rar 1,30Mb
29
.rar 1.5 1,30Mb 29 Скачать
Неудобно спать на потолке, одеяло спадает. А остальное - все удобно!!!
...мнение прапорщика РККА.

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 Платные (руб)

Обработка предназначена для редактирования картинок в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Также обработка может быть использована из встроенного языка как объект для редактирования картинок. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Данная обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    61699    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

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

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54317    16    21    

42

Управление дашбордами

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

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

2400 руб.

29.06.2020    16623    21    4    

35

Новогоднее оформление для 1С

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

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

27.12.2023    10564    745    elcoan    45    

106

Конструктор HTML, CSS и javascript

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

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

2 стартмани

10.04.2023    9485    150    acces969    31    

115

Модель состояния для MVC

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

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

1 стартмани

05.07.2022    3579    kalyaka    2    

27

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12010    1    5    

10

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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