Процедура ОбработкаПроведения(Отказ, Режим) СторнируемыеДвижения = РегистрыБухгалтерии.Хозрасчетный.ВыбратьПоРегистратору(СторнируемыйДокумент); Пока СторнируемыеДвижения.Следующий() Цикл Проводка = Движения.Хозрасчетный.Добавить(); Проводка.Период = Дата; Проводка.СчетДт = СторнируемыеДвижения.СчетДт; Проводка.СчетКт = СторнируемыеДвижения.СчетКт; Для каждого Субконто Из СторнируемыеДвижения.СубконтоДт Цикл Проводка.СубконтоДт[Субконто.Ключ] = Субконто.Значение; КонецЦикла; Для каждого Субконто Из СторнируемыеДвижения.СубконтоКт Цикл Проводка.СубконтоКт[Субконто.Ключ] = Субконто.Значение; КонецЦикла; Проводка.ВалютаДт = СторнируемыеДвижения.ВалютаДт; Проводка.ВалютаКт = СторнируемыеДвижения.ВалютаКт; Проводка.ВалютнаяСуммаДт = - СторнируемыеДвижения.ВалютнаяСуммаДт; Проводка.ВалютнаяСуммаКт = - СторнируемыеДвижения.ВалютнаяСуммаКт; Проводка.КоличествоДт = - СторнируемыеДвижения.КоличествоДт; Проводка.КоличествоКт = - СторнируемыеДвижения.КоличествоКт; Проводка.НомерЖурнала = СторнируемыеДвижения.НомерЖурнала; Проводка.Организация = СторнируемыеДвижения.Организация; Проводка.Содержание = СторнируемыеДвижения.Содержание; Проводка.Сумма = - СторнируемыеДвижения.Сумма; КонецЦикла; Движения.Хозрасчетный.Записать(); КонецПроцедуры
ВЫБРАТЬ ХозрасчетныйОбороты.Организация КАК Организация, ХозрасчетныйОбороты.Счет КАК Счет, ХозрасчетныйОбороты.Валюта, ХозрасчетныйОбороты.СуммаОборотДт, ХозрасчетныйОбороты.ВалютнаяСуммаОборотДт, ХозрасчетныйОбороты.СуммаОборотКт, ХозрасчетныйОбороты.ВалютнаяСуммаОборотКт ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач, &ДатаКон, , Счет.Валютный, , , , ) КАК ХозрасчетныйОбороты УПОРЯДОЧИТЬ ПО Организация, ХозрасчетныйОбороты.Счет.Код
"ВЫБРАТЬ | ХозрасчетныйОстатки.Счет, | ПРЕДСТАВЛЕНИЕ(ХозрасчетныйОстатки.Счет), | ХозрасчетныйОстатки.ВалютнаяСуммаОстатокДт КАК ВалютнаяСуммаОстатокДт, | ХозрасчетныйОстатки.Счет.Порядок КАК СчетПорядок, | ХозрасчетныйОстатки.Валюта КАК Валюта, | ПРЕДСТАВЛЕНИЕ(ХозрасчетныйОстатки.Валюта) |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет.Валютный И Счет.Вид = &Активный, ,) КАК ХозрасчетныйОстатки |УПОРЯДОЧИТЬ ПО | СчетПорядок |ИТОГИ | СУММА(ВалютнаяСуммаОстатокДт) |ПО | Валюта"; Запрос.УстановитьПараметр("Активный", ВидСчета.Активный); Запрос.УстановитьПараметр("Дата", Дата);
Функция ПересчетСуммыПоКурсу(ВалютнаяСумма, Валюта, Дата) Экспорт Запись = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(Дата, Новый Структура("Валюта", Валюта)); Сумма = ВалютнаяСумма * Запись.Курс / Запись.Кратность; Возврат Сумма; КонецФункции
Функция ПересчетСуммыПоКурсу(ВалютнаяСумма, Валюта, Дата) Экспорт Запись = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(Дата, Новый Структура("Валюта", Валюта)); Сумма = ВалютнаяСумма * Запись.Курс; Если Запись.Кратность <> 0 Тогда Сумма = Сумма / Запись.Кратность; КонецЕсли; Возврат Сумма; КонецФункции //Пример обращения ВалютДол=Справочники.Валюты.НайтиПоНаименованию("USD"); ВалютнаяСумма=1000; Сумм=ПересчетСуммыПоКурсу(ВалютнаяСумма, ВалютДол, ДатаДокумента);