Отбор по текущему значению в колонке общего журнала документов

24.02.10

Задачи пользователя - Адаптация типовых решений

Есть оператор - девочка Таня, которой было лень нажимать несколько раз на кнопку мыши и получать отбор по необходимому ей значению реквизита в общем журнале документов в ТИС, благодаря ее лени данная полезняшка и родилась

Все довольно просто: стоим в колонке общего журнала на значении реквизита документа, нажимаем кнопку "По колонке" и вуаля! отбор по значению получите, нажимаем на кнопку "Х" и отбор снимаем. Алгоритм универсальный, куски специфичные для ТИС убираете и все, в тексте они помечены. Создаете две кнопки, например как на моем рисунке, на одну вешаем функцию ОтборПоКолонке() на вторую СнятьОтбор(). Да, чуть не забыл, если у вас ТИС то колонке "Информация" присвойте одноименный идентификатор, колонке с видом документа (он в ТИС текст получаемый функцией "глНазваниеДокументаВЖурнале") присвойте идентификатор содержащий "ВидДок", но не равный ему (системное значение), например "ВидДокумента".

На картинке показано в комплексе с //infostart.ru/public/15393/

// Это вставить в самом начале, например в первой строке
Перем СписокВидовОтбора;

// Это вставить в текст модуля формы общего журнала, например в самом конце
// перед операторами основной программы
//******************************************************************************
Процедура ОтборПоКолонке()
    Если ПустоеЗначение(ТекущийДокумент)=Тогда
        Возврат;
    КонецЕсли;

    ИмяОтбора = "";

    Если Найти(Форма.ТекущаяКолонка(),"ВидДок")>Тогда
        УстановитьОтбор(ТекущийДокумент.Вид());
        ЗначениеОтбора = ТекущийДокумент.Вид();
        ИмяОтбора="ВидДок";
    ИначеЕсли Форма.ТекущаяКолонка()="ДатаДок" Тогда
        УстановитьИнтервал(ТекущийДокумент.ДатаДок,ТекущийДокумент.ДатаДок);
        Возврат;

    ИначеЕсли Форма.ТекущаяКолонка()="Информация" Тогда

        Попытка
            ЗначениеОтбора = глИнформацияПоДокументуВЖурнале(ТекущийДокумент);

        Исключение
        КонецПопытки;
    Иначе
        ЗначениеОтбора = ТекущийДокумент.ПолучитьАтрибут(Форма.ТекущаяКолонка());
    КонецЕсли;

    Если ТипЗначенияСтр(ЗначениеОтбора)="Справочник" Тогда
        Позиция = СписокВидовОтбора.НайтиЗначение(ЗначениеОтбора.Вид());
        Если Позиция>0 Тогда
            СписокВидовОтбора.ПолучитьЗначение(Позиция,ИмяОтбора);
            УстановитьОтбор(ИмяОтбора,ЗначениеОтбора);
        КонецЕсли;
    ИначеЕсли ИмяОтбора<>"ВидДок" Тогда
        Возврат;
    КонецЕсли;

    // Далее до конца функции кусок специфичный для ТИС, кому лень не убирайте
    Попытка
        Для Счет=По ВидОтбора.РазмерСписка() Цикл
            ОтборПо = ВидОтбора.ПолучитьЗначение(Счет);
            Если Найти(Врег(ОтборПо),Врег(Лев(ИмяОтбора,2)))>Тогда
                ВидОтбора.ТекущаяСтрока(Счет);
                ЗначениеВВидеСтроки=Строка(ЗначениеОтбора);
                Прервать;
            КонецЕсли;
        КонецЦикла;

        Если ОтборПо = "по контрагенту" Тогда
            КонтрагентДляОтбора = ЗначениеОтбора;
        ИначеЕсли ОтборПо  = "по виду документов" Тогда
            ВидДокументаДляОтбора = СписокВидовДокументов.НайтиЗначение(ЗначениеОтбора);
            СписокВидовДокументов.ТекущаяСтрока(ВидДокументаДляОтбора);
        ИначеЕсли ОтборПо  = "по автору" Тогда
            АвторДляОтбора = ЗначениеОтбора;  // общий реквизит документов
        ИначеЕсли ОтборПо  = "по фирме" Тогда
            ФирмаДляОтбора = ЗначениеОтбора;  // общий реквизит документов
        ИначеЕсли ОтборПо  = "по юр. лицу" Тогда
            ЮрЛицоДляОтбора= ЗначениеОтбора; // общий реквизит документов
        ИначеЕсли ОтборПо = "по складу" Тогда
            СкладДляОтбора = ЗначениеОтбора;
        ИначеЕсли ОтборПо = "по проекту" Тогда
            ПроектДляОтбора = ЗначениеОтбора;// общий реквизит документов
        КонецЕсли; // ОтборПо

        ПриУстановкеБыстрогоОтбора();
    Исключение
    КонецПопытки;
КонецПроцедуры

//******************************************************************************
Процедура СнятьОтбор()
    Попытка
        // Это снова кусок специфичный для ТИС
        Если ВидОтбора.ТекущаяСтрока()=Тогда
            Возврат;
        КонецЕсли;

        ВидОтбора.ТекущаяСтрока(1);
        ПриУстановкеБыстрогоОтбора();
    Исключение
        УстановитьОтбор("*");
    КонецПопытки;
КонецПроцедуры

// Это вставить в конец модуля, там где операторы основной программы модуля
// Заполним список видов отбора
СписокВидовОтбора = СоздатьОбъект("СписокЗначений");
Для Счетчик=По Метаданные.ГрафаОтбора() Цикл
    Если Метаданные.ГрафаОтбора(Счетчик).Тип <> "Справочник" Тогда Продолжить КонецЕсли;
    СписокВидовОтбора.ДобавитьЗначение(Метаданные.ГрафаОтбора(Счетчик).Вид,Метаданные.ГрафаОтбора(Счетчик).Идентификатор);
КонецЦикла;

Для Счетчик=По Метаданные.ОбщийРеквизитДокумента() Цикл
    Если Метаданные.ОбщийРеквизитДокумента(Счетчик).Тип <> "Справочник" Тогда Продолжить КонецЕсли;
    СписокВидовОтбора.ДобавитьЗначение(Метаданные.ОбщийРеквизитДокумента(Счетчик).Вид,Метаданные.ОбщийРеквизитДокумента(Счетчик).Идентификатор);
КонецЦикла;

P.S. Обрабатываю отбор только по значениям типа "Справочник" полагая что отбор по значениям других типов обычно носит служебный характер и используется авторами для разных "тайных" целей самостоятельно.

См. также

Печатные формы Адаптация типовых решений Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Приятное улучшение обработки "Внешние печатные формы" для типовых конфигураций на базе 1С 7.7 для более комфортной работы с "любимой семерочкой".

1 стартмани

04.02.2022    3320    1    igor7777    0    

3

Адаптация типовых решений Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Бухгалтерский учет ФОМС, ЕФС Бесплатно (free)

В этой статье описано, какие небольшие изменения можно внести в модуль документа Начисление налогов с ФОТ, чтобы правильно рассчитывались страховые взносы с 1 апреля 2020 г.

09.04.2020    20548    Юджин58    39    

5

Адаптация типовых решений Программист Платформа 1С v7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 Управленческий учет Бесплатно (free)

Описан способ работы с учетом расписания с приоритетными покупателями - торговыми сетями (основными покупателями) в торговой или комплексной учетной системе на 1С 7.7. Множественная заявка покупателя на несколько торговых точек.

14.10.2019    6273    ksnik    14    

3

Операции по ВЭД Адаптация типовых решений Программист Оперативный учет 7.7 1С:Торговля и склад 7.7 Россия Бухгалтерский учет НДС Бесплатно (free)

В данной статье хотел поделиться опытом, как в Торговле 7.7 ( релиз 994) сделать возможность выводить код ТНВЭД в печатную форму счета-фактуры. Сразу скажу, что нужно это только тем, кто осуществляет экспорт в страны таможенного союза. Остальные могут не волноваться.

15.11.2017    12005    AndKovalchuk    0    

1

Зарплата Адаптация типовых решений Программист Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Россия Бухгалтерский учет Абонемент ($m)

Реализация Постановления Правительства РФ 1316 от 04.12.14 для типовой конфигурации "Бухгалтерский учет 7.7" рел. 7.70.590

1 стартмани

31.12.2014    24032    9    Sergey1CSpb    2    

0
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 2696 21.02.10 16:14 Сейчас в теме
еще лучше - закладки в форме журнала по сделанным ранее отборам и ведение их истории - оправдывается в полпинка. данная полезняшка - тоже хорошо!
2. Berrimor 198 21.02.10 17:11 Сейчас в теме
(1) у меня в комплексе с той что ты советуешь работает ;) сменил картинку
4. artbear 1562 22.02.10 09:56 Сейчас в теме
(1) История очень удобна
5. Berrimor 198 23.02.10 09:47 Сейчас в теме
(1)(4) история удобна не всегда, например данная реализация ускорения отбора по значению родилась для ситуации когда операторы бесконечно делают отбор по клиенту, и закладки в этой ситуации не только не помогают, а мешают - не информативно, а глаза мозолят, так что имеет право на существование комплекс: закладки отбора+моя полезняшка - закладки можно отключить, отбором по тек значению в колонке не пользоваться, ежели не надь
6. artbear 1562 24.02.10 09:04 Сейчас в теме
(5) Я про закладки не говорил, ИМХО это неудобно.
Я говорил только про возможность ведения истории.
3. artbear 1562 22.02.10 09:55 Сейчас в теме
Отбор по колонке звучит более непонятно, чем "Отбор по текущему значению в колонке" :)
7. alevize 04.10.11 13:19 Сейчас в теме
Спасибо, довольно так и полезная идея, и реализация!
8. kulkrise 3 25.06.16 13:02 Сейчас в теме
Добрый день!

По поводу отбора если по контрагенту и др. понятно, а как реализовать отбор по реквизитам ДатаПередан и ДатаВозврат (Тип "Дата")?
При этом эти даты могут быть, как заполненными, так и пустыми, а отбор нужен в обоих случаях.
Помогите, пожалуйста.

С уважением,
kulkrise.
9. Berrimor 198 26.06.16 05:55 Сейчас в теме
Попытаться включить отбор можно по любой колонке журнала, но работать будет только в случае ВОЗМОЖНОСТИ подобного отбора, т.е. если данное поле является графой отбора журнала документов.
kulkrise; +1 Ответить
Оставьте свое сообщение