0 комментариев

Добрый день. Не уверен, что задача решена правильно.

Документ «Приход денег». В описании решения сказано:

В документе «Приход денег» в задании явно не указано, но данные в отчете подсказывают
нам, что списание происходит именно по валютной сумме, а не рублевой

А в коде:

Превышение = СуммаОплаты — ВыборкаИтоги.ВалютныйОстатокВРублях;
Если Превышение > 0 Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = «Сумма оплаты превышает имеющийся долг контрагента на » + Превышение;
Сообщение.Сообщить();
Отказ = Истина;
Возврат;
КонецЕсли;

Так же в коде:

Если ОсталосьСписать >= Выборка.ВалютныйОстатокВРублях Тогда
// списывается вся валютная сумма
СписываемВВалюте = Выборка.ВалютныйОстаток;
СписываемВРублях = Выборка.ВалютныйОстатокВРублях;
Иначе // списывается часть валютной суммы
СписываемВРублях = ОсталосьСписать;
СписываемВВалюте = ? (Выборка.Курс = 0, 0, СписываемВРублях / Выборка.Курс);
КонецЕсли;

Зачем списывать валютную сумму в пропорции рублевой?

Остатки по валюте выводятся в ноль документом — «Приход денег».

Остатки в рублях выводятся в ноль документами — «Приход денег» и «Операция».

Я думаю нужно контролировать списание именно в валюте.

Сумму в рублях записывать как валютную сумму по курсу на момент документа.

Решенный вопрос
К сожалению, у вас нет прав на чтение комментариев.