Альтернативная обработка "Выбор периода"

Альтернативная обработка ввода периода для 1С 7.7.

Альтернативная обработка ввода периода.

Необходимые условия: 

1. 1с 7.7

2. Внешняя компонента Formex

Внедрение:

1. Встроить в раздел "Обработки" скачанную обработку и настроить на нее права

2. В начале глобального модуля:

Перем глНачДатаПериода Экспорт;
Перем глКонДатаПериода Экспорт; 

3. В глобальном модуле:

Процедура глВвестиПериод(локНачДата,локКонДата) Экспорт

спПар = СоздатьОбъект("СписокЗначений");
спПар.ДобавитьЗначение(локНачДата);
спПар.ДобавитьЗначение(локКонДата);

ОткрытьФормуМодально("Обработка.ВыборПериода",спПар);

Если (ПустоеЗначение(глНачДатаПериода)=0) и (ПустоеЗначение(глКонДатаПериода)=0) Тогда
локНачДата = глНачДатаПериода;
локКонДата = глКонДатаПериода;
КонецЕсли;
глНачДатаПериода = "";
глКонДатаПериода = "";

КонецПроцедуры //глВвестиПериод()

//**************************************************************************
Процедура глПроверкаДаты(ДатаНачала,ДатаКонца,локТА=1,локОДНО=1) Экспорт

Если ПустоеЗначение(ДатаНачала)=1 Тогда
ДатаНачала = ?(локТА=1,ПолучитьДатуТА(),ТекущаяДата());
КонецЕсли;
Если ПустоеЗначение(ДатаКонца)=1 Тогда
ДатаКонца = ?(локТА=1,ПолучитьДатуТА(),ТекущаяДата());
КонецЕсли;

Если (ДатаНачала>ПолучитьДатуТА()) и (локТА=1) Тогда
ДатаНачала = ПолучитьДатуТА();
КонецЕсли;
Если (ДатаКонца>ПолучитьДатуТА()) и (локТА=1) Тогда
ДатаКонца = ПолучитьДатуТА();
КонецЕсли;

Если (ДатаНачала<=Константа.ДатаПоследнегоЗавершенияПериода) и (локОДНО=1) Тогда
ДатаНачала = Константа.ОсновнаяДатаНачалаОтчета;
КонецЕсли;

Если ДатаНачала>ДатаКонца Тогда
ДатаНачала = ДатаКонца;
КонецЕсли;

КонецПроцедуры //глПроверкаДаты()

Вызов:

глВвестиПериод(ДатаНачала,ДатаКонца);

где ДатаНачала и ДатаКонца — реквизиты формы типа "Дата" или переменные модуля формы для значений типа "Дата"

Особенности:

Используется Константа.ОсновнаяДатаНачалаОтчета, хранящая начальную дату действующего периода базы

Используется Константа.ДатаПоследнегоЗавершенияПериода

Шрифт на табло выбранных дат "wst_engl.fon"

11 Comments

  1. wer_alex

    Не заработало . Дополнительно объявил пременные Перем глКрасный,глСиний,глТемноСерый,глЧерный,глБелый;

    Обработка на них ругается. Нет функции глПадежП. При запуске обработка зациклилась и и ответ системы » Не хватает оперативной памяти.» Автору просьба сделать обработку работоспособной

    Reply
  2. v.a.n-

    Прошу прощения.

    Не все связи со своей базой увидел.

    Высылаю исправленную обработку. Глобальные переменные цветов не нужны. Я их в обработку поместил.

    И напоминаю, без Formex работать не будет (у меня версия 2.0.5.109 beta).

    Если что не так, пишите.

    Reply
  3. v.a.n-

    Снял небольшое видео, как это работает

    Reply
  4. CheBurator

    а что мешало автору описание этой обработки поместить в само описание обработки? (дада! есть такая закладочка в форме обработки) — здоровый похренизм?

    Reply
  5. v.a.n-

    Ничего не мешало. И про закладочку знаю. Привык описание делать для пользователей, т.е. объяснять, как пользоваться обработкой. А что здесь то описывать? Как в переключатели тыкать или кнопки «вверх»/»вниз» нажимать? А вкладывать в описание процесс внедрения в конфигурацию? Не знаю. Вообще у меня это первый опыт выкладывания 1с обработок, хотя понаписано очень много интересного. Может я и не прав. Строго не судите, лучше подскажите 🙂

    Reply
  6. CheBurator

    «А вкладывать в описание процесс внедрения в конфигурацию? »

    именно. как минимум.

    а то ты видать исходишь что кроме твоей обработки никаких других в информационном пространстве — нет…

    .

    в итоге сдернул твою обработку сеюе.

    скопипастил описание в описание.

    скопипастил УРЛ ЭТОЙ СТРАНИЦЫ В ОПИСАНИЕ

    .

    потом пришлось это все повторить для повторно сгруженной исправленной из коментов.

    Reply
  7. v.a.n-

    Понятно. Буду знать. Спасибо за разъяснение. Жалко, что нельзя обновлять обработку изначальную. Приходится выкладывать дополнительно. Неудобно.

    Reply
  8. obmanOZ

    Добрый день! А ваша разработка подходит только для отчетов? или в журналах также можно пользоваться?

    Reply
  9. v.a.n-

    Конечно можно. И в журналах, и в документах, и в отчетах.

    Reply
  10. v.a.n-

    Хотя в журналах я поторопился. В журналах своя тачанка. Сам использую в документах, отчетах и обработках

    Reply
  11. v.a.n-

    В журналах обработку можно использовать только по отдельной кнопке.

    Формула кнопки: ВыборИнтервала()

    В модуле формы журнала:

    Процедура ВыборИнтервала()
    
    ДатаН = НачалоИнтервала();
    ДатаК = КонецИнтервала();
    глВвестиПериод(ДатаН,ДатаК);
    УстановитьИнтервал(ДатаН,ДатаК,1);
    
    КонецПроцедуры //ВыборИнтервала()
    Reply

Leave a Comment

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