Отчет свод НДФЛ задваивает сумму начиленной заработной платы - Каминсофт

Отчет свод НДФЛ задваивает сумму начиленной заработной платы

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


То, что идет после "ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ" выдает две записи из регистра КадровыеСведенияСрезПоследних при описанных мною условиях.
А если, например сотрудинка два раза принимали и увольняли а потом снова приняли то три записи и т.д.
Таким образом БазаДляНДФЛОбороты.СуммаОборот задваивается, затраивается и т.д.

Разработчикам как я думаю надо делать еще один вложенный запрос из КадровыеСведенияСрезПоследних на &НачДата у которых дата увольнения заполнена (сотрудник уволен) и исключать эти записи из этого подзапроса выше, тогда будет работать корректно
Тема закрыта.
Спасибо сказали: Андрей Ланьшин
16 март 2016 09:17 #2
от БухСервис
Решил эту проблему проще - сгруппировал эти данные из подзапроса. Ниже текст запроса с омими добавленными строками, так отчет работает корректно.

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

Опрос
Всего 3 простых вопроса

Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie и пользовательских данных в целях функционирования сайта, проведения ретаргетинга и статистических исследований, обзоров. Если вы не хотите, чтобы ваши данные обрабатывались, покиньте сайт.

Принять