Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

1С Разработка. Создание формы расчета валюты.

NoName Ученик (149), открыт 1 неделю назад
У меня есть База на 1С. Проблема заключается в том что когда я заполняю Валюта из автоматически подставляется его значение в поле Курс, но при нажатии кнопки рассчитать он говорит что поля не заполнены. Что не так??
1 ответ
Татьяна Просветленный (32636) 1 неделю назад
Судя по предоставленным изображениям, проблема заключается в проверке заполненности полей перед расчетом. В коде, который отвечает за расчет, возможно, не корректно обрабатывается значение поля "Курс".

В вашем коде функция КнопкаРассчитать проверяет заполненность полей следующим образом:
 Если Не ЗначениеЗаполнено(ВалютаИз) Или Не ЗначениеЗаполнено(СуммаИз) Или Не ЗначениеЗаполнено(Курс) Тогда 
Сообщить("Заполните все поля.");
Возврат;
КонецЕсли;
Убедитесь, что после того как вы выбираете значение "Валюта из" и курс подставляется автоматически, значение в поле "Курс" действительно установлено. Возможно, проблема в том, что значение курса не обновляется в момент выполнения проверки.

Попробуйте внести следующие изменения:

Убедитесь, что после выбора валюты и автоматического подстановки курса выполняется вызов процедуры для пересчета значений. Например, добавьте обработчик события изменения значения поля "ВалютаИз".

Проверьте, что значение курса устанавливается до выполнения проверки. Вы можете вывести значение курса в окно сообщений перед проверкой для отладки:
 Сообщить("Курс: " + Курс); 
Если Не ЗначениеЗаполнено(ВалютаИз) Или Не ЗначениеЗаполнено(СуммаИз) Или Не ЗначениеЗаполнено(Курс) Тогда
Сообщить("Заполните все поля.");
Возврат;
КонецЕсли;
Убедитесь, что процедура ЗаполнитьКурс вызывается корректно и обновляет значение поля "Курс".
NoNameУченик (149) 1 неделю назад
Да действительно показывает что 0, а что делать?
Татьяна Просветленный (32636) NoName, Проблема, по-видимому, заключается в том, что поле "Курс" не заполняется правильно при выборе валюты. Необходимо убедиться, что процедура, которая подставляет значение курса, вызывается корректно. Проверьте код в обработчике события изменения значения поля "ВалютаИз", чтобы убедиться, что курс подставляется автоматически.
 Процедура ВалютаИзИзменилась(Элемент) 
    // Ваш код для получения курса 
    Курс = ПолучитьКурс(Элемент.Значение);  
    Если Курс <> 0 Тогда 
        Объект.Курс = Курс; 
    Иначе 
        Объект.Курс = 0; 
    КонецЕсли; 
КонецПроцедуры 
 
ТатьянаПросветленный (32636) 1 неделю назад
Убедитесь, что функция ПолучитьКурс возвращает правильное значение курса для выбранной валюты.
 Функция ПолучитьКурс(Валюта) 
// Ваш код для получения курса из справочника или другой таблицы
Запрос = Новый Запрос;
Запрос.Текст = "
ВЫБРАТЬ
Курс
ИЗ
Справочник.КурсыВалют
ГДЕ
Валюта = &Валюта";
Запрос.УстановитьПараметр("Валюта", Валюта);
Результат = Запрос.Выполнить().Выбрать();

Если Результат.НайтиСледующий() Тогда
Возврат Результат.Курс;
Иначе
Возврат 0;
КонецЕсли;
КонецФункции
Похожие вопросы