Альтернативная обработка ввода периода.
Необходимые условия:
1. 1с 7.7
2. Внешняя компонента Formex
Внедрение:
1. Встроить в раздел "Обработки" скачанную обработку и настроить на нее права
2. В начале глобального модуля:
Перем глНачДатаПериода Экспорт;
Перем глКонДатаПериода Экспорт;
3. В глобальном модуле:
Процедура глВвестиПериод(локНачДата,локКонДата) Экспорт
спПар = СоздатьОбъект("СписокЗначений");
спПар.ДобавитьЗначение(локНачДата);
спПар.ДобавитьЗначение(локКонДата);
ОткрытьФормуМодально("Обработка.ВыборПериода",спПар);
Если (ПустоеЗначение(глНачДатаПериода)=0) и (ПустоеЗначение(глКонДатаПериода)=0) Тогда
локНачДата = глНачДатаПериода;
локКонДата = глКонДатаПериода;
КонецЕсли;
глНачДатаПериода = "";
глКонДатаПериода = "";
КонецПроцедуры //глВвестиПериод()
//**************************************************************************
Процедура глПроверкаДаты(ДатаНачала,ДатаКонца,локТА=1,локОДНО=1) Экспорт
Если ПустоеЗначение(ДатаНачала)=1 Тогда
ДатаНачала = ?(локТА=1,ПолучитьДатуТА(),ТекущаяДата());
КонецЕсли;
Если ПустоеЗначение(ДатаКонца)=1 Тогда
ДатаКонца = ?(локТА=1,ПолучитьДатуТА(),ТекущаяДата());
КонецЕсли;
Если (ДатаНачала>ПолучитьДатуТА()) и (локТА=1) Тогда
ДатаНачала = ПолучитьДатуТА();
КонецЕсли;
Если (ДатаКонца>ПолучитьДатуТА()) и (локТА=1) Тогда
ДатаКонца = ПолучитьДатуТА();
КонецЕсли;
Если (ДатаНачала<=Константа.ДатаПоследнегоЗавершенияПериода) и (локОДНО=1) Тогда
ДатаНачала = Константа.ОсновнаяДатаНачалаОтчета;
КонецЕсли;
Если ДатаНачала>ДатаКонца Тогда
ДатаНачала = ДатаКонца;
КонецЕсли;
КонецПроцедуры //глПроверкаДаты()
Вызов:
глВвестиПериод(ДатаНачала,ДатаКонца);
где ДатаНачала и ДатаКонца — реквизиты формы типа "Дата" или переменные модуля формы для значений типа "Дата"
Особенности:
Используется Константа.ОсновнаяДатаНачалаОтчета, хранящая начальную дату действующего периода базы
Используется Константа.ДатаПоследнегоЗавершенияПериода
Шрифт на табло выбранных дат "wst_engl.fon"
Не заработало . Дополнительно объявил пременные Перем глКрасный,глСиний,глТемноСерый,глЧерный,глБелый;
Обработка на них ругается. Нет функции глПадежП. При запуске обработка зациклилась и и ответ системы » Не хватает оперативной памяти.» Автору просьба сделать обработку работоспособной
Прошу прощения.
Не все связи со своей базой увидел.
Высылаю исправленную обработку. Глобальные переменные цветов не нужны. Я их в обработку поместил.
И напоминаю, без Formex работать не будет (у меня версия 2.0.5.109 beta).
Если что не так, пишите.
Снял небольшое видео, как это работает
а что мешало автору описание этой обработки поместить в само описание обработки? (дада! есть такая закладочка в форме обработки) — здоровый похренизм?
Ничего не мешало. И про закладочку знаю. Привык описание делать для пользователей, т.е. объяснять, как пользоваться обработкой. А что здесь то описывать? Как в переключатели тыкать или кнопки «вверх»/»вниз» нажимать? А вкладывать в описание процесс внедрения в конфигурацию? Не знаю. Вообще у меня это первый опыт выкладывания 1с обработок, хотя понаписано очень много интересного. Может я и не прав. Строго не судите, лучше подскажите 🙂
«А вкладывать в описание процесс внедрения в конфигурацию? »
именно. как минимум.
а то ты видать исходишь что кроме твоей обработки никаких других в информационном пространстве — нет…
.
в итоге сдернул твою обработку сеюе.
скопипастил описание в описание.
скопипастил УРЛ ЭТОЙ СТРАНИЦЫ В ОПИСАНИЕ
.
потом пришлось это все повторить для повторно сгруженной исправленной из коментов.
Понятно. Буду знать. Спасибо за разъяснение. Жалко, что нельзя обновлять обработку изначальную. Приходится выкладывать дополнительно. Неудобно.
Добрый день! А ваша разработка подходит только для отчетов? или в журналах также можно пользоваться?
Конечно можно. И в журналах, и в документах, и в отчетах.
Хотя в журналах я поторопился. В журналах своя тачанка. Сам использую в документах, отчетах и обработках
В журналах обработку можно использовать только по отдельной кнопке.
Формула кнопки: ВыборИнтервала()
В модуле формы журнала: