Готовишься к экзамену?
Полнофункциональный тренажер @bot_1cnik_bot с полноценным обучением, режимом экзамена и подробной статистикой.
Вы добавляете на управляемую форму реквизит типа «ДинамическийСписок». Каким образом разработчик задает, откуда и как будут получаться данные (то есть как будет сформирован запрос списка)?
Выбрать «основную таблицу» (например, таблицу документа/справочника/регистра), и платформа сама сформирует типовой запрос к ней.
Неправильно: выбор основной таблицы - действительно один из способов, но он не единственный. Разработчик может не ограничиваться основной таблицей и задать собственный текст запроса, если нужен нестандартный набор полей, соединения или сложные отборы.
Составить запрос вручную (произвольный запрос) и указать его текст для динамического списка.
Неправильно: произвольный запрос - это рабочий вариант, но не единственный. В ряде случаев достаточно просто указать основную таблицу, и платформа обеспечит получение данных без ручного написания запроса.
Ничего не настраивать: запрос сформируется автоматически в зависимости от того, какому объекту конфигурации принадлежит форма.
Неправильно: принадлежность формы объекту может влиять на некоторые типовые возможности формы, но для реквизита «ДинамическийСписок» способ получения данных задается настройками самого списка - через основную таблицу или через произвольный запрос.
Можно выбрать один из двух путей: указать основную таблицу или написать произвольный запрос вручную.
Правильно: для реквизита формы типа «ДинамическийСписок» разработчик сам выбирает способ формирования запроса: либо задает основную таблицу (и получает типовую выборку), либо включает произвольный запрос и описывает его текст для получения нужных данных.
Пояснение
Развернутая подсказка (как это работает и как применять на практике):
1) Два способа «накормить» ДинамическийСписок данными
- Способ A: Основная таблица. Вы указываете, из какой таблицы метаданных читать данные (документ, справочник, регистр и т. п.). В этом случае платформа строит «типовую» выборку и дает стандартные возможности списка: отборы, сортировки, поиск, оформление, быстрые настройки.
- Способ B: Произвольный запрос. Вы включаете произвольный запрос и описываете текст запроса сами. Это нужно, когда:
• надо объединить данные из нескольких таблиц (JOIN/соединения);
• требуется нестандартная логика отбора;
• нужно вывести вычисляемые поля, агрегаты, дополнительные реквизиты;
• необходимо показывать данные «не как в объекте», а как витрину.
2) Что дает «основная таблица» и почему она важна
- Основная таблица помогает платформе корректно идентифицировать строки списка (по ключевым полям), поддерживать стандартные действия со строками и быстрее/проще настраивать список.
- Если список отображает документы или справочники, обычно достаточно основной таблицы: быстро получаете рабочий журнал без программирования запроса.
3) Мини-пример на понятном сценарии (увязка с «Ведомостью в кассу»)
- Если вы делаете форму журнала выплат и хотите показывать список документов «Ведомость в кассу», то удобно создать реквизит «ДинамическийСписок» и указать основную таблицу документа. Тогда пользователи смогут фильтровать по организации, периоду, ответственному и т. д.
- Если же вы хотите вывести «витрину» для контроля заполнения выплат (например, сотрудники, у которых должна формироваться выплата через кассу, но ведомость не заполняется), тогда одной основной таблицы документа может быть мало. В таком случае пригодится произвольный запрос, который соединит сведения о сотрудниках, способе выплаты, периоде и рассчитанных суммах/задолженности.
4) Лучшие практики, чтобы «Ведомость в кассу» заполнялась автоматически (когда вы проверяете это через списки/журналы)
- У сотрудников должен быть корректно задан способ выплаты (через кассу/наличными), иначе они будут попадать в другой тип ведомости (например, в банк) или не будут подбираться автоматически.
- В документе важно правильно указать период (месяц/дату выплаты) и вид выплаты (аванс/зарплата и т. п.), а затем использовать команду заполнения (обычно кнопка «Заполнить»).
- Если конкретный сотрудник не попадает в ведомость при автозаполнении, проверяют типовые причины: выбран не тот период/вид выплаты, у сотрудника нет суммы к выплате за период или есть встречные удержания/задолженность, из-за которых итог к выдаче не формируется.
5) Итоговая логика для экзамена/теста
- Если вопрос про «способ формирования запроса» у реквизита «ДинамическийСписок», правильная мысль: это решает разработчик, и у него есть два базовых варианта - основная таблица или произвольный запрос.