1С Режим Конфигуратор


Дополнение


Создаем форму документа. Поля АвторДокумента и Курс сделаем недоступными. В полях валюта и ДатаКурса в формуле укажем процедуру Валюта().

Разместим реквизиты формы документа в более-менее приемлемом виде.


В модуле формы напишем:

Перем СтВалюта;

Перем СтДатаКурса;

Перем СтКурс;

//Переменные для пересчета суммы при изменении валюты документа

//==========================================================

Процедура ВводНового()

АвторДокумента=СокрЛП(ИмяПользователя());

  ФирмаДокумента=Константа.ОснФирма;

  Валюта=Константа.ОснВалюта;

  ДатаКурса=ДатаДок;

  Курс=1;

// Заполняем значения по умолчанию

  СтВалюта=Валюта;

  СтДатаКурса=ДатаКурса;

  СтКурс=Курс;

КонецПроцедуры

//==========================================================

Процедура ПриОткрытии()

  СтВалюта=Валюта;

  СтДатаКурса=ДатаКурса;

  СтКурс=Курс;

  ПриЗаписиПерепроводить(1);

// При записи изменений перепроводить обязательно

КонецПроцедуры

//==========================================================

Процедура Валюта()

  КурсС=СтКурс;

  КратС=СтВалюта.Кратность;

  КурсН=Валюта.Курс.Получить(ДатаКурса);

  КратН=Валюта.Кратность;

  Коэфф=Окр((КурсС*КратН)/(КурсН*КратС),6,1);

// Переводим в валюту документа

  Курс=КурсН;

  Сумма=Окр(Сумма*Коэфф,2,1);

// Пересчитываем сумму

  СтВалюта=Валюта;

  СтДатаКурса=ДатаКурса;

  СтКурс=Курс;

КонецПроцедуры


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

Процедура ОбработкаПроведения()

  КурсД=Курс;

  КратД=Валюта.Кратность;

  КурсУ=Константа.ОснВалюта.Курс.Получить(ДатаДок);

  КратУ=Константа.ОснВалюта.Кратность;

  Коэфф=Окр((КурсД*КратУ)/(КурсУ*КратД),6,1); // переводим в валюту документа




Начало  Назад  Вперед



Книжный магазин