Альтернативная обработка ввода периода.
Необходимые условия:
1. 1с 7.7
2. Внешняя компонента Formex
Внедрение:
1. Встроить в раздел "Обработки" скачанную обработку и настроить на нее права
2. В начале глобального модуля:
Перем глНачДатаПериода Экспорт;
Перем глКонДатаПериода Экспорт;
3. В глобальном модуле:
Процедура глВвестиПериод(локНачДата,локКонДата) Экспорт
спПар = СоздатьОбъект("СписокЗначений");
спПар.ДобавитьЗначение(локНачДата);
спПар.ДобавитьЗначение(локКонДата);
ОткрытьФормуМодально("Обработка.ВыборПериода",спПар);
Если (ПустоеЗначение(глНачДатаПериода)=0) и (ПустоеЗначение(глКонДатаПериода)=0) Тогда
локНачДата = глНачДатаПериода;
локКонДата = глКонДатаПериода;
КонецЕсли;
глНачДатаПериода = "";
глКонДатаПериода = "";
КонецПроцедуры //глВвестиПериод()
//**************************************************************************
Процедура глПроверкаДаты(ДатаНачала,ДатаКонца,локТА=1,локОДНО=1) Экспорт
Если ПустоеЗначение(ДатаНачала)=1 Тогда
ДатаНачала = ?(локТА=1,ПолучитьДатуТА(),ТекущаяДата());
КонецЕсли;
Если ПустоеЗначение(ДатаКонца)=1 Тогда
ДатаКонца = ?(локТА=1,ПолучитьДатуТА(),ТекущаяДата());
КонецЕсли;
Если (ДатаНачала>ПолучитьДатуТА()) и (локТА=1) Тогда
ДатаНачала = ПолучитьДатуТА();
КонецЕсли;
Если (ДатаКонца>ПолучитьДатуТА()) и (локТА=1) Тогда
ДатаКонца = ПолучитьДатуТА();
КонецЕсли;
Если (ДатаНачала<=Константа.ДатаПоследнегоЗавершенияПериода) и (локОДНО=1) Тогда
ДатаНачала = Константа.ОсновнаяДатаНачалаОтчета;
КонецЕсли;
Если ДатаНачала>ДатаКонца Тогда
ДатаНачала = ДатаКонца;
КонецЕсли;
КонецПроцедуры //глПроверкаДаты()
Вызов:
глВвестиПериод(ДатаНачала,ДатаКонца);
где ДатаНачала и ДатаКонца - реквизиты формы типа "Дата" или переменные модуля формы для значений типа "Дата"
Особенности:
Используется Константа.ОсновнаяДатаНачалаОтчета, хранящая начальную дату действующего периода базы
Используется Константа.ДатаПоследнегоЗавершенияПериода
Шрифт на табло выбранных дат "wst_engl.fon"