Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Простейшая конвертация валюты
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
hveydrung
1с 8.2 Пишу с 0. Так как нужна самая минимальная функция.

Кто подскажет как осуществить задуманное.


Есть три поля
Объект.ЦінаОптова -Объект.ЦінаРознічна -Объект.ЦінаДоллар

Задумка такая чтобы- цена выставлялась в поле Объект.ЦінаДоллар и потом от этой цены выставлялись остальные цены как ниже я привел. Сделал пока так Так как уже не знаю где рыть чтобы курс валюты указывался из поля. Ставил поле ссылкой из другого справочника данные не считываются.

Процедура ЦінаДолларПриИзменении(Элемент)
    Объект.ЦінаОптова=Объект.ЦінаДоллар*27-24;
    Объект.ЦінаРознічна=Объект.ЦінаДоллар*27;


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

Процедура ПередНачаломРаботыСистемы()
    Объект.ЦінаОптова=Объект.ЦінаДоллар*100-24;
    Объект.ЦінаРознічна=Объект.ЦінаДоллар*100;
КонецПроцедуры


матерится

Цитата
{МодульУправляемогоПриложения(2,2)}: Переменная не определена (Объект)
<<?>>Объект.ЦінаОптова=Объект.ЦінаДоллар*100-24; (Проверка: Тонкий клиент)
{МодульУправляемогоПриложения(2,20)}: Переменная не определена (Объект)
Объект.ЦінаОптова=<<?>>Объект.ЦінаДоллар*100-24; (Проверка: Тонкий клиент)
{МодульУправляемогоПриложения(3,2)}: Переменная не определена (Объект)
<<?>>Объект.ЦінаРознічна=Объект.ЦінаДоллар*100; (Проверка: Тонкий клиент)
{МодульУправляемогоПриложения(3,22)}: Переменная не определена (Объект)
Объект.ЦінаРознічна=<<?>>Объект.ЦінаДоллар*100; (Проверка: Тонкий клиент)


В итоге 2 вопроса.
1. Как сделать чтобы пользователь мог сам назчать цену за доллар (из справочника или другого источника)
2. Как сделать чтобы процедура срабатывала при загрузке базы данных и пересчитывала цены.
denis84
Добрый день! Я делал так, создал регистр сведений курс валют, где хранятся все курсы валюты. А потом при выборе валюты, получаю курс и рассчитываю сумму в гривнах.
Например вот так:
Процедура ВалютаПриИзменении(Элемент)
    Запрос = Новый Запрос();
    Запрос.Текст = "ВЫБРАТЬ
                   |    КурсыВалютСрезПоследних.Курс КАК Курс
                   |ИЗ
                   |    РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта = &Валюта) КАК КурсыВалютСрезПоследних";
    Запрос.УстановитьПараметр("Дата", НачалоДня(Дата));
    Запрос.УстановитьПараметр("Валюта", Валюта);
    
    РезультатЗапроса = Запрос.Выполнить().Выбрать();
    РезультатЗапроса.Следующий();
    ЭлементыФормы.КурсВалюты.Значение =  РезультатЗапроса.Курс;
КонецПроцедуры

Процедура СуммаВалПриИзменении(Элемент)
    Сумма = СуммаВал/100*КурсВалюты;
КонецПроцедуры
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.