![]() |
![]() |
![]() |
|
Как подменить текст запроса у постротеля | ☑ | ||
---|---|---|---|---|
0
Sasha_H
05.03.09
✎
15:26
|
Поступила задача в ведомость товара добавить код производителя, этот код находиться в РС "Штрихкоды". Ну я решил сделать подмену текста запроса в ведомости и сделал это. Но натолкнулся на одну плохую вещь, когда делать такую подмену, то при выборе пользователем флага "Отобразить свойства и категории" визуально отображаються не имена свойств или категорий, а их Ключи в запросе.
То есть слетают настройки. Я прошёлся отладчиком и не раз и список сопоставлений в нормальном состоянии, а отображается криво! В чем косяк? |
|||
1
Defender aka LINN
05.03.09
✎
15:27
|
Представления восстанови
|
|||
2
Sasha_H
05.03.09
✎
15:29
|
а есть кусок рабочего кода как это сделать только именно с универсальными механизмами...
|
|||
3
Defender aka LINN
05.03.09
✎
15:31
|
В типовых отчетах смотри
|
|||
4
Sasha_H
05.03.09
✎
15:33
|
ну дык типовые отчеты не подменюют запрос у построителя.
А я уже готовый запрос, получаю и корректирую его то есть добавляю соединения к РС штрикоды и отдаю его обратно построителю. |
|||
5
Defender aka LINN
05.03.09
✎
15:35
|
Нет типовых под рукой. Что-то типа "ЗаполнитьПредставленияПолей" или как-то так.
|
|||
6
НЕА123
05.03.09
✎
15:35
|
в какой момент происходит подмена?
|
|||
7
Sasha_H
05.03.09
✎
15:44
|
даже так слетит:
ТекстЗапроса = УниверсальныйОтчет.ПостроительОтчета.Текст; УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса; |
|||
8
НЕА123
05.03.09
✎
15:47
|
ответь на (6)
|
|||
9
Sasha_H
05.03.09
✎
15:55
|
Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт
УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним); УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь; УниверсальныйОтчет.ИмяРегистра = "ТоварыНаСкладах"; УниверсальныйОтчет.ДобавитьПолеГруппировка("БазоваяЕдиницаИзмерения", "Номенклатура", "БазоваяЕдиницаИзмерения", "Базовая единица измерения"); УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоЕдиницОтчетовНачальныйОстаток", "ИсточникДанных.КоличествоНачальныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / Номенклатура.ЕдиницаДляОтчетов.Коэффициент", "Количество (в ед. отчетов) (нач. ост.)"); УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоЕдиницОтчетовПриход", "ИсточникДанных.КоличествоПриход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / Номенклатура.ЕдиницаДляОтчетов.Коэффициент", "Количество (в ед. отчетов) (приход)"); УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоЕдиницОтчетовРасход", "ИсточникДанных.КоличествоРасход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / Номенклатура.ЕдиницаДляОтчетов.Коэффициент", "Количество (в ед. отчетов) (расход)"); УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоЕдиницОтчетовКонечныйОстаток", "ИсточникДанных.КоличествоКонечныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / Номенклатура.ЕдиницаДляОтчетов.Коэффициент", "Количество (в ед. отчетов) (кон. ост.)"); УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоЕдиницОтчетовОборот", "ИсточникДанных.КоличествоОборот * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / Номенклатура.ЕдиницаДляОтчетов.Коэффициент", "Количество (в ед. отчетов) (оборот)"); УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоБазовыхЕдНачальныйОстаток", "ИсточникДанных.КоличествоНачальныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент", "Количество (в базовых единицах) (нач. ост.)"); УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоБазовыхЕдПриход", "ИсточникДанных.КоличествоПриход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент", "Количество (в базовых единицах) (приход)"); УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоБазовыхЕдРасход", "ИсточникДанных.КоличествоРасход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент", "Количество (в базовых единицах) (расход)"); УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоБазовыхЕдКонечныйОстаток", "ИсточникДанных.КоличествоКонечныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент", "Количество (в базовых единицах) (кон. ост.)"); УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоБазовыхЕдОборот", "ИсточникДанных.КоличествоОборот * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент", "Количество (в базовых единицах) (оборот)"); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоБазовыхЕдНачальныйОстаток", "Начальный остаток", Истина, "ЧЦ=15; ЧДЦ=3", "КолБазовыхЕд", "Количество (в базовых единицах)"); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоБазовыхЕдПриход", "Приход", Истина, "ЧЦ=15; ЧДЦ=3", "КолБазовыхЕд", "Количество (в базовых единицах)"); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоБазовыхЕдРасход", "Расход", Истина, "ЧЦ=15; ЧДЦ=3", "КолБазовыхЕд", "Количество (в базовых единицах)"); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоБазовыхЕдКонечныйОстаток", "Конечный остаток", Истина, "ЧЦ=15; ЧДЦ=3", "КолБазовыхЕд", "Количество (в базовых единицах)"); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоБазовыхЕдОборот", "Оборот", Ложь, "ЧЦ=15; ЧДЦ=3", "КолБазовыхЕд", "Количество (в базовых единицах)"); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоЕдиницОтчетовНачальныйОстаток", "Начальный остаток", Ложь, "ЧЦ=15; ЧДЦ=3", "КоличествоЕдиницОтчетов", "Количество (в ед. отчетов)"); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоЕдиницОтчетовПриход", "Приход", Ложь, "ЧЦ=15; ЧДЦ=3", "КоличествоЕдиницОтчетов", "Количество (в ед. отчетов)"); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоЕдиницОтчетовРасход", "Расход", Ложь, "ЧЦ=15; ЧДЦ=3", "КоличествоЕдиницОтчетов", "Количество (в ед. отчетов)"); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоЕдиницОтчетовКонечныйОстаток", "Конечный остаток", Ложь, "ЧЦ=15; ЧДЦ=3", "КоличествоЕдиницОтчетов", "Количество (в ед. отчетов)"); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоЕдиницОтчетовОборот", "Оборот", Ложь, "ЧЦ=15; ЧДЦ=3", "КоличествоЕдиницОтчетов", "Количество (в ед. отчетов)"); // Заполнение начальных настроек универсального отчета УниверсальныйОтчет.УстановитьНачальныеНастройки(Истина); ТекстЗапроса = УниверсальныйОтчет.ПостроительОтчета.Текст; ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ИсточникДанных.Склад КАК Склад,", "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ИсточникДанных.Склад КАК Склад, | Штрихкоды.Штрихкод КАК КодПроизводителя,"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "{ВЫБРАТЬ | Склад.*,", "{ВЫБРАТЬ | Склад.*, | Штрихкоды.Штрихкод КАК КодПроизводителя,"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ") КАК ИсточникДанных", ") КАК ИсточникДанных | {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды |ПО ИсточникДанных.Номенклатура = Штрихкоды.Владелец}"); //| И (Штрихкоды.ТипШтрихкода = &ТипШтрихкода)}"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ИТОГИ | СУММА(КоличествоНачальныйОстаток),", "ИТОГИ | СУММА(КоличествоНачальныйОстаток), | МАКСИМУМ(КодПроизводителя),"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "{ИТОГИ ПО | Склад.*,", "{ИТОГИ ПО | Склад.*, | Штрихкоды.Штрихкод КАК КодПроизводителя,"); // //Сообщить(ТекстЗапроса); УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса; //ТекстЗапроса = УниверсальныйОтчет.ПостроительОтчета.Текст; УниверсальныйОтчет.УстановитьНачальныеНастройки(Ложь); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоНачальныйОстаток",, Ложь,, "Количество"); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоПриход",, Ложь,, "Количество"); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоРасход",, Ложь,, "Количество"); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоКонечныйОстаток",, Ложь,, "Количество"); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоОборот",, Ложь,, "Количество"); // Добавление предопределенных группировок строк отчета. // Необходимо вызывать для каждой добавляемой группировки строки. // УниверсальныйОтчет.ДобавитьИзмерениеСтроки(<ПутьКДанным>); УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Склад"); УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Номенклатура"); // Добавление предопределенных группировок колонок отчета. // Необходимо вызывать для каждой добавляемой группировки колонки. // УниверсальныйОтчет.ДобавитьИзмерениеКолонки(<ПутьКДанным>); // Добавление предопределенных отборов отчета. // Необходимо вызывать для каждого добавляемого отбора. // УниверсальныйОтчет.ДобавитьОтбор(<ПутьКДанным>); УниверсальныйОтчет.ДобавитьОтбор("Склад"); УниверсальныйОтчет.ДобавитьОтбор("Номенклатура"); УниверсальныйОтчет.ДобавитьДополнительноеПоле("БазоваяЕдиницаИзмерения"); КонецПроцедуры // УстановитьНачальныеНастройки() |
|||
10
НЕА123
05.03.09
✎
16:06
|
все правильно. ты спутал, батя... (с)
сначала текст присвой, после УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь; УниверсальныйОтчет.ИмяРегистра = "ТоварыНаСкладах"; ТекстЗапроса...... .... установитьначальныенастройки один раз в самом низу. |
|||
11
Михаил Козлов
05.03.09
✎
16:17
|
(7) Да. При присвоении текста у построителя слетают настройки. Их нужно перед сменой текста получить, а потом восстановить.
|
|||
12
Sasha_H
05.03.09
✎
16:21
|
(10) если сделать УниверсальныйОтчет.УстановитьНачальныеНастройки(Истина);
Тогда моего изменения текста запроса не будет так как он перезаполняет текст запроса! |
|||
13
Sasha_H
05.03.09
✎
16:22
|
(11) Да я полнял что нужно их востановить а как?
|
|||
14
НЕА123
05.03.09
✎
16:23
|
на куй истина. ложь пусть остается.
|
|||
15
НЕА123
05.03.09
✎
16:29
|
в (10) я написал, что просто надо сначала присвоить текст а потом уж всякая лабуда.
а текст без всякой там заменить жестко вставь. подсмотри анализ заказа покупателей. |
|||
16
Sasha_H
05.03.09
✎
17:34
|
собственно нашел
УниверсальныйОтчет.УстановитьПредставленияПолей(УниверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета); |
|||
17
Михаил Козлов
05.03.09
✎
18:05
|
(13) вроде настройки = Построитель.ПолучитьНастройки() и Построитель.УстановитьНастройки(настройки);
|
|||
18
Sasha_H
05.03.09
✎
19:54
|
(17) Не много фактических параметров при установке настроек
|
|||
19
Михаил Козлов
05.03.09
✎
20:49
|
(18) В смысле?
ПостроительОтчета (ReportBuilder) УстановитьНастройки (SetSettings) Синтаксис: УстановитьНастройки(<Настройки>, <Отбор>, <Порядок>, <Измерения>, <Выбранные поля>, <Условное оформление>) Параметры: <Настройки> (обязательный) Тип: НастройкиПостроителяОтчета. Устанавливаемые настройки. <Отбор> (необязательный) Тип: Булево. Признак необходимости установки отбора. Значение по умолчанию: Истина <Порядок> (необязательный) Тип: Булево. Признак необходимости установки порядка. Значение по умолчанию: Истина <Измерения> (необязательный) Тип: Булево. Признак необходимости установки настроек измерений. Значение по умолчанию: Истина <Выбранные поля> (необязательный) Тип: Булево. Признак необходимости установки выбранных полей. Значение по умолчанию: Истина <Условное оформление> (необязательный) Тип: Булево. Признак необходимости установки условного оформления. Значение по умолчанию: Истина Описание: Устанавливает настройки. Примечание: Загружает настройки построителя отчета, только в том случае, если текст запроса позволяет использовать такие настройки. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |