Если сотрудник был принят на работу, потом уволоен а потом снова принят, то отчет "Свод НДФЛ" задваивает сумму начисленной заработной платы.
Ошибка тут -
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| "+л_ПолеМесяц1+"
| "+л_ПолеФирма1+"
| БазаДляНДФЛОбороты.Сотрудник КАК Сотрудник,
| БазаДляНДФЛОбороты.Сотрудник.Наименование КАК СотрудникНаименование,
| ВложенныйЗапрос.ТабНомер КАК ТабНомер,
| ВложенныйЗапрос.СтатусНалогоплательщика КАК СтатусНалогоплательщика,
| БазаДляНДФЛОбороты.ТипДохода КАК ТипДохода,
| БазаДляНДФЛОбороты.Подразделение КАК Подразделение,
| БазаДляНДФЛОбороты.Подразделение.Наименование КАК ПодразделениеНаименование,
| БазаДляНДФЛОбороты.ИсточникДоходов КАК ИсточникДоходов,
| БазаДляНДФЛОбороты.СуммаОборот КАК Доход,
| 0 КАК Налог,
| БазаДляНДФЛОбороты.СуммаСкидкиОборот КАК Скидка,
| 0 КАК Вычет
|ИЗ
| РегистрНакопления.БазаДляНДФЛ.Обороты(
| &НачДата,
| &КонДата, "+л_ГруппировкаМесяц+"
| ,
| "+л_Условие+"
| ) КАК БазаДляНДФЛОбороты
|
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| "+л_ПолеФирма+"
| ЕстьNUll(КадровыеСведенияСрезПоследних.Сотрудник,ГражданствоСотрудниковСрезПоследних.Сотрудник) КАК Сотрудник,
| КадровыеСведенияСрезПоследних.ТабНомер КАК ТабНомер,
| ГражданствоСотрудниковСрезПоследних.СтатусНалогоплательщика КАК СтатусНалогоплательщика
|ИЗ
| РегистрСведений.КадровыеСведения.СрезПоследних(
| &КонДата,
| "+л_УсловиеФирма+"
| ) КАК КадровыеСведенияСрезПоследних
| ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ГражданствоСотрудников.СрезПоследних(&КонДата, ) КАК ГражданствоСотрудниковСрезПоследних
| ПО КадровыеСведенияСрезПоследних.Сотрудник = ГражданствоСотрудниковСрезПоследних.Сотрудник
| ) КАК ВложенныйЗапрос
| ПО БазаДляНДФЛОбороты.Сотрудник = ВложенныйЗапрос.Сотрудник
| "+л_СоединениеФирма+"
|
|ОБЪЕДИНИТЬ ВСЕ
То, что идет после "ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ" выдает две записи из регистра КадровыеСведенияСрезПоследних при описанных мною условиях.
А если, например сотрудинка два раза принимали и увольняли а потом снова приняли то три записи и т.д.
Таким образом БазаДляНДФЛОбороты.СуммаОборот задваивается, затраивается и т.д.
Разработчикам как я думаю надо делать еще один вложенный запрос из КадровыеСведенияСрезПоследних на &НачДата у которых дата увольнения заполнена (сотрудник уволен) и исключать эти записи из этого подзапроса выше, тогда будет работать корректно