Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 июн 2021, 04:25

Пересчет в другую валюту во время переноса данных.

Автор VladimirMelnychenko, 30 сен 2016, 15:05

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

VladimirMelnychenko

Здравствуйте.

Прошу помочь мне с решением одной проблемы.
Во время переноса данных через универсальный обмен XML возникла проблема следующего характера: в базе источнике есть реквизит "СуммаДокумента" в базе приемнике нужно заполнить табличную часть с колонками "СуммаРасчетов" - в валюте управленческого учета и "Сумма" - в валюте документа. Колонка "Сумма" заполняется без проблем, данными из реквизита "СуммаДокумента", а вот как заполнить "СуммаРасчетов", не могу сообразить. Скажите пожалуйста как можно получить курс валюты во время загрузки данных в базу приемник, или как совершить пересчет в валюту управленческого учета?

VladimirMelnychenko

Спасибо. Решилось, курс получил через запрос. Возник следующий вопрос, если у меня документы с разными валютами, вызов запроса нужно совершать при загрузке каждого объекта?

LexaK

конечно при загрузке можно получить какие-то значения и держать их в параметрах.
но в вашем случае это не подойдет и вот почему.
Если Вы грузите документы за какой-то период, то даты у документов (даже с одной валютой) будут разные, соответственно и курс может меняться.
что бы не плодить код в разных документах, где надо пересчитывать валюту,
можете оформить его в отдельный Алгоритм (Конвертация 2.1 закладка Алгоритмы\Запросы)
Помогло? - Нажми СПАСИБО (под аватаром) !!!
                       :)

VladimirMelnychenko

Подскажите пожалуйста как записать полученные данные в табличную часть объекта приемника. В ПКО "После загрузки" написал нижеуказанный код, но запись в ТЧ не происходит. Подскажите причину пожалуйста.

"После загрузки":
Валюта = Объект.ВалютаДенежныхСредств;
Запрос = Новый Запрос;
Запрос.Текст =
      "ВЫБРАТЬ
      |   КурсыВалютСрезПоследних.Курс
      |ИЗ
      |   РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних
      |ГДЕ
      |   КурсыВалютСрезПоследних.Валюта = &Валюта";
   
   Запрос.УстановитьПараметр("Валюта", Валюта);
   
   РезультатЗапроса = Запрос.Выполнить();
   
   ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
   
   ВыборкаДетальныеЗаписи.Следующий();    
     
   Объект.РасшифровкаПлатежа[0].Кратность = 1;
   Объект.РасшифровкаПлатежа[0].Курс = 1;
   Объект.РасшифровкаПлатежа[0].СуммаПлатежа = Объект.СуммаДокумента;
   Объект.РасшифровкаПлатежа[0].СуммаРасчетов = Объект.СуммаДокумента *             
ВыборкаДетальныеЗаписи.Курс;

Добавлено: 03 окт 2016, 15:40


Спасибо за помощь. Все решилось. Оказалось что в конфигурации приемнике в случае если установлен режим разноса поступления "Автоматически", при записи происходит очистка ТЧ "РасшифровкаПлатежа", задал режим "Вручную", документы провелись нормально.

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск