Имя: Пароль:
1C
1С v8
Выбор макета по условию
0 Robert51
 
14.08.14
21:09
Добрый вечер!
Пытаюсь совместить 2 макета в 1 печатной форме. То есть, в зависимости от Контрагента будет выводиться на печать тот или иной макет. Но вот что-то не получается. Что я не так делаю?
Собственно что делаю:
...
| ЕСТЬNULL(ПоступлениеТоваровУслуг.Контрагент.Наименование, """") КАК Фирма,
...
Если Шапка.Фирма = "Фирма 1" Тогда
     Макет = ПолучитьМакет("Фирма1");
     Шапка.Следующий();
Иначе
     Если Шапка.Фирма = "Фирма 2" Тогда
          Макет = ПолучитьМакет("Фирма2");
          Шапка.Следующий();
     КонецЕсли;
КонецЕсли;

Выдает ошибку: Значение не является значением объектного типа (ПолучитьОбласть)
1 ДенисЧ
 
14.08.14
21:15
у тебя Шапка.Фирма не равны не первой, ни второй фирме.
Кстати, продам отладчик. Дорого.
2 Robert51
 
14.08.14
21:24
(1) Мечтаю об отладчике, но терминальная 1с и зависает. Ко всему там старый комп.
Я же выбираю по Контрагенту, а не по макету.
| ЕСТЬNULL(ПоступлениеТоваровУслуг.Контрагент.Наименование, """") КАК Фирма,
...
Если Шапка.Фирма = "Рога и Копыта" Тогда
     Макет = ПолучитьМакет("Фирма1");
     Шапка.Следующий();
Иначе
     Если Шапка.Фирма = "Комарики и Шарики" Тогда
          Макет = ПолучитьМакет("Фирма2");
          Шапка.Следующий();
     КонецЕсли;
КонецЕсли;
3 ДенисЧ
 
14.08.14
21:26
Ещё раз. В Шапка.Фирма у тебя не рога и копыта и не комарики и шарики.
А если на отладчик у тебя денег нет, тогда в два раза дешевле научу вставлять отладочную печать.
4 Wobland
 
14.08.14
22:01
(2) и выбираешь х.. простите, ж.. простите.. неопределену
5 GenV
 
14.08.14
22:41
(2) сделай так:
Если Шапка.Фирма = "Рога и Копыта" Тогда
     Макет = ПолучитьМакет("Фирма1");
     Шапка.Следующий();
Иначе
     Макет = ПолучитьМакет("Фирма2");
     Шапка.Следующий();
КонецЕсли

если работает, значит (1) прав, либо название другое
6 ДенисЧ
 
14.08.14
22:42
(5) ЧТо значит "если"??
Я всегда прав. Просто по определению.
7 GenV
 
14.08.14
22:44
(6) Еще есть вариант с пробелами в названии )
8 ДенисЧ
 
14.08.14
22:53
(7) Если есть пробелы - значит, условие не выполняется.
Ты не видишь, что ветки "совсем иначе" нету?
9 hhhh
 
14.08.14
22:54
(2) может сначала поставить

     Шапка.Следующий();

???
10 GenV
 
14.08.14
22:57
(8) Но проблема уже будет не в неправильности контрагента в шапке. Там он может быть правильно выбран.
ЗЫ Да пока на глаза не жаловался.
11 Robert51
 
14.08.14
23:17
(5) Работает, но по причине не выполнения  первого условия. Я специально не ставил Иначе, чтоб исключить перескакивание. Плюс макетов будет штук 5.
12 ivanov-i-i
 
14.08.14
23:26
Попробуй так, если нет отладчика:

Сообщить(Шапка.Фирма);
Если Шапка.Фирма = "Рога и Копыта" Тогда

И обрати внимание на (9).
13 Robert51
 
14.08.14
23:51
(12) Я это частенько проделываю =) Выводит нужное значение.
А вот (9) сработало.
(9) Огромное спасибо!
Это из-за того что выборка шапки еще не выполнена? То есть последовательность нарушена?
2 + 2 = 3.9999999999999999999999999999999...