Как правильно настроить отборы по содержимому табличных частей в динамических списках на управляемых формах 1С 8.3?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Сдача квалификационных экзаменов «1С:Профессионал» и «1С:Специалист» — это важный этап в карьере любого разработчика. Однако даже при глубоком изучении материалов Павла Чистого, Елены Хрусталевой и Игоря Радченко кандидаты часто сталкиваются с вопросами, ответы на которые кажутся неочевидными или противоречащими повседневной практике. Один из таких камней преткновения — механизм отборов в динамических списках управляемых форм по полям, которые не отображаются на экране.

В этой статье мы подробно разберем, почему платформа 8.3 считает определенные действия избыточными, и выясним, как правильно готовиться к практическому 5-часовому экзамену на «Специалиста».

Разбор спорного вопроса: отборы в динамических списках

Рассмотрим ситуацию, которая часто встречается в тестах «1С:Профессионал» по платформе 8.3. Вопрос звучит следующим образом: «Для включения отборов в списках (управляемых форм) по содержимому табличных частей объектов и их свойств, неотображаемых в форме...». Многие опытные разработчики выбирают вариант «реализуется произвольным запросом динамического списка», основываясь на том, что для вывода дополнительных данных мы обычно редактируем текст запроса. Однако правильный ответ гласит: «Ничего дополнительного настраивать не надо, все реализовано на уровне платформы».

Давайте выясним причину такого решения платформы. Проанализируем техническую составляющую:

  1. Механизм основной таблицы: Если у объекта ДинамическийСписок указана ОсновнаяТаблица, платформа автоматически получает доступ к метаданным этого объекта.
  2. Система компоновки данных (СКД): Динамический список в управляемом приложении работает на базе упрощенного движка СКД. Платформа самостоятельно «пробрасывает» доступ ко всем реквизитам основной таблицы и её табличным частям в состав доступных полей компоновки.
  3. Пользовательская настройка: Даже если поле табличной части не выведено в визуальный список (колонки формы) и не добавлено в текст Запроса вручную, пользователь может зайти в меню «Ещё» — «Настроить список». На вкладке «Отбор» в списке доступных полей будут присутствовать реквизиты табличных частей. Платформа сама сконструирует необходимый запрос к базе данных для фильтрации основной таблицы по условию в ТЧ.

Рассмотрим пример на конфигурации «Управление торговлей 11». Допустим, нам нужно в справочнике «Физические лица» найти всех людей, у которых в табличной части «Контактная информация» указан город «Москва». При этом сама табличная часть на форме списка не отображается. Нам не нужно писать ЛЕВОЕ СОЕДИНЕНИЕ в запросе динамического списка. Платформа позволяет выбрать поле КонтактнаяИнформация.Город в стандартном окне настроек отбора. Именно поэтому ответ №1 является методически верным для платформы 8.3.

Подготовка к экзамену «1С:Специалист»: страхи и реальность

Переход от теоретического теста к 5-часовому практическому экзамену часто вызывает тревогу. Разберем основные моменты, которые беспокоят кандидатов:

Каркасная конфигурация

Многие боятся, что им придется «изображать» интерфейс или создавать сотни объектов с нуля. Проанализируем, что представляет собой каркасная база. Это подготовленная среда, в которой уже созданы основные справочники (например, Номенклатура, Склады), документы и планы видов характеристик. Ваша задача — не заниматься рутинным созданием справочников, а реализовать сложную бизнес-логику:

Интерфейс «Такси» и версии платформы

На текущий момент экзамен сдается на актуальных релизах платформы 8.3. Использование интерфейса «Такси» является стандартом. Если вы привыкли к интерфейсу в стиле «8.2» (в закладках), вам следует переучиться, так как методические требования 1С ориентированы на современный UX. В каркасной конфигурации управляемые формы уже являются базовым стандартом, и никакие «обычные формы» в современных билетах по платформе 8.3 не встречаются.

Практические советы по написанию кода на экзамене

Рассмотрим важные правила, несоблюдение которых ведет к снижению баллов:

1. Отказ от модальности. Это критическое требование. Вместо старых методов используйте асинхронные вызовы. Посмотрим на пример разницы в коде:

Вместо старого (запрещенного) кода:


// Так делать НЕЛЬЗЯ
Ответ = Вопрос("Продолжить выполнение?", РежимДиалогаВопрос.ДаНет);
Если Ответ = КодВозвратаДиалога.Да Тогда
    // Логика
КонецЕсли;

Рассмотрим правильный вариант с использованием оповещения:


// Так делать НУЖНО
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеВопроса", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения, "Продолжить выполнение?", РежимДиалогаВопрос.ДаНет);

&НаКлиенте
Процедура ПослеВопроса(Результат, ДополнительныеПараметры) Экспорт
    Если Результат = КодВозвратаДиалога.Да Тогда
        // Продолжаем выполнение
    КонецЕсли;
КонецПроцедуры

2. Использование критериев отбора. Помните, что объект метаданных КритерииОтбора используется для других целей — например, для реализации механизма «Связанные документы» или быстрого поиска ссылок по всей базе. Для настройки простого фильтра в списке документов или справочников использовать их на экзамене будет ошибкой.

Заключение

Для успешной сдачи важно не просто «зазубривать» ответы, а понимать внутренние механизмы платформы. Динамический список — мощный инструмент, который берет на себя огромную часть работы по построению запросов. При подготовке к 5-часовому экзамену делайте упор на решение задач из актуального сборника (от 2014 года и новее) и обязательно практикуйтесь в интерфейсе «Такси» на последних релизах платформы 8.3.

← На главную