Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 17:21

Простой отчет по начислениям и удержаниям через СКД

Автор retk213, 19 апр 2018, 15:47

0 Пользователей и 1 гость просматривают эту тему.

retk213

В общем надо сделать табличку такого вида:



Делаю запрос такой в СКД:

ВЫБРАТЬ
   Начисления.Сотрудник КАК Сотрудник,
   Начисления.Результат КАК Начислено,
   Начисления.ПериодДействияНачало КАК Начало,
   Начисления.ПериодДействияКонец КАК Окончание,
   Начисления.ВидРасчета КАК ВидНачисления,
   Удержания.ВидРасчета КАК ВидУдержания,
   Удержания.Результат КАК Удержано
ИЗ
   РегистрРасчета.Начисления КАК Начисления
      ПОЛНОЕ СОЕДИНЕНИЕ РегистрРасчета.Удержания КАК Удержания
      ПО Начисления.Сотрудник = Удержания.Сотрудник
ГДЕ
   Начисления.ПериодДействияНачало >= &ДатаНачала
   И Начисления.ПериодДействияКонец <= &ДатаКонца

СГРУППИРОВАТЬ ПО
   Начисления.Сотрудник,
   Начисления.Результат,
   Начисления.ПериодДействияНачало,
   Начисления.ПериодДействияКонец,
   Начисления.ВидРасчета,
   Удержания.ВидРасчета,
   Удержания.Результат


Получаю данные в таком примерно виде (видно что НДФЛ задвоился по сотрудникам):





То есть в принципе там через вычисляемые поля проверяя когда ВидРасчета="Оклад" например я могу сделать отдельные параметры НачисленоОклад, НачисленоПроцент, НачисленоСумма и т.д. Хотя это и костыли походу. Но еще бесит, что в удержаниях НДФЛ задваевается. При таком запросе получается что для каждого вида начисления сотруднику будет удержание данного сотрудника и при простом суммировании - получается неправильная сумма удержаний. Наверно тоже можно через костыли это сделать, но может как-то по другому можно?



alex0402

Цитата: retk213 от 19 апр 2018, 15:47ИЗ
   РегистрРасчета.Начисления КАК Начисления
      ПОЛНОЕ СОЕДИНЕНИЕ РегистрРасчета.Удержания КАК Удержания
      ПО Начисления.Сотрудник = Удержания.Сотрудник

избегайте полных соединений.
в данном случае:
ВЫБРАТЬ РАЗЛИЧНЫЕ Сотрудник ПОМЕСТИТЬ ВТСотрудник ИЗ РегистрРасчета.Начисления
ОБЪЕДИНИТЬ
ВЫБРАТЬ РАЗЛИЧНЫЕ Сотрудник ИЗ РегистрРасчета.Удержания

;

ВЫБРАТЬ Сотрудник, остальные поля
ИЗ ВТСотрудник
Левое Соединение РегистрРасчета.Начисления
ПО Условие
Левое Соединение РегистрРасчета.Удержания
ПО Условие
Спасибо за Сказать спасибо

retk213

Спасибо большое за подсказку. Правда не сразу разобрался как это сделать в СКД, но вроде сделал, получилось так:

ВЫБРАТЬ РАЗЛИЧНЫЕ
   Начисления.Сотрудник КАК Сотрудник
ПОМЕСТИТЬ ВТСотрудник
ИЗ
   РегистрРасчета.Начисления КАК Начисления

ОБЪЕДИНИТЬ

ВЫБРАТЬ РАЗЛИЧНЫЕ
   Удержания.Сотрудник
ИЗ
   РегистрРасчета.Удержания КАК Удержания
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТСотрудник.Сотрудник КАК Сотрудник,
   Начисления.ВидРасчета КАК ВидНачисления,
   Начисления.Результат КАК Начислено,
   Удержания.ВидРасчета КАК ВидУдержания,
   Удержания.Результат КАК Удержано
ИЗ
   ВТСотрудник КАК ВТСотрудник
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.Начисления КАК Начисления
      ПО ВТСотрудник.Сотрудник = Начисления.Сотрудник
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.Удержания КАК Удержания
      ПО ВТСотрудник.Сотрудник = Удержания.Сотрудник


Не знаю по какому еще условию объединить, по идее по сотруднику только. Но в результате получается тоже самое в принципе, все равно задваеватся НДФЛ:

Сотрудник      Начислено   Удержано
Вид начисления   Вид удержания      
Иванов      9 000,00   2 340,00
Невыход   НДФЛ              1 170,00
Оклад   НДФЛ   9 000,00   1 170,00
Петров      10 800,00   2 340,00
Процент   НДФЛ   1 800,00   1 170,00
Оклад   НДФЛ   9 000,00   1 170,00
Сидоров      11 000,00   2 080,00
Оклад   НДФЛ   8 000,00   1 040,00
Сумма   НДФЛ   3 000,00   1 040,00
Итого      30 800,00   6 760,00


Добавлено: 19 апр 2018, 21:58


В общем вроде разобрался, может кому и пригодится. Сделал в СКД два Набора Данных:

НаборДанных1


ВЫБРАТЬ РАЗЛИЧНЫЕ
   Начисления.Сотрудник КАК Сотрудник
ПОМЕСТИТЬ ВТСотрудник
ИЗ
   РегистрРасчета.Начисления КАК Начисления

ОБЪЕДИНИТЬ

ВЫБРАТЬ РАЗЛИЧНЫЕ
   Удержания.Сотрудник
ИЗ
   РегистрРасчета.Удержания КАК Удержания
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТСотрудник.Сотрудник КАК Сотрудник,
   Начисления.ВидРасчета КАК ВидНачисления,
   Начисления.Результат КАК Начислено
ИЗ
   ВТСотрудник КАК ВТСотрудник
      ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрРасчета.Начисления КАК Начисления
      ПО ВТСотрудник.Сотрудник = Начисления.Сотрудник



НаборДанных2



ВЫБРАТЬ РАЗЛИЧНЫЕ
   Начисления.Сотрудник КАК Сотрудник
ПОМЕСТИТЬ ВТСотрудник
ИЗ
   РегистрРасчета.Начисления КАК Начисления

ОБЪЕДИНИТЬ

ВЫБРАТЬ РАЗЛИЧНЫЕ
   Удержания.Сотрудник
ИЗ
   РегистрРасчета.Удержания КАК Удержания
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТСотрудник.Сотрудник КАК Сотрудник,
   Удержания.ВидРасчета КАК ВидУдержания,
   Удержания.Результат КАК Удержано
ИЗ
   ВТСотрудник КАК ВТСотрудник
      ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрРасчета.Удержания КАК Удержания
      ПО ВТСотрудник.Сотрудник = Удержания.Сотрудник






И в "Связи наборов данных" в "Выражение источник" / "Выражение приемник"  поставил Сотрудник

И вроде заработало как надо, добавил группировку таблицу в настройках:





И получил почти такую таблицу как надо. Не знаю наверно теперь через макет ее надо будет подогнать по оформлению:








Похожие темы (5)

Рейтинг@Mail.ru

Поиск