Посмотри и мое - будем в расчете
Что ж, я посмотрел, хорошее решение)
Мои комментарии:
СПР
1. НачислениеЗарплаты
Не понятно, зачем в начале метода рассчитать очистка движений:
Процедура Рассчитать() Экспорт
НачатьТранзакцию();
Движения.ОН.Записывать = Истина;
Движения.ДН.Записывать = Истина;
Движения.ОН.Очистить();
Движения.ДН.Очистить();
2. Логично убрать Подразделение из измерений РС СведенияОСотрудниках (перенести в реквизиты), т.к. по условиям задачи Каждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускается.
3. В документе НачислениеЗарплаты в методе Рассчитать() в запросе ты не упорядочиваешь по номеру строки, в результате порядок строк в наборе и в ТЧ может отличаться, а ты позиционируешься потом по номеру строки набора на строке ТЧ (в общем модуле Расчет).
4. Расчет.Расчитать() - не желательно здесь читать набор записей. Желательно передать его из документа. Потому что сейчас так: ты в документе получил набор, записал. В общем модуле ты считал набор, записал. Потом в документе ты чистишь набор и записываешь. Но чистишь и записываешь не ту версию, которая была записана в общем модуле, а ту, которая была записана в документе. Т.е. работаешь с неактуальным набором. Я точно не уверен, но вроде могут быть блокировки из-за попытки записать неактуальный набор.
4. БП: Удобнее в форме бизнес-процесса сделать еще кнопку для обновления карты.
5. В приходной, насколько я понял, есть возможность оприходовать услуги