Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 00:29

Получение значений Перечисления из формы документа

Автор Andrepan, 22 фев 2017, 14:36

0 Пользователей и 1 гость просматривают эту тему.

Andrepan

 Здравствуйте! Подскажите пожалуйста почему из формы документа не работает конструкция

      Если Объект.ВалютаКонтракта = Перечисления.Валюта.Доллар Тогда
         ДенежнаяЕденица = Объект.КурсДоллара;
         
      ИначеЕсли Объект.ВалютаКонтракта = Перечисления.Валюта.Евро Тогда
         ДенежнаяЕденица = Объект.КурсЕвро;
         
      ИначеЕсли   Объект.ВалютаКонтракта = Перечисления.Валюта.Рубль Тогда
         ДенежнаяЕденица = 1;
         
      КонецЕсли;

В модуле менеджера все работает а в модуле формы документа пишет

Документ.РасчетТаможенныхПлатежей.Форма.ФормаДокумента.Форма(124,38)}: Переменная не определена (Перечисления)
      ИначеЕсли   Объект.ВалютаКонтракта = <<?>>Перечисления.Валюта.Рубль Тогда (Проверка: Тонкий клиент)


depb

Скорее всего, у вас клиентская процедура, попробуйте на сервере &НаСервере

ilyay

на клиенте надо так делать: ПредопределенноеЗначение("Перечисление.Валюта.Доллар")

Andrepan

Цитата: ilyay от 22 фев 2017, 14:48
на клиенте надо так делать: ПредопределенноеЗначение("Перечисление.Валюта.Доллар")

Попробовал, теперь возникли проблемы дальше по ходу исполнения
ТамСтТов = СтрокаТабличнойЧасти.Сумма*ДенежнаяЕденица
      +Объект.ДоставкаДоГраницыРФ*СтрокаТабличнойЧасти.Количество/Объект.ОбщееКоличествоБутылок;



Пишет: {Документ.РасчетТаможенныхПлатежей.Форма.ФормаДокумента.Форма(132)}: Преобразование значения к типу Число не может быть выполнено
      ТамСтТов = СтрокаТабличнойЧасти.Сумма*ДенежнаяЕденица


ilyay

Ставьте флаг отладки остановка по ошибке и смотрите в отладчике значения переменных.

Andrepan

Цитата: depb от 22 фев 2017, 14:45
Скорее всего, у вас клиентская процедура, попробуйте на сервере &НаСервере
Да, основная процедура выполняется на Клиенте и мне нужно чтобы она там выполнялась. А как правильно передать эту  часть процедуры на сервер на Функцию и потом вернуть обратно?
Добавлено: 22 фев 2017, 16:02


Почитал в Синтаксис - помощнике инфу по ПредопределенноеЗначение там говориться что для перечислений:
Для перечислений, определенных в конфигурации, <Значение> указывается как имя соответствующего объекта метаданных типа ЗначениеПеречисления. Для всех остальных типов предопределенных значений <Значение> указывается как имя предопределенного элемента данных, как оно указано в конфигураторе
поясните пожалуйста если у меня три значения перечисления то это так и будет выглядеть?

        Если Объект.ВалютаКонтракта = ПредопределенноеЗначение("Перечисление.Валюта.Доллар") Тогда
         ДенежнаяЕденица = Объект.КурсДоллара;
         
   ИначеЕсли Объект.ВалютаКонтракта = ПредопределенноеЗначение("Перечисление.Валюта.Евро") Тогда
         ДенежнаяЕденица = Объект.КурсЕвро;
         
   ИначеЕсли Объект.ВалютаКонтракта = ПредопределенноеЗначение("Перечисление.Валюта.Рубль") Тогда
         ДенежнаяЕденица = 1;
         
   КонецЕсли;


Добавлено: 22 фев 2017, 16:38


Цитата: ilyay от 22 фев 2017, 15:20Ставьте флаг отладки остановка по ошибке и смотрите в отладчике значения переменных.

Спасибо, все заработало! Странное дело, прошелся с отладчиком, ничего не менял, но и все заработало как надо:)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск