Передача номенклатуры в отбор отчета





Быстрое заполнение отбора по номенклатуре в любом отчете.

Бывает необходимо сформировать отчет по некоторой номенклатуре, список которой может быть достаточно большим. При стандартном методе работы необходимо открыть нужный отчет и перейти в настройки. На вкладке «Отбор» необходимо добавить отбор по номенклатуре, установить «Тип сравнения в списке» и вручную заполнить список отбора по номенклатуре.

 Для ускорения и упрощения работы предлагаю воспользоваться внешней обработкой. Она позволяет установить в любой отчет в качестве отбора номенклатуру полученую из:

  • любого документа, где в табличной части есть колонка «Номенклатура»;
  • напрямую с терминала сбора данных (сканера штрихкодов);
  • или копированием из буфера обмена наименований.

В случае вставки из буфера обмена поиск номенклатуры (получение ссылок на неё) осуществляется по наименованию.

P.S. есть возможность встраивания данной обработки в отчеты и вызывать заполнение непосредственно из открытого отчета. Для этого потребуется небольшая доработка отчетов, а именно в отчете нужно разместить код програмного создания кнопки в процедуре ПриОткрытии() и процедуру обработки нажатия на данную кнопку вызывающую запуск данной обработки. У себя я использую комбинированый способ, т.е. можно запустить отчет и выбрать из него пункт «Заполнить из…», а можно запустить обработку и выбрать из неё нужный отчет.

4 Comments

  1. Рамзес

    Полезная вещь! Спасибо!

    Reply
  2. Рамзес

    При попытке заполнить из буфера обмена:

    {Форма.ФормаДляВнесенияНоменклатурыСписком.Форма(9,67)}: Переменная не определена (Дополнительные)

    ТекОбласть = ЭлементыФормы.ПолеТабличногоДокумента1.Область(«R»+<<?>>Дополнительные.ПолучитьТолькоЦифры(Строка(НомСтр))+»C1»);

    Reply
  3. Рамзес

    (2) Насколько я понял Дополнительные — это название нетипового общего модуля (либо он отсутствует в конфигурации «УПП 1.3»). Поэтому предлагаю соответствующий фрагмент кода написать так:

     НомСтр = Формат(НомСтр,  «ЧГ=0»); // форматируем так, чтобы убрать группировку числа по разрядам (пробел между триадами)
    ТекОбласть = ЭлементыФормы.ПолеТабличногоДокумента1.Область(«R»+Строка(НомСтр)+»C1»);
    Reply
  4. echo77

    Можно не дорабатывать конфигурацию https://infostart.ru/public/255418/

    Reply

Leave a Comment

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