```1c
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)

    Если ВалютаДокумента = "EUR*" Тогда
    //Если Элементы.Международный = Истина Тогда
    //Если Объект.Соглашение = "Россия" ИЛИ Объект.Соглашение = "МВЛ" Тогда
    Элементы.СуммаВсегоРуб.Видимость = Истина;
    ВсегоВЕвро = СуммаВсего * 75;
    КонецЕсли;
    КонецПроцедуры
```

Такой не совсем понятный случай. Пытаюсь показать элемент на форме если в форме международность = истина. Но программно, никакого значения международности не присваивается, хотя в самой форме работает нормально. То стоит галочка, то нет, как положено. Использовал другие варианты, с них я получаю нужное значение, но условие не работает, элемент по прежнему скрыт.
---
Если на клиенте то пишите так

```1c
    Если ВРег(Строка(ВалютаДокумента)) = "EUR*" Тогда
```
---
Может вам нужно написать так?

```1c
    Объект.Международный = Истина
```
---
Нет, он выдаёт что "Поле объекта не обнаружено"
---
Международный это у вас реквизит формы или объекта?
---
А что у вас в ВалютаДокумента? Какого типа?
---
+(4) Ну или Объект.международность = истина
---
выше уже написал, что поле объекта не обнаружено
---
Ссылка на справочник Валюты
---
Ну тогда и сравнивайте правильно Если ВалютаДокумента = Справочники.Валюты.НайтиПоНАименованию("EUR"). Хотя вообще костыли какие-то страшные.
---
Вот я и сравниваю. Получается что EUR = EUR, но при этом всё равно не работает оператор Если. Видимость не включается.
---
В том условии, которое у вас написано в заголовке, вы не получите истину никогда.
---
и где я допустил ошибку?
---
Вы допускаете ошибку при сравнении разных типов данных.
Вы можете написать например вот так

```1c
    Если ВалютаДокумента.Наименование = "EUR*"
```

но что такое "EUR*" со звездочкой? Именно так называется валюта или вы указываете на некий символ?
---
Так валюта называется. Извиняюсь, что сразу не уточнил.
---
ВалютаДокумента у Вас имеет тип СправочникСсылка.Валюты, вы их сравниваете со строкой?
---
всё верно. Через точку останова, смотрел значение, получаю именно то, которое мне нужно. ВалютаДокумента = "EUR*"
---
```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ)

    Если ВалютаДокумента = Справочники.Валюты.НайтиПоНаименованию("EUR*") Тогда
    //Если Элементы.Международный = Истина Тогда
    //Если Объект.Соглашение = "Россия" ИЛИ Объект.Соглашение = "МВЛ" Тогда
    Элементы.СуммаВсегоРуб.Видимость = Истина;
    ВсегоВЕвро = СуммаВсего * 75;
    КонецЕсли;
    КонецПроцедуры
```
---
А Международный это реквизит формы или объекта? Если Реквизит формы то просто

```1c
    Если Международный Тогда
```
---
реквизит объекта
---
Можете скинуть скриншот конструктора формы?
---
по данному скриншоту не понятно что Международный это реквизит объекта.
---
"Международный" в группировке Объект или нет? Скрин с реквизитом бы, или так напишите.
---
напишите уже в условии
```1c
    Если ВалютаДокумента.Наименование = "EUR*"
```
 и не мучайте людей :)
---
Да. Но когда пишу Объект.Международный, ничего не находит в подсказках. Да и если запустить отладку, один фиг, ошибку выдаёт
---
понятно, справа поле Свойства - ПутьКДанным: Объект.Рейс.НомерРейса.Международный

```1c
    Объект.Рейс.НомерРейса.Международный = Истина
```
---
так тоже пытался. Поле объекта не обнаружено...
---
Да Бог с ним, с "международным". Он не хочет выполнять условие, если валюта документа Евро.
---
Я вам написал вызов серверной процедуры при создании на сервере, вы пробовали так?
---
пробовал, не работает =(

И так тоже не катит: Если ВалютаДокумента.Наименование = "EUR*"
---
Пришлите скриншот что у вас в отладчике ВалютаДокумента.Наименование
---
Если на клиенте то пишите так

```1c
    Если ВРег(Строка(ВалютаДокумента)) = "EUR*" Тогда
```
---
Если ВРег(Строка(ВалютаДокумента)) = "EUR*" Тогда

То что нужно!! Спасибо товарищи!

Вот где собака зарыта была.
---
это не решение, это костыль.
Решение в (16) было.
Или хотя бы так:

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ)

    Если ВалютаДокумента.Наименование = "EUR*" Тогда
    Элементы.СуммаВсегоРуб.Видимость = Истина;
    ВсегоВЕвро = СуммаВсего * 75;
    КонецЕсли;
    КонецПроцедуры
```
---
Вы вот так писали?
```1c
    Если ВалютаДокумента.Наименование = "EUR*"
```
---
Вот
---
во-первых, все это нужно делать на сервере.
во-вторых, какой Путь данных у ВалютаДокумента?
---
вы на клиенте не сможете обратится к полям по ссылке, только на сервере
---
Забавно, что на регистр реагирует.
---
в данном случае она не регистр строки реагирует, а на приведение представления ссылки к строке.
---
а кстати Рейс/Рейс.НомерРейса - не ссылка?
---
Ссылка
---
ну тогда так:

```1c
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)

    Если ПолучитьВалютуДокументаНаСервере() = "EUR*" Тогда
    Если ПолучитьМеждународныйНаСервере() = Истина Тогда
    //Если Объект.Соглашение = "Россия" ИЛИ Объект.Соглашение = "МВЛ" Тогда
    Элементы.СуммаВсегоРуб.Видимость = Истина;
    ВсегоВЕвро = СуммаВсего * 75;
    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры

    &НаСервере
    Функция ПолучитьВалютуДокументаНаСервере()
    Возврат СокрЛП(ВалютаДокумента.Наименование);
    КонецФункции

    &НаСервере
    Функция ПолучитьМеждународныйНаСервере()
    Возврат Объект.Рейс.НомерРейса.Международный;
    КонецФункции
```
---
вот за такое надо по рукам бить.
---
ок, упростите - напишите как правильно =)
---
я уже в (38) показал. Первый правильный ответ был еще в (19).
А в клиентской процедуре ПриОткрытии 2 раза вызывать сервер только для получения отдельных данных, это моветон.
---
ок, вы были бы правы, еслиб топикстартер не написал что ему надо ПриОткрытии &НаКлиенте. А так что надо и чтоб работало - вот мой вариант.
---
1) да процедура &НаКлиенте - чтобы скрывать/показывать элементы
2) с Клиента обращаетесь на Сервер чтобы получать значения ссылочных типов (что валюта, что Рейс/НомерРейса - если тоже ссылка)
3) Когда &НаКлиенте начинаете набирать Объект - что после точки показывает, или Международный - что показывает при "Между+Ctrl+Пробел" ?