Имя: Пароль:
1C
1С v8
Проверить параметр области в макете
0 Agent
 
27.10.11
22:21
Добрый вечер! Подскажите, пожалуйста, как проверить (получить) параметр определенной области в макета на текущее значение.

Действия

Есть области макета «ТаблицаЗначений» и ОбластьМакетаРезультат. Сравнивая два параметра Факт и ТекДан полученные в запросе функции «Данные»

ТабДокумент = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");
ТаблицаЗначений  = Макет.ПолучитьОбласть("ТаблицаЗначений ");
ОбластьМакетаРезультат =  Макет.ПолучитьОбласть("ОбластьМакетаРезультат");

Если Данные.Факт <= Данные.ТекДан Тогда
ОбластьМакетаРезультат.Параметры.Рез = "Норма";
КонецЕсли;

Если Данные.Факт > Данные.ТекДан Тогда
ОбластьМакетаРезультат.Параметры.Рез = "Перевышение";
КонецЕсли;

Далее в зависимости от присвоенного значения в ОбластьМакетаРезультат.Параметры.Рез необходимо выводить другие области макета т.е если «Превышение» то вывести «область причина», а если «Норма» то область подпись.

Проверял так

Если ОбластьМакетаРезультат.Параметры.Рез = "Перевышение" Тогда
ТабДокумент.Вывести(ОбластьПричина);
КонецЕсли;

Если ОбластьМакетаРезультат.Параметры.Рез = "Норма" Тогда
ТабДокумент.Вывести(ОбластьПодпись);
КонецЕсли;

Данный метод не работает. Проверял и так если Строка (ОбластьМакетаРезультат.Параметры.Рез) = "Норма" тоже не работает

Заранее cпасибо!
1 Лефмихалыч
 
27.10.11
22:23
юзай СКД, не ипи моск
2 Agent
 
27.10.11
22:42
отчет не в скд
3 Agent
 
27.10.11
22:43
точнее печатная форма
4 Wobland
 
27.10.11
22:45
Если Данные.Факт <= Данные.ТекДан Тогда
..
Если Данные.Факт > Данные.ТекДан Тогда
..
Иначе
 Сообщить("Прогоните Дэвида Блэйна");?
КонецЕсли;

имхо код в (0) рабочий
5 Wobland
 
27.10.11
22:46
вообще-то отладчик способен сказать, что такое находится в ОбластьМакетаРезультат.Параметры.Рез
6 Agent
 
27.10.11
22:48
текущие данные при формировании выводяться с условиями сравнения
7 Agent
 
27.10.11
22:51
т.е. Превышение и Норма отображаются от условий
8 Wobland
 
27.10.11
22:56
(7) ни фига не понял, но вот это: "в зависимости от присвоенного значения" настораживает. может, лучше проверять не присвоенное значение, а то, которое возвращает запрос (ну или что там у тебя
9 Agent
 
27.10.11
23:08
Условия
Если Данные.Факт <= Данные.ТекДан Тогда
ОбластьМакетаРезультат.Параметры.Рез = "Норма";
КонецЕсли;

Если Данные.Факт > Данные.ТекДан Тогда
ОбластьМакетаРезультат.Параметры.Рез = "Перевышение";
КонецЕсли;

Работают при формировании на печать
10 Agent
 
27.10.11
23:10
не получается вывести другие области на основании присвоенного значения в области «ОбластьМакетаРезультат.Параметры.Рез»
11 Agent
 
27.10.11
23:11
т.е. необходимо узнать что ОбластьМакетаРезультат.Параметры.Рез  Превышение или норма
12 Лефмихалыч
 
27.10.11
23:14
(2) да. И это проблема.
13 Agent
 
27.10.11
23:27
т.е.(12)?
14 Starhan
 
28.10.11
08:57
ЭтоПревышениеБлеать = Неопределено
Если Данные.Факт <= Данные.ТекДан Тогда
ОбластьМакетаРезультат.Параметры.Рез = "Норма";
ЭтоПривешениеБлеать = Ложь;
КонецЕсли;

Если Данные.Факт > Данные.ТекДан Тогда
ОбластьМакетаРезультат.Параметры.Рез = "Перевышение";
ЭтоПривешениеБлеать = истина;
КонецЕсли;

Если это ПревышениеБлеать
выввести макет с превышением...
КонецЕсли;
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший