Лень — двигатель прогресса. Полезная фича для быстрого отбора документов в любом журнале на конкретную дату.
Можно вставить в любой журнал на базе 7.7
Для этого в начало модуля любого журнала (после переменных) вставляем такие строки:
//При выборе даты
Процедура ПриУстановкеИнтервала()
УстановитьИнтервал(ДатаОтбора,ДатаОтбора)
КонецПроцедуры //ПриВыбореДаты()
В Форму Журнала вставить соответствующие кнопки, как на картинках.
Пользователь Andr12 предложить добавить еще процедуру:
Процедура ПриУстановкеИнтервала2()
Если НачалоСтандартногоИнтервала() = "День" Тогда
дата1 = РабочаяДата();
ИначеЕсли НачалоСтандартногоИнтервала() = "Квартал" Тогда
дата1 = НачКвартала(РабочаяДата());
ИначеЕсли НачалоСтандартногоИнтервала() = "Месяц" Тогда
дата1 = НачМесяца(РабочаяДата());
ИначеЕсли НачалоСтандартногоИнтервала() = "Год" Тогда
дата1 = НачГода(РабочаяДата());
Иначе
дата1 = НачалоСтандартногоИнтервала();
КонецЕсли;
Если КонецСтандартногоИнтервала() = "День" Тогда
дата2 = РабочаяДата();
ИначеЕсли КонецСтандартногоИнтервала() = "Квартал" Тогда
дата2 = КонКвартала(РабочаяДата());
ИначеЕсли КонецСтандартногоИнтервала() = "Месяц" Тогда
дата2 = КонМесяца(РабочаяДата());
ИначеЕсли КонецСтандартногоИнтервала() = "Год" Тогда
дата2 = КонГода(РабочаяДата());
Иначе
дата2 = КонецСтандартногоИнтервала();
КонецЕсли;
УстановитьИнтервал(дата1,дата2);
КонецПроцедуры //ПриУстановкеИнтервала2()
А в форме журнала у кнопкив формуле нужно записать:
В результате перестал пропадать ранее предустановленный интервал отбора










А быстрый отбор по нескольким реквизитам одновременно можно?
Для особо ленивых:)
Рассказываю сразу (чтоб не подумали, что я издеваюсь):
Например, по фирме и клиенту для ТиС 9.2.
Заводим общий реквизит документа строка длинной 13, при записи любого документа (для этого есть функция глобального модуля) записываем в это поле код фирмы + код контрагента.
Делаем графу отбора и в любом общем журнале настраиваем программно включение отключение отбора, методом УстановитьОтбор() разумеется.
Тройной отбор конечно посложнее, но тоже возможно, если очень нужно, тогда реквизитов понадобится 4 штуки для 1,2 для 2,3 для 1,3 и для 1,2,3 реквизитов одновременно и красотища будет неописуемая.
P.S. походу это первый комментарий у автора за всю историю публикаций, ну с почином!
Напомню, что публикация стоит в разделе «Полезные фичи». Моим сотрудникам (да и мне тоже )очень часто нужно найти определенный документ за конкретный день (например в журнале чекиККМ найти чек продажи для оформления возврата). Делать это обычным способом «выбора периода» -нужно нажать 4 кнопки, а в моем случае всего одну. Фича простая, и на мой взгляд, полезная. А накрутить сложностей можно в любом месте. А первый коммент за первый день-это разве плохо? Спасибо за конструктивную критику.
(2) я имел ввиду первый комментарий за все публикации автора, с 13 февраля.
И раз уж это раздел Полезные технологии — пусть и комментарии будут с изюминкой.
Для того, что бы при нажатии на кнопку «Х» возвращался стандарно установленный интервал я к этой кнопке привязал следующее «ДатаОтбора=»»;ПриУстановкеИнтервала2()» вместо сущестующего и дополнил модуль:
Перем дата1,дата2;
———
Процедура ПриУстановкеИнтервала2()
Если НачалоСтандартногоИнтервала() = «День» Тогда
дата1 = РабочаяДата();
ИначеЕсли НачалоСтандартногоИнтервала() = «Квартал» Тогда
дата1 = НачКвартала(РабочаяДата());
ИначеЕсли НачалоСтандартногоИнтервала() = «Месяц» Тогда
дата1 = НачМесяца(РабочаяДата());
ИначеЕсли НачалоСтандартногоИнтервала() = «Год» Тогда
дата1 = НачГода(РабочаяДата());
Иначе
дата1 = НачалоСтандартногоИнтервала();
КонецЕсли;
Если КонецСтандартногоИнтервала() = «День» Тогда
дата2 = РабочаяДата();
ИначеЕсли КонецСтандартногоИнтервала() = «Квартал» Тогда
дата2 = КонКвартала(РабочаяДата());
ИначеЕсли КонецСтандартногоИнтервала() = «Месяц» Тогда
дата2 = КонМесяца(РабочаяДата());
ИначеЕсли КонецСтандартногоИнтервала() = «Год» Тогда
дата2 = КонГода(РабочаяДата());
Иначе
дата2 = КонецСтандартногоИнтервала();
КонецЕсли;
УстановитьИнтервал(дата1,дата2);
КонецПроцедуры //ПриУстановкеИнтервала2()
(4) Не блин ну это уже совсем не то:
А если перед отбором на дату у меня был не стандартный интервал. Нужно запоминать его перед установкой и восстанавливать при отмене Даты!
(5) Yury1001,
А как он может быть не стандарниым? Стандартный — это тот который указан у Вас в настройках. На него и выходим.
А в первоначальной версии, кстати, после использования отбора и его очистки интервал журнала вообще очищается и туда попадают абсолютно все доки из этого журнала (без ограничения по дате). Даже если до использования отбора изменить интервал вручную, а потом воспользоваться отбором — то после нажатия на «Х» все равно не вернется предварительно установленный вручную интервал. Так, что поправка работает. (ну во всяком случае мне стало удобнее)
А Вам еще раз спасибо за саму идею и раработку. Ведь не зря говорят — главное идея! Спасибо.
а стандартный вариант отбора по дате, там ещё и по периоду можно, уже не катит что ли?
(4) andr12,
Да, действительно стало намного удобнее. Спасибо за конструктив. Правда в общем журнале действительно пропадает весь предварительно установленный отбор. Так что надо еще «работать и работать». Не в «общем» журнале все работает отлично.
(8) TrinitronOTV,
а не подскажите, что за стандартный вариант отбора по дате? У меня там только начало и конец периода можно выбрать. Может у меня релиз старый?
(10) вот здесь устанавливается стандартный интервал
(9) да и не телько в общем. Я сделал практически во всех журналах-и во всех было одинаково-пропадали. Подправил — и все ок.
(11) andr12, это стандартная настройка отбора интервала в журналах при открытии. trinitronOTV говорил о каком то стандартном отборе периода. А с вашей доработкой действительно стало все работать как часики. Причем даже дополнительные переменные <Перем дата1,дата2;> у меня даже не потребовались. Вставлю в публикацию Вашу доработку. От Вашего имени. Еще раз спасибо.
(10) так вот это оно и есть, отбор по периоду, точнее в подсказке к кнопке написано «Интервал», чем не устраивает?
«Ну вот Остапа понесло» ) добавил еще необходимые мне кнопки.