Добрый день коллеги. Сил моих больше нет...
Описание ситуации.
Есть справочник, в справочнике в реквизите(тип ХранилищеЗначения) я храню НастройкиКомпоновкиДанных, все хранится все замечательно.
Есть Макет (тип - СхемаКомпоновкиДанных) к которому храню выше указанные НастройкиКомпоновкиДанных.
Далее в определенный момент времени использую выше указанные НастройкиКомпоновкиДанных, мне необходимо получить данные которые выбираются в выше указанном Макете. Использую следующий код:
Ну как бы ничего необычного, и код этот отрабатывает, и я получаю свои данные.
НО ЕСТЬ ОДИН ОЧЕНЬ ИНТЕРЕСНЫЙ МОМЕНТ.
Мне захотелось переделать запрос в выше указанном макете и в запросе я добавил еще одно поле которое хочу выбрать, также добавил это поле в СКД-Настройки-Выбранные поля, и потом при использовании старой(та которая была сохранена до того как я поменял запрос) НастройкиКомпоновкиДанных, у меня не выбирается это новое поле...
Кто сталкивался? Подскажите плиз.
На сколько я понял, где-то на этом этапе
перезатирается текст запроса и спользуется текст запроса который был в момент сохранения этих настроек - НастройкиКомпоновкиДанных.
Описание ситуации.
Есть справочник, в справочнике в реквизите(тип ХранилищеЗначения) я храню НастройкиКомпоновкиДанных, все хранится все замечательно.
Есть Макет (тип - СхемаКомпоновкиДанных) к которому храню выше указанные НастройкиКомпоновкиДанных.
Далее в определенный момент времени использую выше указанные НастройкиКомпоновкиДанных, мне необходимо получить данные которые выбираются в выше указанном Макете. Использую следующий код:
НастройкиКомпоновкиДанных = Условие.НастройкиКомпоновкиДанных.Получить();
Если НастройкиКомпоновкиДанных = Неопределено Тогда
// Для условия не назначены настройки компоновки данных.
Возврат;
КонецЕсли;
// Инициализация макета компоновки данных.
СхемаКомпоновкиДанных = Справочники.УсловияПередачиДоговоровКоллекторам.ПолучитьМакет("Договоры");
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКомпоновкиДанных);
Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ТекущаяДата");
Если Параметр <> Неопределено Тогда
Параметр.Использование = Истина;
Параметр.Значение = ТекущаяДатаСеанса();
КонецЕсли;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
КомпоновщикНастроек.ПолучитьНастройки(),,,
Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"),
Ложь);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,, Истина);
ДанныеОтчета = Новый ТаблицаЗначений;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорВывода.УстановитьОбъект(ДанныеОтчета);
ДанныеОтчета = ПроцессорВывода.Вывести(ПроцессорКомпоновки);
ПоказатьНу как бы ничего необычного, и код этот отрабатывает, и я получаю свои данные.
НО ЕСТЬ ОДИН ОЧЕНЬ ИНТЕРЕСНЫЙ МОМЕНТ.
Мне захотелось переделать запрос в выше указанном макете и в запросе я добавил еще одно поле которое хочу выбрать, также добавил это поле в СКД-Настройки-Выбранные поля, и потом при использовании старой(та которая была сохранена до того как я поменял запрос) НастройкиКомпоновкиДанных, у меня не выбирается это новое поле...
Кто сталкивался? Подскажите плиз.
На сколько я понял, где-то на этом этапе
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
КомпоновщикНастроек.ПолучитьНастройки(),,,
Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"),
Ложь);
перезатирается текст запроса и спользуется текст запроса который был в момент сохранения этих настроек - НастройкиКомпоновкиДанных.
По теме из базы знаний
- Хранение настроек внешних отчетов на СКД в 1С
- «Программное заполнение настроек СКД» или «Как сделать отчёт на СКД с понятным для пользователя интерфейсом». (1С: Предприятие 8.1, 8.2 обычное приложение)
- Шаблон отчета на СКД с сохранением настроек
- Учебный пример программного формирования схемы компоновки данных: Универсальный отчет по регистрам накопления
- Онлайн-курс «Система компоновки данных (СКД) для разработки отчетов в 1С:Предприятии»
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
А потом ты героически загружаешь настройки из компоновщика, которые точно так же содержат в себе и выбранные поля и структуру и порядок и отборы и т.п. Всё это применяется поверх настроек по умолчнию. Результат вполне ожидаем - процессор компоновки видит, что ты не собираешся выводить это поле и выбрасывает его из запроса.
Ты уж определись какую часть настроек откуда брать.
добавил это поле в СКД-Настройки-Выбранные поля
Этим самым ты изменил настройки по умолчанию схемы.
А потом ты героически загружаешь настройки из компоновщика, которые точно так же содержат в себе и выбранные поля и структуру и порядок и отборы и т.п. Всё это применяется поверх настроек по умолчнию. Результат вполне ожидаем - процессор компоновки видит, что ты не собираешся выводить это поле и выбрасывает его из запроса.
Ты уж определись какую часть настроек откуда брать.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот