СКД при удалении строки запрос сохраняется, при дальнейшей работе скд берет измененный запрос.
Добрый день. Отчет скд. При определенных условиях удаляю строку из запроса. Выполняется отчет, выводится результат. После этого если формировать отчет, то запрос берется с удаленной строкой. Приходится закрывать и открывать отчет заново. Подскажите, можно ли как-нибудь обновить настройки, чтобы не закрывать отчет каждый раз ? Заранее спасибо.
Компоновка результата:
Компоновка результата:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
//&Обещание
Если НЕ ЗначениеЗаполнено(Обещание) тогда
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(3).Использование = Ложь;
СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос = СтрЗаменить(СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос,"И АнкетаКлиента.Обещание В(&Обещание)","");
Иначе
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(3).Значение = Обещание;
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(3).Использование = Истина;
КонецЕсли;
//&Сегодня
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(2).Значение = НачалоДня(ТекущаяДата());
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(2).Использование = Истина;
//&НачалоПериода
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(0).Значение = НачалоДня(НачалоПериода);
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(0).Использование = Истина;
//&КонецПериода
Если КонецПериода = Дата(1,1,1) Тогда
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(1).Значение = КонецДня(ТекущаяДата());
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(1).Использование = Истина;
Иначе
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(1).Значение = КонецДня(КонецПериода);
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(1).Использование = Истина;
Конецесли;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Универсальный конструктор отчетов (Новейший отчет) для 1C 7.7
- Быстрый поиск дублей в 1С с четким/нечетким поиском по любому сочетанию реквизитов/реквизитов таб. частей с отбором и быстрой заменой значений в ЛЮБЫХ базах 8.1-8.3 (УТ 10.3, БП 2, ЗУП 2.5, КА 1.1, УТ 11, БП 3, УНФ 1.6/3.0, КА 2, ЗУП 3 и т.д.)
- 50+ советов для успешной сдачи 1С: Специалист по платформе
- Конфигурация Flowcon: Набор инструментов для управления задачами, проектами и бизнесом в 1С
Найденные решения
(1) Не проще ли изменить изначальный запрос так, чтобы потом не менять его динамически?
Например как-то так:
Если Обещание <> Неопределено при его незаполненности, то изменить так.
Например как-то так:
И (&Обещание = НЕОПРЕДЕЛЕНО
ИЛИ АнкетаКлиента.Обещание В(&Обещание))
Если Обещание <> Неопределено при его незаполненности, то изменить так.
//&Обещание
Если НЕ ЗначениеЗаполнено(Обещание) тогда
//КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(3).Использование = Истина;
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(3).Значение = Неопределено;
Иначе
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(3).Значение = Обещание;
//КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(3).Использование = Истина;
КонецЕсли;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Не проще ли изменить изначальный запрос так, чтобы потом не менять его динамически?
Например как-то так:
Если Обещание <> Неопределено при его незаполненности, то изменить так.
Например как-то так:
И (&Обещание = НЕОПРЕДЕЛЕНО
ИЛИ АнкетаКлиента.Обещание В(&Обещание))
Если Обещание <> Неопределено при его незаполненности, то изменить так.
//&Обещание
Если НЕ ЗначениеЗаполнено(Обещание) тогда
//КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(3).Использование = Истина;
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(3).Значение = Неопределено;
Иначе
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(3).Значение = Обещание;
//КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Получить(3).Использование = Истина;
КонецЕсли;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот