Перейти к содержимому


- - - - -

параметр макета


Сообщений в теме: 16

#1 juliab85

    Частый гость


  • 55 сообщений

Отправлено 01 февраля 2012 - 10:09

здравствуйте. хотела спросить, как проверить, что параметр макета существует?

ОбластьМакета.Параметры.Номер = ...

Если параметра Номер нету, то выдается ошибка, нужна какая-то проверка. Могу найти, перебирая все параметры макета. Нет ли варианта попроще?

#2 vartanet

    Ветеран


  • 1 493 сообщений

Отправлено 01 февраля 2012 - 10:17

например, можно проигнорировать ошибку:

Попытка
ОбластьМакета.Параметры.Номер = 2131231;
Исключение
КонецПопытки;
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.

#3 juliab85

    Частый гость


  • 55 сообщений

Отправлено 01 февраля 2012 - 10:26

спасибо)) но это не очень хороший способ, правда работать будет. а другого нет, как-то напрямую?

#4 shurikvz

    Ветеран


  • 5 224 сообщений

Отправлено 01 февраля 2012 - 10:40

Если ОбластьМакета.Параметры.Свойство("Номер") Тогда
  ОбластьМакета.Параметры.Номер =
КонецЕсли;

Хотя. Не пробовал, надо посмотреть. Там же не структура.
Now, this bell tolling softly for another, says to me: Thou must die...

#5 Tiger86

    Ветеран


  • 1 074 сообщений

Отправлено 01 февраля 2012 - 10:45

а зачем там выкручиваться? Универсальное что-то делаете?
хотите сказать спасибо? жмите Изображение

#6 vartanet

    Ветеран


  • 1 493 сообщений

Отправлено 01 февраля 2012 - 10:45

Просмотр сообщенияshurikvz (01 февраля 2012 - 10:40) писал:

Если ОбластьМакета.Параметры.Свойство("Номер") Тогда
  ОбластьМакета.Параметры.Номер =
КонецЕсли;

Хотя. Не пробовал, надо посмотреть. Там же не структура.

не работает ;) метод обЪекта на обнаружен..

чета не знаю другой способ. даже не знаю как получить имя параметра, чтобы в процессе перебора всех параметров сравнивать имя параметра с искомым..
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.

#7 shurikvz

    Ветеран


  • 5 224 сообщений

Отправлено 01 февраля 2012 - 10:48

Просмотр сообщенияvartanet (01 февраля 2012 - 10:45) писал:

не работает ;) метод обЪекта на обнаружен..
ага

Просмотр сообщенияvartanet (01 февраля 2012 - 10:45) писал:

чета не знаю другой способ. даже не знаю как получить имя параметра, чтобы в процессе перебора всех параметров сравнивать имя параметра с искомым..
А для чего такое?
Чтобы не заполнять каждый параметр используйте ОбластьМакета.Параметры.Заполнить() например.
Now, this bell tolling softly for another, says to me: Thou must die...

#8 vartanet

    Ветеран


  • 1 493 сообщений

Отправлено 01 февраля 2012 - 10:52

Просмотр сообщенияjuliab85 (01 февраля 2012 - 10:09) писал:

здравствуйте. хотела спросить, как проверить, что параметр макета существует?

ну вот хочется человеку узнать есть ли в табличном документе параметр с заданым именем.. вроде простое желание, а решения нет..
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.

#9 1cUserAndrew

    Ветеран


  • 2 679 сообщений

Отправлено 01 февраля 2012 - 10:54

Просмотр сообщенияvartanet (01 февраля 2012 - 10:45) писал:

даже не знаю как получить имя параметра, чтобы в процессе перебора всех параметров сравнивать имя параметра с искомым..

Где-то я видел код перебора параметров макета. Сейчас уже не помню...
Но что-то типа такого:
Для Каждого Параметр Из ОбластьМакета.Параметры Цикл
    Если Параметр.Имя = ...
    ....
КонецЦикла;

Или как-то похоже...Попробуйте, может, получится, отладчик примените))

Сообщение отредактировал 1cUserAndrew: 01 февраля 2012 - 10:54

Как приятно знать, что ты что-то узнал!

#10 Tiger86

    Ветеран


  • 1 074 сообщений

Отправлено 01 февраля 2012 - 10:54

а посмотреть на макет? самое простое решение
хотите сказать спасибо? жмите Изображение

#11 vartanet

    Ветеран


  • 1 493 сообщений

Отправлено 01 февраля 2012 - 10:55

Просмотр сообщения1cUserAndrew (01 февраля 2012 - 10:54) писал:


Но что-то типа такого:
Для Каждого Параметр Из ОбластьМакета.Параметры Цикл
	Если Параметр.Имя = ...
	....
КонецЦикла;


не работает. не знает что такое "имя".
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.

#12 Tiger86

    Ветеран


  • 1 074 сообщений

Отправлено 01 февраля 2012 - 10:57

а в областьмакета что-то передано? приведите дословную ошибку
хотите сказать спасибо? жмите Изображение

#13 mialord

    "Свадебный генерал"


  • 3 525 сообщений

Отправлено 01 февраля 2012 - 11:00

Либо перебирать все параметры и сверять есть такие по имени или нет, либо бросить затею, разработчики 1С не считают подобную задачу актуальной, т.к. разработка универсальных печатных форм, как минимум, задача не адекватная.

#14 1cUserAndrew

    Ветеран


  • 2 679 сообщений

Отправлено 01 февраля 2012 - 11:00

Просмотр сообщенияvartanet (01 февраля 2012 - 10:55) писал:

не работает. не знает что такое "имя".

Ну я точно не помню...
Поэкспериментируйте :rolleyes:
Как приятно знать, что ты что-то узнал!

#15 juliab85

    Частый гость


  • 55 сообщений

Отправлено 01 февраля 2012 - 11:05

да ничего такого особого не делаю. просто есть 2 макета. в одном одни параметры, в другом немного другие. а процедура печати одна. заполнить() не подходит. там вычисляемое значение присваивается. да и не мной уже сделано, я вношу доработки. и если заполняются параметры нового макета, для печати старого документа - то ошибки летят. могу по дате документа отслеживать.

#16 mialord

    "Свадебный генерал"


  • 3 525 сообщений

Отправлено 01 февраля 2012 - 11:07

Оператор Попытка Вам в помощь, на этом все

#17 Tiger86

    Ветеран


  • 1 074 сообщений

Отправлено 01 февраля 2012 - 12:35

дак раз у вас 2 разных макета, то собственно определить по ним разве нельзя??? если заполняете один макет - то такие параметры, а если заполняете второй макет - то такие-то параметры заполняются. Разве так не проще?
хотите сказать спасибо? жмите Изображение





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных