|
Восстанавливаются не все настройки построителя отчета
|
Я
|
|
Сильф 12.10.16 - 17:51 | УТ 10.3, платформа 8.3.8.1747, документ ИнвентаризацияТоваровНаСкладе. В нём есть отбор по номенклатуре и ном.группе, реализованный через построитель отчёта. По образу и подобию уже имеющихся отборов, добавил два своих, и они успешно работают, но! При сохранении документа и закрытии формы должны сохраняться и его отборы, типовым механизмом это реализовано в обработчике ПередЗаписью следующим образом:
УсловияПроведенияИнвентаризации = Новый ХранилищеЗначения(ПостроительОтчета.ПолучитьНастройки(Истина, Ложь, Ложь, Ложь, Ложь));
(УсловияПроведенияИнвентаризации - это реквизит документа.)
И при повторном открытии формы эти настройки восстанавливаются для отображения на форме таким кодом:
ЗначениеУсловий = УсловияПроведенияИнвентаризации.Получить();
Если ТипЗнч(ЗначениеУсловий) = Тип("НастройкиПостроителяОтчета") Тогда
ПостроительОтчета.УстановитьНастройки(ЗначениеУсловий, Истина, Ложь, Ложь, Ложь, Ложь);
КонецЕсли;
Так вот, восстанавливаются только те поля отбора, которые изначально были в этом документе. Добавленные мной - нет. Что я мог сделать не так?
P.S.: Добавил на форму свои кнопки Записать и Прочитать, в которых прописал ровно тот же код, что и выше, и потестил их работу прямо в форме, т.е., без записи документа в базу. В таком режиме всё сохраняется и восстанавливается. |
Сильф 1 - 12.10.16 - 18:13 | Приём
|
Cyberhawk 2 - 12.10.16 - 18:16 | У конструктора запроса есть вкладка Построитель, туда не добавил наверное
|
Сильф 3 - 12.10.16 - 18:26 | ( 2) Там текст запроса меняется в зависимости от условий. Если имеется в виду секция ГДЕ в фигурных скобках, то она присутствует. |
Сильф 4 - 13.10.16 - 15:12 | Подниму
|
Михаил Козлов 5 - 13.10.16 - 15:15 | Посмотрите в отладчике значение настроек ПостроительОтчета.ПолучитьНастройки(...)
и значение, которое возвращается из сохраненных настроек.
Может что-то с доступными полями.
|
Ёпрст 6 - 13.10.16 - 15:23 | ( 0)
запрос выполняется через построитель или через объект запрос ? |
Ёпрст 7 - 13.10.16 - 15:24 | +посмотри в коде, нет ли там принудительного установки доступных полей отбора в ПриОткрытии
|
Сильф 8 - 13.10.16 - 15:58 | ( 5) > Посмотрите в отладчике значение настроек ПостроительОтчета.ПолучитьНастройки(...)
Возвращается штука, имеющая тип НастройкиПостроителяОтчета - это "чёрный ящик", внутрь заглянуть невозможно. СП по его поводу говорит буквально следующее:
-----------------
НастройкиПостроителяОтчета (ReportBuilderSettings)
НастройкиПостроителяОтчета (ReportBuilderSettings)
Описание:
Содержит все настройки построителя отчета.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Сериализуется.
---------------- |
Сильф 9 - 13.10.16 - 15:58 | ( 8) Ниаких свойств и методов. |
Сильф 10 - 13.10.16 - 16:00 | ( 6) через построитель
( 7) я ставлю точку останова на строчке с "УстановитьНастройки", и смотрю в табло, сразу после этой строки устанавливается отбор построителя, и в нём только типовые поля заполнены. Мои отборы также присутствуют, но в них пустые значения. |
Ёпрст 11 - 13.10.16 - 16:11 | если ты не выбрал свои отборы в момент выполнения - их не будет в отборе. Проверь, так ли это.
Т.е выбери в условиях свои добавленные отборы и посмотри, сохраняет или нет
|
Ёпрст 12 - 13.10.16 - 16:17 | проверить легко - отладчиком смотри отбор посттроителя до и после выполнения.
И обход этой фичи тоже простой.
|
Сильф 13 - 13.10.16 - 16:25 | ( 11) > выбери в условиях свои добавленные отборы и посмотри, сохраняет или нет
Дык о том и речь - не сохраняет!
> проверить легко - отладчиком смотри отбор посттроителя до и после выполнения.
Так и делаю, см. ( 10) |
Ёпрст 14 - 13.10.16 - 17:18 | ( 13) короче, делаешь так и привет |
Ёпрст 15 - 13.10.16 - 17:21 | ПостроительОтчета1= Новый ПостроительОтчета(ПостроительОтчета.Текст);
ПостроительОтчета1.УстановитьНастройки(ПостроительОтчета.ПолучитьНастройки());
и ужо выполняешь и выводишь ПостроительОтчета1, а ПостроительОтчета нужен только для отборов. |