Как вывести быстрый отбор по статусу проведения документа на командную панель в 1С:Управление торговлей 11?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Вопрос настройки интерфейса в 1С:Управление торговлей 11 часто вызывает затруднения, особенно когда стандартные средства пользовательского режима «Изменить форму» не позволяют вывести нужный элемент управления непосредственно на командную панель. Давайте разберем, как реализовать быстрый отбор по статусу Проведен, используя как штатные возможности платформы, так и методы программной доработки.

Вариант 1: Использование штатных «Быстрых настроек» динамического списка

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

  1. Откройте нужный список документов, где вы хотите настроить отбор.
  2. Нажмите кнопку «Еще» в верхней части формы и выберите пункт «Настроить список...».
  3. Перейдите на вкладку «Отбор».
  4. Найдите поле Проведен (или Ссылка.Проведен) и добавьте его в список отборов.
  5. Чтобы этот отбор стал «быстрым» и появился в верхней части формы, выделите добавленный элемент отбора и установите флаг «Включать в быстрые настройки» (иконка со звездочкой или соответствующая галочка в свойствах элемента).
  6. Нажмите «Завершить редактирование». Теперь в верхней части списка появится поле, позволяющее оперативно переключаться между проведенными и непроведенными документами без необходимости заходить в настройки.

Вариант 2: Программная реализация через расширение конфигурации

Если штатных инструментов недостаточно или вам принципиально важно разместить на панели инструментов именно «галку» или кнопку с переключателем, единственным надежным способом станет создание Расширения конфигурации. Это позволит добавить нужный элемент управления, не снимая конфигурацию с поддержки.

Рассмотрим, как это работает «под капотом». Мы можем создать команду, которая будет менять параметры динамического списка напрямую. Для этого в модуле формы через расширение мы будем манипулировать коллекцией Отбор:


// Пример кода для установки отбора программным способом
&НаКлиенте
Процедура УстановитьОтборПоПроведенным(Команда)
    // Получаем доступ к динамическому списку
    Список = ЭтаФорма.Список;
    
    // Очищаем текущие отборы, чтобы избежать конфликтов
    Список.Отбор.Элементы.Очистить();
    
    // Добавляем новый элемент отбора
    ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Проведен");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.ПравоеЗначение = Истина; // Или Ложь для непроведенных
    ЭлементОтбора.Использование = Истина;
КонецПроцедуры

Почему отбор может не работать или отсутствовать?

Если вы столкнулись с ситуацией, когда поле Проведен отсутствует или не работает, проанализируем возможные причины:

Рекомендуем начинать с первого варианта, так как он является штатным и не требует поддержки кода при обновлениях системы. Если же задача требует создания уникального визуального интерфейса — приступайте к разработке расширения, используя приведенный выше пример кода. Это позволит реализовать любую логику взаимодействия пользователя с данными динамического списка.

← На главную