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

24.02.10

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

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

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

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

1 стартмани

04.02.2022    3188    1    igor7777    0    

3

Расчет страховых взносов в 1С 7.7 "Учет и отчетность предпринимателя, ред. 1.2" с апреля 2020

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

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

09.04.2020    19599    Юджин58    39    

5

Дистрибьюция 7.7. Часть 1. Жизненный цикл заявки покупателя. Одна заявка покупателя, много адресов доставки.

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

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

14.10.2019    5996    ksnik    14    

3

Как в торговле 7.7 печатать код ТНВЭД в счет-фактуре

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

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

15.11.2017    11807    AndKovalchuk    0    

1

Предельные базы взносов в ПФР, ФСС, ФФОМС 2015 в 1С: Бухгалтерия 7.7

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

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

1 стартмани

31.12.2014    23925    9    Sergey1CSpb    2    

0
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 3119 21.02.10 16:14 Сейчас в теме
еще лучше - закладки в форме журнала по сделанным ранее отборам и ведение их истории - оправдывается в полпинка. данная полезняшка - тоже хорошо!
2. Berrimor 198 21.02.10 17:11 Сейчас в теме
(1) у меня в комплексе с той что ты советуешь работает ;) сменил картинку
4. artbear 1447 22.02.10 09:56 Сейчас в теме
(1) История очень удобна
5. Berrimor 198 23.02.10 09:47 Сейчас в теме
(1)(4) история удобна не всегда, например данная реализация ускорения отбора по значению родилась для ситуации когда операторы бесконечно делают отбор по клиенту, и закладки в этой ситуации не только не помогают, а мешают - не информативно, а глаза мозолят, так что имеет право на существование комплекс: закладки отбора+моя полезняшка - закладки можно отключить, отбором по тек значению в колонке не пользоваться, ежели не надь
6. artbear 1447 24.02.10 09:04 Сейчас в теме
(5) Я про закладки не говорил, ИМХО это неудобно.
Я говорил только про возможность ведения истории.
3. artbear 1447 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 Ответить
Оставьте свое сообщение