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