ОУ:
1 РН Взаиморасчеты, изм. Контрагент, Проект, рек. Сумма. Док. Приход делает приход, док. РТУ - делает расход
БУ:
сч. Товары, ПУ количественный (для списания) - суб Номенклатура, ПУС - суммовой (для себестоимости), ИнвНомер.
сч. ПрибылиУбытки, суб. Номенклатура Инв.номер, оборотные (для отчета)
Итого: на сч. Товары хранятся остатки в разрезе Номен. и Инв. Себестоимость только в разрезе Ном. На сч. ПрибылиУбытки продажи в разрезе Ном. и Инв.
Запрос по остаткам с 2 итогами
запрос для отчета по ДвиженияССубконто соед. внутр. с собой
СПР:
РС Графики, изм. Дата, График, рес. Значение.
ПВР ОсновныеНачисления, Использует период действия, от базы не зависит. Элемент Оклад
ПВР ДопНачисления. От базы не зависит. Элемент Премия
РР ОсновныеНачисления, ПериодДействия, связь с графиком. Изм. Сотрудник, Подразделение (совместительство), рес. Результат, рек. График (связь с графиком), Размер
РР ДопНачисления. Изм. Сотрудник, рес. Результат, рек. Размер (сумма продаж из РБ по Подразделение оборотное, суммвое субконто сч. ПрибылиУбытки)
Отчет: Объединение двух РР. Осн. начисления - вирт. таблица ДанныеГрафика. В СКД группировка по подр. и сотруднику
Просмотрел Ваше решение, вроде всё неплохо. Что смутило - в обработке проведения документа НачислениеЗарплаты Вы сначала получаете минимальную и максимальную дату внесенных месяцев по надбавке (для последующего ограничения периода оборотного регистра бухгалтерии) - это правильно, но затем просто по подразделению,указанному в табличной части подтягиваете данные из регистра. Здесь, наверно, нужно установить периодичность регистра месяц и делать связь и по периоду. У Вас сейчас получается, что если внести данные за три разных месяца в документе, то сумма продаж подтянется для каждой строки за все три месяца, что не правильно.
И еще - если внести в документ только Оклад, а надбавку не указывать, то будет ошибка при проведении. У Вас всё равно результат запроса, где Вы находите минимальную и максимальную дату будет не пустой, но значениями переменных структуры ДатаНачала и ДатаОкончания будет Null. Я просто делал проверку, если ДопНачисления.Количество()>0 Тогда рассчитывал допначисления