Сдавал этот билет 02 ноября (разумеется дистанционно); вчера прилетел ответ "Оценка 5", без комментария. Я немного затроил с отчётом по расчёту ЗП, - запутался в строках, колонках кросс-таблицы и вместо этого махнул руками и сделал вообще без кросс-таблицы. Оценку не снизили - экзаменатору явно понравился алгоритм списания, исключающий проблему копеек на валютном счёте:
Если СуммаПоДокументу <= Окр(ВыборкаОбщийИтог.СуммаРасч, 2) Тогда
ВыборкаДетальныеЗаписи = ВыборкаОбщийИтог.Выбрать();
ОсталосьСписать = СуммаПоДокументу;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Движение = Движения.Управленческий.Добавить();
Движение.СчетДт = ПланыСчетов.Управленческий.Касса;
Движение.СчетКт = ПланыСчетов.Управленческий.Покупатели;
Движение.Период = Дата;
Движение.Сумма = Мин(ВыборкаДетальныеЗаписи.СуммаРасч, ОсталосьСписать); //как тут выше писали, в соотв. с отчётом отриц. рублёвый остаток может быть и при нулевом валютном
//далее если хватает, то списать всю вал сумму, иначе часть валютной пропорционально рублёвому остатку.
Движение.СуммаВалКт = ?(ВыборкаДетальныеЗаписи.СуммаРасч >= ОсталосьСписать, ВыборкаДетальныеЗаписи.СуммаВалОстатокДт, ОсталосьСписать/ВыборкаДетальныеЗаписи.Курс);
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Контрагент] = Контрагент;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Договор] = ВыборкаДетальныеЗаписи.Субконто2;
ОсталосьСписать = ОсталосьСписать - Движение.СуммаВалКт ;
КонецЦикла;
Иначе
Отказ =Истина;
Сообщить("Реальная сумма составляет " + Окр(ВыборкаОбщийИтог.СуммаРасч, 2));
КонецЕсли;
ОУ: По среднему делал приход на пустую партию, остальное всё банально. Нюанс: проверка на пустую партию в приходной, а не в расходной.
БУ: Субконто Контрагент, Договор, валюта через точку от Договора (реквизит). Отдельное субконто Контрагент нужно для задания УФ. При корректировке задолженности проверка, чтобы |Разница| было больше или равно 0,01 (иначе появится много записей с руб. суммой 0,01) Ещё нюанс, на который потерял много времени: в отчёте БУ и КорректировкеЗадолженности по привычке брал остаткокДт/оборотДт, а надо просто СуммаОстаток и СуммаВалОстаток.
ОУ и БУ: красивости не наводил, Сумму с Количеством не группировал, - просто не успел.
СПР: всё банально, вечерние часы отдельным видом расчёта, базовые Оклад и Командировка но про сторно ("данные могут вводиться задним числом" ) условие кажись убрали (или я его не реализовывал) UPD: условие про сторно - ЕСТЬ, в соответствии с темой по поправки к Актуальным билетам.
Готовился с нуля, по темам первых 6 билетов с этого форума, (с поправками к Актуальным билетам: forum.chistov.pro/index.php?topic=3953.msg53929#msg53929 ), семинар самого Чистова по расчётным задачам (в 2009 году, 5 видео-занятий, они есть в интернете - это самое толковое объяснение расчётных задач),статьи с Инфостарта, статья Гилёва про управляемые блокировки.