Доброго дня, коллеги!
В рамках курса по СКД глубоко думающий и очевидно очень внимательный слушатель задал вопрос из серии “тонкие моменты работы с СКД, на которые большинство специалистов не обращают внимания”. Скорее всего и Вы не обратили внимание на особенность создания источника доступных настроек с помощью адреса СКД во временном хранилище. Тем интереснее будет “Вопрос дня” при прочтении!
Вопрос
Ответ
Добрый день! Разработчики платформы рекомендуют для управляемых форм применять такой способ – поместить схему во временное хранилище и инициализировать источник доступных настроек полученным адресом:
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) СКД = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет"); АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(СКД, УникальныйИдентификатор); ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресВоВременномХранилище); КомпоновщикНастроек.Инициализировать(ИсточникНастроек); КомпоновщикНастроек.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию); КонецПроцедуры
В противном случае может возникать непонятное поведение системы, например, в пользовательском режиме список доступных полей отбора окажется пустым. Тут дело в том, что в управляемом приложении на клиенте схема компоновки данных отсутствует. Подробнее в статье на сайте ИТС – Редактирование настроек для не основной схемы компоновки данных.
Вопрос
Ответ
Да, это нужно запомнить. В управляемых формах нужно использовать создание источника доступных настроек именно для адреса схемы компоновки данных. Как этот нюанс объясняют разработчики платформы (https://partners.v8.1c.ru/forum/t/1245259/m/1246544):
“Источник на основании схемы нельзя использовать в управляемом приложении, т.к. на клиенте схема компоновки данных отсутствует.”
Лейбович Максим (1С, Москва)
Действительно, работа пользователя с компоновщиком настроек происходит на клиенте (например, настройка структуры отчета, отборов и т.д.). На клиенте схема компоновки данных недоступна. В Синтакс-помощнике смотрим доступность: сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер. Поэтому чтобы на клиенте корректно отображались доступные поля используется именно адрес во временном хранилище. А вот для обычной формы можно создавать источник доступных настроек для схемы компоновки данных. И это будет работать, поскольку в толстом клиенте схема компоновки данных доступна.
Профессиональная разработка отчетов в 1С 8.3 на СКД.