Белоусов использование новой методики в БУ не запрещает ))) когда это получается по условиям задачи. Правда, такие условия редко бывают )))
если на счёте товары учитывались бы только остатки товаров - без расчёта себестоимости на счёте Товары
СПР. Не ошибка. Структуру регистра "Значения окладов" можно было бы упростить - вместо одного измерения "МинимальноеКоличествоЧасов" добавить 2 - "От" и "ДоВключительно". Проще и нагляднее получать запросом оклады. По условию задачи - в строках написано "от" и "до".
СПР. При получении окладов "ВыборкаСледующий" у вас без "Если". А если нет ничего следующего, то в "Выборка" будет непонятно что - скорее всего ошибка. А это вполне возможно.
Выборка.НайтиСледующий(движ.НомерСтроки,"НомерСтроки");
движ.Размер = Выборка.Оклад;
движ.ФактЧасы = Выборка.ФактЧасы;
Если ВЫборка.ПланЧасы = 0 Тогда
СПР.
| ЕСТЬNULL(тГраф.ЗначениеПериодДействия, 0) КАК ПланЧасы,
| ЕСТЬNULL(тГраф.ЗначениеФактическийПериодДействия, 0) КАК ФактЧасы,
Не ошибка. Т.к. вы в данной виртуальной таблице ни с чем не соединяете, то Null и не будет. Если нет данных по графику то "ДанныеГрафика" не выдаст никаких строк вообще. Проверил на своём примере. Если график не заполнен, то запрос вообще пустой.
СПР. Чуть ниже
| ШкалаОкладов.Оклад,
А здесь нужна проверка на NULL т.к. левое соединение. Далее вы этот оклад просто умножаете.
СПР. Ещё на пустой запрос обычно проверяют. Хотя я смысла в этом не вижу если проверять выборку.
БП. Текущий пользователь заполняется из константы, а константа руками. По-моему он должен из пользователя системы ставится.