ErrorPro,
1. В свойствах конфигурации режим управления блокировками установлен в Автоматический, а нужно в управляемый.
2. Не нужно в обработке проведения приходной накладной выгружать в ТЗ результат запроса для формирования движений.
3. Движения.ОстаткиНоменклатуры.Очистить();
Движения.ОстаткиНоменклатуры.Записать();
Достаточно Записать().
4. В обработке проведения расходной накладной блокировать нужно не только по номенклатуре, но и по складу. Блокировку ты описал, а заблокировать забыл.
5. ЕСТЬNULL(ДОКТЧ.Количество, 0) КАК Количество,
ЕСТЬNULL(ДОКТЧ.Сумма, 0) КАК Сумма
Не надо здесь проверять на Null.
Номенклатура В
(ВЫБРАТЬ ДокТЧ.Номенклатура ИЗ ДокТЧ) И Партия В (ВЫБРАТЬ ДокТЧ.Партия ИЗ ДокТЧ КАК ДокТЧ), надо так: (Номенклатура, Партия) В (ВЫБРАТЬ ДокТЧ.Номенклатура, ДокТЧ.Партия ИЗ ДокТЧ КАК ДокТЧ).
ПО (Остатки.Номенклатура = ДОКТЧ.Номенклатура) И (Остатки.Партия = ДОКТЧ.Партия). Второе условие соединения таблиц является избыточным.
6. ВыборкаДетальная = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Можно просто Выборка.Выбрать()
7. В регистр Продажи услуги у тебя не попадут.
Отчеты не смотрел.