Следующая группа вопросов подобрана из Мастер-групп курсов серии “must have” – это курсы по СКД, запросам и расширениям. Слушатели еще долгое время после прохождения обучения пользуются методическими материалами данных курсов как шпаргалками.
Итак, если хотите узнать, почему в 1С:БП не получается открыть встроенный отчет как внешний, есть ли смысл задавать настройки компоновки для динамического списка и при каких условиях нужно индексировать временные таблицы, то ознакомьтесь с сегодняшней подборкой. Приятного прочтения!
![]()
Вопрос №1: Есть ли смысл использовать настройки компоновки для динамического списка?
Ответ
- Да, запрос, который извлекает из базы данные динамического списка, тоже может изменяться в зависимости от используемых настроек компоновки.
В одном из занятий курса по СКД мы рассматриваем, как получить исполняемые настройки компоновки для динамического списка.
- Да, может использоваться.
Например, в типовой конфигурации 1С:БП в форме списка справочника “Контрагенты” используется динамический список с запросом:
ВЫБРАТЬ
...
ВЫБОР
КОГДА (СправочникКонтрагенты.ИННВведенКорректно
И СправочникКонтрагенты.КППВведенКорректно
ИЛИ СправочникКонтрагенты.ИННВведенКорректно
И СправочникКонтрагенты.ЮридическоеФизическоеЛицо = ЗНАЧЕНИЕ(Перечисление.ЮридическоеФизическоеЛицо.ФизическоеЛицо))
И СостоянияКонтрагентов.Состояние В (&Состояния)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК ПроверкаКонтрагентовКонтрагентНеСуществует,
СостоянияКонтрагентов.Состояние КАК ПроверкаКонтрагентовСостояние,
ВЫБОР
КОГДА СостоянияКонтрагентовБЭД.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияКонтрагентаБЭД.Подключен)
ТОГДА 1
КОГДА СостоянияКонтрагентовБЭД.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияКонтрагентаБЭД.НастроенЭДО)
ТОГДА 2
ИНАЧЕ 0
КОНЕЦ КАК ЭДО
ИЗ
Справочник.Контрагенты КАК СправочникКонтрагенты
{ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеДублейУКонтрагентов КАК НаличиеДублейУКонтрагентов
ПО СправочникКонтрагенты.Ссылка = НаличиеДублейУКонтрагентов.Контрагент
И СправочникКонтрагенты.ИНН = НаличиеДублейУКонтрагентов.ИНН
И СправочникКонтрагенты.КПП = НаличиеДублейУКонтрагентов.КПП}
{ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияКонтрагентов КАК СостоянияКонтрагентов
ПО СправочникКонтрагенты.Ссылка = СостоянияКонтрагентов.Контрагент
И (&ИспользованиеПроверкиВозможно)}
{ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияКонтрагентовБЭД КАК СостоянияКонтрагентовБЭД
ПО СправочникКонтрагенты.Ссылка = СостоянияКонтрагентовБЭД.Контрагент}
Видно, что в тексте запроса есть конструкции в фигурных скобках. Значит, таблицы регистров будут применяться в запросах, если поля из них используются в настройках компоновки.
Профессиональная разработка отчетов в 1С 8.3 на СКД.
![]()
Вопрос №2: При каких условиях необходимо индексировать временные таблицы?
Ответ
Этот вопрос рассмотрен в статье на нашем сайте – 3 главных вопроса про временные таблицы 1С.
В общем случае рекомендацию можно сформулировать следующим образом – индексирование временной таблицы нужно использовать тогда, когда это дает эффект. Если же индекс не будет использоваться СУБД или наоборот – на индексирование будет потрачено дополнительное время, то индексирование таблицы будет неэффективно. Способ проверки, будет ли использоваться индекс в конкретной ситуации, также приведен в указанной статье.
P.S.
Понимать, как работают запросы и уметь их строить - обязательный навык для всех, кто дорабатывает и внедряет 1С.
После курса Вы сможете:
- Строить сложные запросы с несколькими источниками данных
- Уверенно задействовать вложенные запросы и временные таблицы
- Использовать встроенный язык для обработки результатов запроса
- Учитывать особенности соединений и объединений нескольких таблиц.
- Разрабатывать запросы на уровне задач Аттестации 1С:Специалист по платформе.
![]()
Вопрос №3: Почему сохраненный типовой отчет 1C:БП не открывается как внешний?
Ответ
Причина ошибки заключается в том, что у внешнего отчета или обработки в принципе нет модуля менеджера. А у отчета или обработки из конфигурации такой модуль присутствует.
В 1С:БП в модуле менеджера отчетов есть программный код, а в 1C:УТ – нет. Этим объясняется разница в поведении конфигураций.
При сохранении отчета или обработки во внешний файл модуль менеджера будет потерян. Поэтому нужно учесть этот момент, доработать внешний отчет, например, добавив нужные процедуры в модуль объекта.
Альтернативный вариант – создать расширение, в котором реализовать новый отчет, модуль менеджера в таком случае будет доступен.
Разработка расширений и технологии доработки конфигураций 1С без снятия с поддержки.
