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

Неудобно спать на потолке, одеяло спадает. А остальное - все удобно!!!
...мнение прапорщика РККА.

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

Скриншоты


1) Тестовая форма обработки (Web-клиент)

2) Диалог ввода периода обработки в режиме "Редактировать как интервал" (Web-клиент)

3) Диалог ввода периода обработки в режиме "Редактировать как период" (Web-клиент)

4) Диалог ввода периода обработки в режиме "Редактировать как стандартный период" (Web-клиент)

5) Тестовая форма обработки (Тонкий клиент)

6) Диалог ввода периода обработки в режиме "Редактировать как интервал" (Тонкий клиент)

7) Диалог ввода периода обработки в режиме "Редактировать как период" (Тонкий клиент)

8) Диалог ввода периода обработки в режиме "Редактировать как стандартный период" (Тонкий клиент)

9) Тестовая форма обработки (Обычное приложение)

10) Диалог ввода периода обработки в режиме "Редактировать как интервал" (Обычное приложение)

11) Диалог ввода периода обработки в режиме "Редактировать как период" (Обычное приложение)

12) Диалог ввода периода обработки в режиме "Редактировать как стандартный период" (Обычное приложение)

13) Выбор периода "1913 год по текущую дату" спомощью дополнительной опции выбора

Файлы

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

Полная версия

© ООО "Инфостарт", 2006-2023 www.infostart.ru