Зарплата и Управление Персоналом. Версия 2.5.31.4. Информация об ошибках

  Код ошибки: 10077097  
  Дата публикации: 31.03.2011 18:53:00  
  Дата последнего изменения: 31.03.2011 0:00:00  
  Описание: Если в графике работы сотрудника в рабочем дне указано 0 часов, то при заполнении документа "Табель" ячейка на этот день остается пустой и табель не проводится. В ячейке должно указываться "В".  
 
  Код ошибки: 10077613  
  Дата публикации: 31.03.2011 16:17:21  
  Дата последнего изменения: 31.03.2011 0:00:00  
  Описание: При конвертации видов расчета, в ЗУП/ЗБУ у всех видов расчета заполняется реквизит ИдентификаторЭлемента.  
 
  Код ошибки: 10077092  
  Дата публикации: 31.03.2011 16:03:49  
  Дата последнего изменения: 31.03.2011 0:00:00  
  Описание: Если сотруднику введен кадровый документ "Неявки и болезни организаций", то в отчете Табель "Т-13" в выходные дни показывается буква "В", а должна быть "Б".  
 
  Код ошибки: 10068921  
  Дата публикации: 31.03.2011 16:00:51  
  Дата последнего изменения: 31.03.2011 0:00:00  
  Описание: При смене у сотрудника вида расчета "Оплата по производственным нарядам" на вид расчета "Оклад по часам" или наоборот, после ввода документа "Сдельный наряд с учетом времени", в документе "Начисление зарплаты сотрудникам организации" не рассчитываются отработанные дни и суммы по виду расчета "Оклад по часам".  
 
  Код ошибки: 10073978  
  Дата публикации: 25.03.2011 16:25:34  
  Дата последнего изменения: 25.03.2011 0:00:00  
  Описание: При конвертации данных из ЗиК не переносится дата регистрации сотрудника по месту жительства.  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10073975  
  Дата публикации: 25.03.2011 15:45:50  
  Дата последнего изменения: 25.03.2011 0:00:00  
  Описание: При конвертации из ЗиК не переносится характер работы из приказа о приеме на работу.  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10077337  
  Дата публикации: 25.03.2011 15:45:06  
  Дата последнего изменения: 25.03.2011 0:00:00  
  Описание: При конвертации данных из нескольких баз ЗиК, документы по отпуску замещаются, если у них совпадает номер.  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10077593  
  Дата публикации: 25.03.2011 15:44:50  
  Дата последнего изменения: 25.03.2011 0:00:00  
  Описание: При отправке из конфигурации в ФНС при помощи встроенного механизма защищенного документооборота с контролирующими органами файла выгрузки 2-НДФЛ, сформированного в сторонней программе и загруженного в справочник "Электронные представления регламентированных отчетов", ошибочно инициируется документооборот по представлению налоговой или бухгалтерской отчетности вместо документооборота по представлению сведений о доходах по форме 2-НДФЛ.  
  Способ исправления: В функции ОтправкаРегламентированногоОтчетаВФНС534() модуля обработки
ДокументооборотСКонтролирующимиОрганами заменить строку

ЦиклОбмена.Тип = Перечисления.ТипыЦикловОбмена.НалоговаяИлиБухгалтерскаяОтчетность;

на следующую:

ЦиклОбмена.Тип = ТипЦиклаОбмена;
 
  Исправлено в релизе: 2.5.33  
 
  Код ошибки: 10076289  
  Дата публикации: 18.03.2011 16:25:26  
  Дата последнего изменения: 18.03.2011 0:00:00  
  Описание: В декабре зарегистрировали невыходы, в январе зарегистрировали больничный на эти невыходы.
Если в декабре зарегистрировать документ Табель, то после регистрации больничного в отчете Табель за декабрь дни неявки обозначаются как НН, если в декабре не регистрировать документ Табель, то после регистрации больничного в отчете Табель за декабрь неявки обозначаются как Б.
 
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10076544  
  Дата публикации: 18.03.2011 16:24:48  
  Дата последнего изменения: 18.03.2011 0:00:00  
  Описание: При переносе кадровых данных из ЗиК, если по сотруднику последнее отклонение введено документом "Работа в праздники и выходные", возникает сообщение об ошибке.  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10071753  
  Дата публикации: 18.03.2011 16:24:19  
  Дата последнего изменения: 18.03.2011 0:00:00  
  Описание: Регистр сведений "Плановые начисления работников организаций" не включен в подписку на событие "Перед записью регистра сведений для обмена по организации", в результате при переформировании проводок по одной из организаций в сводной базе затраты по договорам ГПХ валятся на иные счета, чем в узле (не на установленные в узле, а на "по умолчанию").  
  Исправлено в релизе: 2.5.33  
 
  Код ошибки: 10076460  
  Дата публикации: 18.03.2011 16:19:18  
  Дата последнего изменения: 18.03.2011 0:00:00  
  Описание: Неверно рассчитывается средняя численность по подразделениям в месяце возврата в прежнее подразделение после временного кадрового перемещения.  
  Исправлено в релизе: 2.5.33  
 
  Код ошибки: 10076597  
  Дата публикации: 18.03.2011 16:19:01  
  Дата последнего изменения: 18.03.2011 0:00:00  
  Описание: Если для увольняющегося сотрудника в день увольнения формировать справку 2-НДФЛ для выдачи на руки, в нее не попадает налог исчисленный/удержанный.  
  Исправлено в релизе: 2.5.33  
 
  Код ошибки: 10070149  
  Дата публикации: 18.03.2011 16:18:46  
  Дата последнего изменения: 18.03.2011 0:00:00  
  Описание: Если сотруднику введен документ оплаты сверхурочных часов, то время сверхурочных автозаполняется в документ "Сдельный наряд", и в документе начисления зарплаты время отработанных часов отражается неверно - уменьшается на количество сверхурочных часов.  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10070247  
  Дата публикации: 18.03.2011 16:18:20  
  Дата последнего изменения: 18.03.2011 0:00:00  
  Описание: Если сотруднику введены документы невыхода, то после автозаполнения сдельного наряда и начисления зарплаты, в расчете неверно показывается количество отработанных часов.  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10072602  
  Дата публикации: 18.03.2011 16:18:06  
  Дата последнего изменения: 18.03.2011 0:00:00  
  Описание: При открытии формы документа "Сдельный наряд", в котором установлен порядок использования данных - по управленческому учету, устанавливается признак модифицированности.  
  Исправлено в релизе: 2.5.33  
 
  Код ошибки: 10075838  
  Дата публикации: 18.03.2011 16:17:49  
  Дата последнего изменения: 18.03.2011 0:00:00  
  Описание: Если в текущем месяце есть исправление Больничного листа, то в документ "Начисление страховых взносов" на закладку "Пособия по соц. страхованию" не попадают сторно суммы по дням за счет работодателя.  
  Исправлено в релизе: 2.5.33  
 
  Код ошибки: 10066075  
  Дата публикации: 18.03.2011 16:17:19  
  Дата последнего изменения: 18.03.2011 0:00:00  
  Описание: В документе "Начисление страховых взносов" для работодателя - индивидуального предпринимателя неверно начисляются взносы на страхование от несчастных случаев с оплаты труда работников-инвалидов: ошибочно применяется льготный тариф.  
  Исправлено в релизе: 2.5.33  
 
  Код ошибки: 10062909  
  Дата публикации: 18.03.2011 16:01:37  
  Дата последнего изменения: 18.03.2011 0:00:00  
  Описание: Если при проведении кадрового документа-исправления будет выдано сообщение об ошибке пользователя и он не проведется, то после устранения проблемы и проведения документа возникает следующая "отложенная" проблема: при попытке отменить проведение этого документа будет выдано сообщение об ошибке.  
  Способ обхода: После неудавшейся отмены проведения необходимо снова провести документ, после чего его можно будет отменить.  
 
  Код ошибки: 10075592  
  Дата публикации: 11.03.2011 19:50:33  
  Дата последнего изменения: 11.03.2011 0:00:00  
  Описание: Для перенесенных из 7.7 кадровых документов доступен механизм исправления.  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10075578  
  Дата публикации: 11.03.2011 19:50:21  
  Дата последнего изменения: 11.03.2011 0:00:00  
  Описание: При печати формы Т-11 из документа "Премии работникам организации", для всех проставляется один и тот же номер, даже если в документе несколько человек. В других формах Т-хх добавляется постфикс.  
  Исправлено в релизе: 2.5.33  
 
  Код ошибки: 10076209  
  Дата публикации: 11.03.2011 19:49:49  
  Дата последнего изменения: 11.03.2011 0:00:00  
  Описание: При конвертации из ЗиК неправильно переносится отработанное время для сторно записей.  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10074653  
  Дата публикации: 11.03.2011 19:49:26  
  Дата последнего изменения: 11.03.2011 0:00:00  
  Описание: В отчете "Унифицированная форма Т-13" (табель) у работника, находящегося в любом из отпусков (введенный документом "Отпуска организаций"), в выходные дни ставится "В", а не "ОТ".  
 
  Код ошибки: 10074080  
  Дата публикации: 11.03.2011 19:49:06  
  Дата последнего изменения: 11.03.2011 0:00:00  
  Описание: После ввода данных по командировке сотрудника в документе "Командировки организаций", в отчете "Табель учета рабочего времени" (унифицированная форма Т-13) выходные во время командировки отмечаются буквой "В", а должны быть "К".  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10074075  
  Дата публикации: 11.03.2011 19:48:33  
  Дата последнего изменения: 11.03.2011 0:00:00  
  Описание: Для сотрудника, который находится в отпуске по уходу за ребенком (вид времени - ОЖ), после начисления зарплаты в отчете табель Т-13 в выходные дни начинает выводится "В", а не "ОЖ".  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10075047  
  Дата публикации: 11.03.2011 19:48:06  
  Дата последнего изменения: 11.03.2011 0:00:00  
  Описание: Если сотруднику ввести данные о норме времени документом "Ввод индивидуальных графиков работы", а затем выполнить начисление зарплаты согласно введенного индивидуального графика, то табель печатается все равно согласно основного графика работы сотрудника.  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10069610  
  Дата публикации: 11.03.2011 19:47:42  
  Дата последнего изменения: 11.03.2011 0:00:00  
  Описание: При переносе в производственном календаре рабочего дня с 5.11.2010 на 13.11.2010, в печатной форме календаря прибавляется еще один рабочий день в ноябре, т.е. 22 вместо 21.  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10070049  
  Дата публикации: 11.03.2011 19:47:26  
  Дата последнего изменения: 11.03.2011 0:00:00  
  Описание: В форме "Регламентированный производственный календарь" некорректно отображается перечень изменений за год.
В случае, если изменений много, а монитор - маленький, весь перечень изменений не отображается на экране.
 
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10073870  
  Дата публикации: 11.03.2011 19:46:14  
  Дата последнего изменения: 11.03.2011 0:00:00  
  Описание: Сотруднику организации, работающему по обычному пятидневному графику с 8-часовым рабочим днем, на одну дату зарегистрированы:
- невыход в организации (внутрисменный невыход, 4 часа, вид начисления - внутрисменный невыход за свой счет, т.е. нулевая сумма);
- регистрация простоев сотрудников организаций (внутрисменный простой, 4 часа, вид простоя - по вине работодателя).
В результате в отчете табель Т-13 неверно выводятся отработанные часы, т.к., помимо простоя и неявки, выводится также явка 4 часа.
 
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10075772  
  Дата публикации: 11.03.2011 19:45:21  
  Дата последнего изменения: 11.03.2011 0:00:00  
  Описание: Документы 2-НДФЛ ошибочно требуют адрес в РФ для резидента-иностранца при наличии адреса в стране проживания.  
  Исправлено в релизе: 2.5.33  
 
  Код ошибки: 10075706  
  Дата публикации: 11.03.2011 19:44:59  
  Дата последнего изменения: 11.03.2011 0:00:00  
  Описание: В файле документа АДВ-2 для пустого места рождения ошибочно заполняется реквизит "Тип места рождения".  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10075140  
  Дата публикации: 11.03.2011 19:44:26  
  Дата последнего изменения: 11.03.2011 0:00:00  
  Описание: В отчете РСВ-1 за 2011 год не заполняется 3 раздел по инвалидам для упрощенной системы налогообложения.  
  Исправлено в релизе: 2.5.33  
 
  Код ошибки: 10075085  
  Дата публикации: 11.03.2011 19:44:12  
  Дата последнего изменения: 11.03.2011 0:00:00  
  Описание: В документе "Справка 2-НДФЛ для передачи в ИФНС" неверно перенумеровываются справки.  
  Исправлено в релизе: 2.5.33  
 
  Код ошибки: 10067965  
  Дата публикации: 11.03.2011 19:44:00  
  Дата последнего изменения: 11.03.2011 0:00:00  
  Описание: Не удавалось отменить исправление кадрового документа, если в исходном документе присутствовало несколько сотрудников.  
  Исправлено в релизе: 2.5.33  
 
  Код ошибки: 10074784  
  Дата публикации: 04.03.2011 16:23:39  
  Дата последнего изменения: 04.03.2011 0:00:00  
  Описание: В некоторых случаях при расчете б/л-продолжений выдавалось сообщение "Не указаны расчетные годы!".  
  Исправлено в релизе: 2.5.33  
 
  Код ошибки: 10070077  
  Дата публикации: 04.03.2011 16:23:17  
  Дата последнего изменения: 04.03.2011 0:00:00  
  Описание: Не предусмотрена возможность подбора не принятых на работу сотрудников в документах "Регистрация разовых начислений" и "Регистрация разовых удержаний".  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10075410  
  Дата публикации: 04.03.2011 16:22:59  
  Дата последнего изменения: 04.03.2011 0:00:00  
  Описание: Распределение НДФЛ производится неточно - возможны ошибки округления в 1 рубль.  
  Исправлено в релизе: 2.5.33  
 
  Код ошибки: 10070723  
  Дата публикации: 04.03.2011 16:22:35  
  Дата последнего изменения: 04.03.2011 0:00:00  
  Описание: После создания новой учетной записи электронной почты через подсказку в обработке "Набор персонала", подсказка не обновляется.  
  Исправлено в релизе: 2.5.33  
 
  Код ошибки: 10074857  
  Дата публикации: 04.03.2011 16:22:23  
  Дата последнего изменения: 04.03.2011 0:00:00  
  Описание: При создании ВР "Отражение в учете за счет работодателя" не устанавливается флажок зачета нормы времени.  
  Исправлено в релизе: 2.5.33  
 
  Код ошибки: 10075175  
  Дата публикации: 04.03.2011 16:19:29  
  Дата последнего изменения: 04.03.2011 0:00:00  
  Описание: При добавлении значения в форме регистра "Значения показателей схем мотивации" в режиме "по центрам ответстветственности", невозможно выбрать сотрудника, не принятого в организацию.  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10073376  
  Дата публикации: 01.03.2011 16:07:27  
  Дата последнего изменения: 01.03.2011 0:00:00  
  Описание: Подбор значений показателей в строке документа "Регистрация разовых начислений сотрудников организаций" происходит медленно на большом количестве сотрудников.  
  Способ исправления: В общем модуле ЗаполнениеДокументовЗК заменить процедуры и функции
- СформироватьЗапросЗначенийПоказателей
- ПоказателиСтроки
- ПоказателиНачисленияУдержания
на

// Процедура формирует в запрос временные таблицы,
// содержащие значения показателей расчета заработной платы
//
Процедура СформироватьЗапросЗначенийПоказателей(Запрос)

ТекстЗапроса =
"ВЫБРАТЬ
| ВТСписокРаботников.Физлицо,
| МИНИМУМ(ВТСписокРаботников.Приоритет) КАК Приоритет
|ПОМЕСТИТЬ ПриоритетыСотрудников
|ИЗ
| ВТСписокРаботников КАК ВТСписокРаботников
|
|СГРУППИРОВАТЬ ПО
| ВТСписокРаботников.Физлицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Работники.Организация,
| Работники.Сотрудник КАК Сотрудник,
| Работники.Физлицо КАК Физлицо,
| Работники.Период КАК Период,
| Работники.Подразделение,
| Работники.Приоритет
|ПОМЕСТИТЬ ВТДвиженияРаботников
|ИЗ
| ВТСписокРаботников КАК Работники
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ПериодыНачислений.Организация,
| ПериодыНачислений.Сотрудник,
| Работники.Физлицо,
| ПериодыНачислений.Период,
| Работники.Подразделение,
| Работники.Приоритет
|ИЗ
| РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ПериодыНачислений
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСписокРаботников КАК Работники
| ПО ПериодыНачислений.Организация = Работники.Организация
| И ПериодыНачислений.Сотрудник = Работники.Сотрудник
| И (ПериодыНачислений.Период >= &парамНачало)
| И (ПериодыНачислений.Период <= &парамКонец)
| И ПериодыНачислений.Период >= Работники.Период
|
|ИНДЕКСИРОВАТЬ ПО
| Физлицо,
| Период
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| КурсыВалютДляРасчетовСПерсоналом.Валюта,
| КурсыВалютДляРасчетовСПерсоналом.Курс,
| КурсыВалютДляРасчетовСПерсоналом.Кратность
|ПОМЕСТИТЬ КурсыВалют
|ИЗ
| РегистрСведений.КурсыВалютДляРасчетовСПерсоналом КАК КурсыВалютДляРасчетовСПерсоналом
|ГДЕ
| КурсыВалютДляРасчетовСПерсоналом.Период = &парамДатаВалютногоУчета
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| Константы.ВалютаРегламентированногоУчета,
| 1,
| 1
|ИЗ
| Константы КАК Константы
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка),
| 1,
| 1
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВидыРасчета.Ссылка КАК ВидРасчета,
| ВидыРасчета.СпособРасчета КАК СпособРасчета,
| ВидыРасчета.ПроизвольнаяФормулаРасчета,
| ВидыРасчета.ТребуетВводаТарифногоРазряда КАК ТребуетВводаТарифногоРазряда
|ПОМЕСТИТЬ ВидыРасчета
|ИЗ
| ПланВидовРасчета.ОсновныеНачисленияОрганизаций КАК ВидыРасчета
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ВидыРасчета.Ссылка,
| ВидыРасчета.СпособРасчета,
| ВидыРасчета.ПроизвольнаяФормулаРасчета,
| ВидыРасчета.ТребуетВводаТарифногоРазряда
|ИЗ
| ПланВидовРасчета.ДополнительныеНачисленияОрганизаций КАК ВидыРасчета
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ВидыРасчета.Ссылка,
| ВидыРасчета.СпособРасчета,
| ВидыРасчета.ПроизвольнаяФормулаРасчета,
| ЛОЖЬ
|ИЗ
| ПланВидовРасчета.УдержанияОрганизаций КАК ВидыРасчета
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВидыРасчета.ВидРасчета КАК ВидРасчета,
| ВидыРасчета.СпособРасчета,
| ВидыРасчета.ТребуетВводаТарифногоРазряда
|ПОМЕСТИТЬ ВидыРасчетаПредопределенныйСпособРасчета
|ИЗ
| ВидыРасчета КАК ВидыРасчета
|ГДЕ
| (НЕ ВидыРасчета.ПроизвольнаяФормулаРасчета)
| И (НЕ ВидыРасчета.СпособРасчета В (ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ПоМесячнойТарифнойСтавкеПоДням), ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ПоМесячнойТарифнойСтавкеПоЧасам), ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ПоЧасовойТарифнойСтавке), ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.СдельныйЗаработок), ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ПоДневнойТарифнойСтавке)))
|
|ИНДЕКСИРОВАТЬ ПО
| ВидРасчета
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Показатели.ВидРасчета КАК ВидРасчета,
| Показатели.НомерПоказателя,
| Показатели.Показатель,
| Показатели.ЗапрашиватьПриКадровыхПеремещениях,
| Показатели.Показатель.Валюта КАК ВалютаПоказателя,
| ВЫБОР
| КОГДА Показатели.Показатель.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.ТарифныйРазряд)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ТипТарифныйРазряд,
| ВЫБОР
| КОГДА Показатели.Показатель.ВозможностьИзменения = ЗНАЧЕНИЕ(Перечисление.ИзменениеПоказателейСхемМотивации.Ежемесячно)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК Ежемесячный
|ПОМЕСТИТЬ ПоказателиВидаРасчета
|ИЗ
| (ВЫБРАТЬ
| Показатели.Ссылка КАК ВидРасчета,
| Показатели.НомерСтроки КАК НомерПоказателя,
| Показатели.Показатель КАК Показатель,
| Показатели.ЗапрашиватьПриКадровыхПеремещениях КАК ЗапрашиватьПриКадровыхПеремещениях
| ИЗ
| ПланВидовРасчета.ОсновныеНачисленияОрганизаций.Показатели КАК Показатели
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| Показатели.Ссылка,
| Показатели.НомерСтроки,
| Показатели.Показатель,
| Показатели.ЗапрашиватьПриКадровыхПеремещениях
| ИЗ
| ПланВидовРасчета.ДополнительныеНачисленияОрганизаций.Показатели КАК Показатели
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| Показатели.Ссылка,
| Показатели.НомерСтроки,
| Показатели.Показатель,
| Показатели.ЗапрашиватьПриКадровыхПеремещениях
| ИЗ
| ПланВидовРасчета.УдержанияОрганизаций.Показатели КАК Показатели
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ВидыРасчета.ВидРасчета,
| 1,
| ВЫБОР
| КОГДА ВидыРасчета.СпособРасчета В (ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ПоМесячнойТарифнойСтавкеПоДням), ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ПоМесячнойТарифнойСтавкеПоЧасам))
| ТОГДА ЗНАЧЕНИЕ(Справочник.ПоказателиСхемМотивации.ТарифнаяСтавкаМесячная)
| КОГДА ВидыРасчета.СпособРасчета В (ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ПоЧасовойТарифнойСтавке), ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.СдельныйЗаработок))
| ТОГДА ЗНАЧЕНИЕ(Справочник.ПоказателиСхемМотивации.ТарифнаяСтавкаЧасовая)
| КОГДА ВидыРасчета.СпособРасчета = ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ПоДневнойТарифнойСтавке)
| ТОГДА ЗНАЧЕНИЕ(Справочник.ПоказателиСхемМотивации.ТарифнаяСтавкаДневная)
| КОНЕЦ,
| ВидыРасчета.ВидРасчета.ЗачетОтработанногоВремени
| ИЗ
| (ВЫБРАТЬ
| ВидыРасчета.ВидРасчета КАК ВидРасчета,
| ВидыРасчета.СпособРасчета КАК СпособРасчета
| ИЗ
| ВидыРасчета КАК ВидыРасчета
| ГДЕ
| ВидыРасчета.СпособРасчета В (ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ПоМесячнойТарифнойСтавкеПоДням), ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ПоМесячнойТарифнойСтавкеПоЧасам), ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ПоЧасовойТарифнойСтавке), ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.СдельныйЗаработок), ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ПоДневнойТарифнойСтавке))) КАК ВидыРасчета) КАК Показатели
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЗначенияПоказателейСхемМотивации.ПериодДействия КАК ПериодДействия,
| ДвиженияРаботников.Сотрудник КАК Сотрудник,
| ДвиженияРаботников.Физлицо КАК Физлицо,
| ДвиженияРаботников.Подразделение КАК Подразделение,
| ЗначенияПоказателейСхемМотивации.Показатель КАК Показатель,
| ЗначенияПоказателейСхемМотивации.Значение КАК Значение,
| ЗначенияПоказателейСхемМотивации.Валюта КАК Валюта
|ПОМЕСТИТЬ ЗначенияЕжемесячныхПоказателей
|ИЗ
| ВТДвиженияРаботников КАК ДвиженияРаботников
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияПоказателейСхемМотивации КАК ЗначенияПоказателейСхемМотивации
| ПО (ЗначенияПоказателейСхемМотивации.Организация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка))
| И (ЗначенияПоказателейСхемМотивации.ПериодДействия = НАЧАЛОПЕРИОДА(&парамНачало, МЕСЯЦ))
| И (ВЫБОР
| КОГДА ЗначенияПоказателейСхемМотивации.Показатель.ВидПоказателя = ЗНАЧЕНИЕ(Перечисление.ВидыПоказателейСхемМотивации.Индивидуальный)
| ИЛИ ЗначенияПоказателейСхемМотивации.Показатель.ВидПоказателя ЕСТЬ NULL
| ТОГДА ДвиженияРаботников.Сотрудник = ЗначенияПоказателейСхемМотивации.Сотрудник
| КОГДА ЗначенияПоказателейСхемМотивации.Показатель.ВидПоказателя = ЗНАЧЕНИЕ(Перечисление.ВидыПоказателейСхемМотивации.ПоПодразделению)
| ТОГДА ДвиженияРаботников.Подразделение = ЗначенияПоказателейСхемМотивации.Подразделение
| КОГДА ЗначенияПоказателейСхемМотивации.Показатель.ВидПоказателя = ЗНАЧЕНИЕ(Перечисление.ВидыПоказателейСхемМотивации.Общий)
| ТОГДА ДвиженияРаботников.Организация = ЗначенияПоказателейСхемМотивации.Организация
| ИНАЧЕ ИСТИНА
| КОНЕЦ)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Период,
| ДвиженияРаботников.Сотрудник,
| ДвиженияРаботников.Физлицо,
| ДвиженияРаботников.Подразделение,
| ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Показатель,
| ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Значение,
| ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Валюта
|ПОМЕСТИТЬ ЗначенияПериодическихПоказателей
|ИЗ
| ВТДвиженияРаботников КАК ДвиженияРаботников
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПериодическиеЗначенияПоказателейСхемМотивации.СрезПоследних(&парамКонец) КАК ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних
| ПО (ВЫБОР
| КОГДА ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Показатель.ВидПоказателя = ЗНАЧЕНИЕ(Перечисление.ВидыПоказателейСхемМотивации.ПоПодразделению)
| ТОГДА ДвиженияРаботников.Подразделение = ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Подразделение
| КОГДА ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Показатель.ВидПоказателя = ЗНАЧЕНИЕ(Перечисление.ВидыПоказателейСхемМотивации.Общий)
| ТОГДА ДвиженияРаботников.Организация = ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Организация
| КОГДА ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Показатель.ВидПоказателя = ЗНАЧЕНИЕ(Перечисление.ВидыПоказателейСхемМотивации.ДляВсехОрганизаций)
| ТОГДА ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| РазмерТарифныхСтавокСрезПоследних.Период,
| РазмерТарифныхСтавокСрезПоследних.ТарифныйРазряд КАК ТарифныйРазряд,
| РазмерТарифныхСтавокСрезПоследних.Размер,
| РазмерТарифныхСтавокСрезПоследних.Валюта
|ПОМЕСТИТЬ РазмерТарифныхСтавок
|ИЗ
| РегистрСведений.РазмерТарифныхСтавок.СрезПоследних(&парамНачало, ) КАК РазмерТарифныхСтавокСрезПоследних
|
|ИНДЕКСИРОВАТЬ ПО
| ТарифныйРазряд
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ПлановыеНачисленияРаботников.Период,
| ПлановыеНачисленияРаботников.Сотрудник КАК Сотрудник,
| ПлановыеНачисленияРаботников.Сотрудник.Физлицо КАК ФизЛицо,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.ДействиеЗавершения
| ИНАЧЕ ПлановыеНачисленияРаботников.Действие
| КОНЕЦ КАК Действие,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.ВидРасчетаЗавершения
| ИНАЧЕ ПлановыеНачисленияРаботников.ВидРасчета
| КОНЕЦ КАК ВидРасчета,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.Показатель1Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.Показатель1
| КОНЕЦ КАК Показатель1,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.Показатель2Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.Показатель2
| КОНЕЦ КАК Показатель2,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.Показатель3Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.Показатель3
| КОНЕЦ КАК Показатель3,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.Показатель4Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.Показатель4
| КОНЕЦ КАК Показатель4,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.Показатель5Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.Показатель5
| КОНЕЦ КАК Показатель5,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.Показатель6Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.Показатель6
| КОНЕЦ КАК Показатель6,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.Валюта1Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.Валюта1
| КОНЕЦ КАК Валюта1,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.Валюта2Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.Валюта2
| КОНЕЦ КАК Валюта2,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.Валюта3Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.Валюта3
| КОНЕЦ КАК Валюта3,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.Валюта4Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.Валюта4
| КОНЕЦ КАК Валюта4,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.Валюта5Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.Валюта5
| КОНЕЦ КАК Валюта5,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.Валюта6Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.Валюта6
| КОНЕЦ КАК Валюта6,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.ТарифныйРазряд1Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.ТарифныйРазряд1
| КОНЕЦ КАК ТарифныйРазряд1,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.ТарифныйРазряд2Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.ТарифныйРазряд2
| КОНЕЦ КАК ТарифныйРазряд2,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.ТарифныйРазряд3Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.ТарифныйРазряд3
| КОНЕЦ КАК ТарифныйРазряд3,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.ТарифныйРазряд4Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.ТарифныйРазряд4
| КОНЕЦ КАК ТарифныйРазряд4,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.ТарифныйРазряд5Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.ТарифныйРазряд5
| КОНЕЦ КАК ТарифныйРазряд5,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.ТарифныйРазряд6Завершения
| ИНАЧЕ ПлановыеНачисленияРаботников.ТарифныйРазряд6
| КОНЕЦ КАК ТарифныйРазряд6
|ПОМЕСТИТЬ ЗаписиПлановыхНачислений
|ИЗ
| РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций.СрезПоследних(
| &парамНачало,
| Организация = &Организация
| И (Сотрудник В
| (ВЫБРАТЬ
| СписокРаботников.Сотрудник
| ИЗ
| ВТСписокРаботников КАК СписокРаботников))) КАК ПлановыеНачисленияРаботников
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСписокРаботников КАК СписокРаботников
| ПО СписокРаботников.Сотрудник = ПлановыеНачисленияРаботников.Сотрудник
|ГДЕ
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеНачисленияРаботников.ДействиеЗавершения <> ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.Прекратить)
| ИНАЧЕ ПлановыеНачисленияРаботников.Действие <> ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.Прекратить)
| КОНЕЦ
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ПлановыеНачисленияРаботников.Период,
| ПлановыеНачисленияРаботников.Сотрудник,
| ПлановыеНачисленияРаботников.Сотрудник.Физлицо,
| ПлановыеНачисленияРаботников.Действие,
| ПлановыеНачисленияРаботников.ВидРасчета,
| ПлановыеНачисленияРаботников.Показатель1,
| ПлановыеНачисленияРаботников.Показатель2,
| ПлановыеНачисленияРаботников.Показатель3,
| ПлановыеНачисленияРаботников.Показатель4,
| ПлановыеНачисленияРаботников.Показатель5,
| ПлановыеНачисленияРаботников.Показатель6,
| ПлановыеНачисленияРаботников.Валюта1,
| ПлановыеНачисленияРаботников.Валюта2,
| ПлановыеНачисленияРаботников.Валюта3,
| ПлановыеНачисленияРаботников.Валюта4,
| ПлановыеНачисленияРаботников.Валюта5,
| ПлановыеНачисленияРаботников.Валюта6,
| ПлановыеНачисленияРаботников.ТарифныйРазряд1,
| ПлановыеНачисленияРаботников.ТарифныйРазряд2,
| ПлановыеНачисленияРаботников.ТарифныйРазряд3,
| ПлановыеНачисленияРаботников.ТарифныйРазряд4,
| ПлановыеНачисленияРаботников.ТарифныйРазряд5,
| ПлановыеНачисленияРаботников.ТарифныйРазряд6
|ИЗ
| РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ПлановыеНачисленияРаботников
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСписокРаботников КАК СписокРаботников
| ПО СписокРаботников.Сотрудник = ПлановыеНачисленияРаботников.Сотрудник
|ГДЕ
| ПлановыеНачисленияРаботников.Организация = &Организация
| И ПлановыеНачисленияРаботников.Период > &парамНачало
| И ПлановыеНачисленияРаботников.Период <= &парамКонец
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ПлановыеНачисленияРаботников.ПериодЗавершения,
| ПлановыеНачисленияРаботников.Сотрудник,
| ПлановыеНачисленияРаботников.Сотрудник.Физлицо,
| ПлановыеНачисленияРаботников.ДействиеЗавершения,
| ПлановыеНачисленияРаботников.ВидРасчетаЗавершения,
| ПлановыеНачисленияРаботников.Показатель1Завершения,
| ПлановыеНачисленияРаботников.Показатель2Завершения,
| ПлановыеНачисленияРаботников.Показатель3Завершения,
| ПлановыеНачисленияРаботников.Показатель4Завершения,
| ПлановыеНачисленияРаботников.Показатель5Завершения,
| ПлановыеНачисленияРаботников.Показатель6Завершения,
| ПлановыеНачисленияРаботников.Валюта1Завершения,
| ПлановыеНачисленияРаботников.Валюта2Завершения,
| ПлановыеНачисленияРаботников.Валюта3Завершения,
| ПлановыеНачисленияРаботников.Валюта4Завершения,
| ПлановыеНачисленияРаботников.Валюта5Завершения,
| ПлановыеНачисленияРаботников.Валюта6Завершения,
| ПлановыеНачисленияРаботников.ТарифныйРазряд1Завершения,
| ПлановыеНачисленияРаботников.ТарифныйРазряд2Завершения,
| ПлановыеНачисленияРаботников.ТарифныйРазряд3Завершения,
| ПлановыеНачисленияРаботников.ТарифныйРазряд4Завершения,
| ПлановыеНачисленияРаботников.ТарифныйРазряд5Завершения,
| ПлановыеНачисленияРаботников.ТарифныйРазряд6Завершения
|ИЗ
| РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ПлановыеНачисленияРаботников
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСписокРаботников КАК СписокРаботников
| ПО СписокРаботников.Сотрудник = ПлановыеНачисленияРаботников.Сотрудник
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ВременныеПлановыеНачисленияРаботников
| ПО ПлановыеНачисленияРаботников.Организация = ВременныеПлановыеНачисленияРаботников.Организация
| И ПлановыеНачисленияРаботников.Сотрудник = ВременныеПлановыеНачисленияРаботников.Сотрудник
| И ПлановыеНачисленияРаботников.ВидРасчетаИзмерение = ВременныеПлановыеНачисленияРаботников.ВидРасчетаИзмерение
| И ПлановыеНачисленияРаботников.Период < ВременныеПлановыеНачисленияРаботников.Период
| И ПлановыеНачисленияРаботников.ПериодЗавершения >= ВременныеПлановыеНачисленияРаботников.Период
|ГДЕ
| ПлановыеНачисленияРаботников.Организация = &Организация
| И ПлановыеНачисленияРаботников.ПериодЗавершения >= &парамНачало
| И ПлановыеНачисленияРаботников.ПериодЗавершения <= &парамКонец
| И ВременныеПлановыеНачисленияРаботников.Сотрудник ЕСТЬ NULL
|
|ИНДЕКСИРОВАТЬ ПО
| Сотрудник,
| ВидРасчета,
| ТарифныйРазряд1,
| ТарифныйРазряд2,
| ТарифныйРазряд3,
| ТарифныйРазряд4,
| ТарифныйРазряд5,
| ТарифныйРазряд6
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ПлановыеУдержанияРаботников.Период,
| ПлановыеУдержанияРаботников.ФизЛицо КАК ФизЛицо,
| ВЫБОР
| КОГДА ПлановыеУдержанияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеУдержанияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеУдержанияРаботников.ДействиеЗавершения
| ИНАЧЕ ПлановыеУдержанияРаботников.Действие
| КОНЕЦ КАК Действие,
| ПлановыеУдержанияРаботников.ВидРасчета КАК ВидРасчета,
| ВЫБОР
| КОГДА ПлановыеУдержанияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеУдержанияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеУдержанияРаботников.Показатель1Завершения
| ИНАЧЕ ПлановыеУдержанияРаботников.Показатель1
| КОНЕЦ КАК Показатель1,
| ВЫБОР
| КОГДА ПлановыеУдержанияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеУдержанияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеУдержанияРаботников.Показатель2Завершения
| ИНАЧЕ ПлановыеУдержанияРаботников.Показатель2
| КОНЕЦ КАК Показатель2,
| ВЫБОР
| КОГДА ПлановыеУдержанияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеУдержанияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеУдержанияРаботников.Показатель3Завершения
| ИНАЧЕ ПлановыеУдержанияРаботников.Показатель3
| КОНЕЦ КАК Показатель3,
| ВЫБОР
| КОГДА ПлановыеУдержанияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеУдержанияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеУдержанияРаботников.Показатель4Завершения
| ИНАЧЕ ПлановыеУдержанияРаботников.Показатель4
| КОНЕЦ КАК Показатель4,
| ВЫБОР
| КОГДА ПлановыеУдержанияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеУдержанияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеУдержанияРаботников.Показатель5Завершения
| ИНАЧЕ ПлановыеУдержанияРаботников.Показатель5
| КОНЕЦ КАК Показатель5,
| ВЫБОР
| КОГДА ПлановыеУдержанияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеУдержанияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеУдержанияРаботников.Показатель6Завершения
| ИНАЧЕ ПлановыеУдержанияРаботников.Показатель6
| КОНЕЦ КАК Показатель6,
| ВЫБОР
| КОГДА ПлановыеУдержанияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеУдержанияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеУдержанияРаботников.Валюта1Завершения
| ИНАЧЕ ПлановыеУдержанияРаботников.Валюта1
| КОНЕЦ КАК Валюта1,
| ВЫБОР
| КОГДА ПлановыеУдержанияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеУдержанияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеУдержанияРаботников.Валюта2Завершения
| ИНАЧЕ ПлановыеУдержанияРаботников.Валюта2
| КОНЕЦ КАК Валюта2,
| ВЫБОР
| КОГДА ПлановыеУдержанияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеУдержанияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеУдержанияРаботников.Валюта3Завершения
| ИНАЧЕ ПлановыеУдержанияРаботников.Валюта3
| КОНЕЦ КАК Валюта3,
| ВЫБОР
| КОГДА ПлановыеУдержанияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеУдержанияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеУдержанияРаботников.Валюта4Завершения
| ИНАЧЕ ПлановыеУдержанияРаботников.Валюта4
| КОНЕЦ КАК Валюта4,
| ВЫБОР
| КОГДА ПлановыеУдержанияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеУдержанияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеУдержанияРаботников.Валюта5Завершения
| ИНАЧЕ ПлановыеУдержанияРаботников.Валюта5
| КОНЕЦ КАК Валюта5,
| ВЫБОР
| КОГДА ПлановыеУдержанияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеУдержанияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеУдержанияРаботников.Валюта6Завершения
| ИНАЧЕ ПлановыеУдержанияРаботников.Валюта6
| КОНЕЦ КАК Валюта6,
| ПлановыеУдержанияРаботников.ДокументОснование
|ПОМЕСТИТЬ ЗаписиПлановыхУдержаний
|ИЗ
| РегистрСведений.ПлановыеУдержанияРаботниковОрганизаций.СрезПоследних(
| &парамНачало,
| Организация = &Организация
| И Физлицо В
| (ВЫБРАТЬ
| СписокРаботников.Физлицо
| ИЗ
| ВТСписокРаботников КАК СписокРаботников)) КАК ПлановыеУдержанияРаботников
|ГДЕ
| ВЫБОР
| КОГДА ПлановыеУдержанияРаботников.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеУдержанияРаботников.ПериодЗавершения <= &парамНачало
| ТОГДА ПлановыеУдержанияРаботников.ДействиеЗавершения <> ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.Прекратить)
| ИНАЧЕ ПлановыеУдержанияРаботников.Действие <> ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.Прекратить)
| КОНЕЦ
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ПлановыеУдержанияРаботников.Период,
| ПлановыеУдержанияРаботников.ФизЛицо,
| ПлановыеУдержанияРаботников.Действие,
| ПлановыеУдержанияРаботников.ВидРасчета,
| ПлановыеУдержанияРаботников.Показатель1,
| ПлановыеУдержанияРаботников.Показатель2,
| ПлановыеУдержанияРаботников.Показатель3,
| ПлановыеУдержанияРаботников.Показатель4,
| ПлановыеУдержанияРаботников.Показатель5,
| ПлановыеУдержанияРаботников.Показатель6,
| ПлановыеУдержанияРаботников.Валюта1,
| ПлановыеУдержанияРаботников.Валюта2,
| ПлановыеУдержанияРаботников.Валюта3,
| ПлановыеУдержанияРаботников.Валюта4,
| ПлановыеУдержанияРаботников.Валюта5,
| ПлановыеУдержанияРаботников.Валюта6,
| ПлановыеУдержанияРаботников.ДокументОснование
|ИЗ
| РегистрСведений.ПлановыеУдержанияРаботниковОрганизаций КАК ПлановыеУдержанияРаботников
|ГДЕ
| ПлановыеУдержанияРаботников.Организация = &Организация
| И ПлановыеУдержанияРаботников.ФизЛицо В
| (ВЫБРАТЬ
| СписокРаботников.Физлицо
| ИЗ
| ВТСписокРаботников КАК СписокРаботников)
| И ПлановыеУдержанияРаботников.Период > &парамНачало
| И ПлановыеУдержанияРаботников.Период <= &парамКонец
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ПлановыеУдержанияРаботников.ПериодЗавершения,
| ПлановыеУдержанияРаботников.ФизЛицо,
| ПлановыеУдержанияРаботников.ДействиеЗавершения,
| ПлановыеУдержанияРаботников.ВидРасчета,
| ПлановыеУдержанияРаботников.Показатель1Завершения,
| ПлановыеУдержанияРаботников.Показатель2Завершения,
| ПлановыеУдержанияРаботников.Показатель3Завершения,
| ПлановыеУдержанияРаботников.Показатель4Завершения,
| ПлановыеУдержанияРаботников.Показатель5Завершения,
| ПлановыеУдержанияРаботников.Показатель6Завершения,
| ПлановыеУдержанияРаботников.Валюта1Завершения,
| ПлановыеУдержанияРаботников.Валюта2Завершения,
| ПлановыеУдержанияРаботников.Валюта3Завершения,
| ПлановыеУдержанияРаботников.Валюта4Завершения,
| ПлановыеУдержанияРаботников.Валюта5Завершения,
| ПлановыеУдержанияРаботников.Валюта6Завершения,
| ПлановыеУдержанияРаботников.ДокументОснование
|ИЗ
| РегистрСведений.ПлановыеУдержанияРаботниковОрганизаций КАК ПлановыеУдержанияРаботников
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеУдержанияРаботниковОрганизаций КАК ВременныеПлановыеУдержанияРаботников
| ПО ПлановыеУдержанияРаботников.Организация = ВременныеПлановыеУдержанияРаботников.Организация
| И ПлановыеУдержанияРаботников.ФизЛицо = ВременныеПлановыеУдержанияРаботников.ФизЛицо
| И ПлановыеУдержанияРаботников.ВидРасчета = ВременныеПлановыеУдержанияРаботников.ВидРасчета
| И ПлановыеУдержанияРаботников.Период < ВременныеПлановыеУдержанияРаботников.Период
| И ПлановыеУдержанияРаботников.ПериодЗавершения >= ВременныеПлановыеУдержанияРаботников.Период
| И ПлановыеУдержанияРаботников.ДокументОснование = ВременныеПлановыеУдержанияРаботников.ДокументОснование
|ГДЕ
| ПлановыеУдержанияРаботников.Организация = &Организация
| И ПлановыеУдержанияРаботников.ФизЛицо В
| (ВЫБРАТЬ
| СписокРаботников.Физлицо
| ИЗ
| ВТСписокРаботников КАК СписокРаботников)
| И ПлановыеУдержанияРаботников.ПериодЗавершения >= &парамНачало
| И ПлановыеУдержанияРаботников.ПериодЗавершения <= &парамКонец
| И ВременныеПлановыеУдержанияРаботников.ФизЛицо ЕСТЬ NULL
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо,
| ВидРасчета
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЗаписиПлановыхНачислений.Период,
| ЗаписиПлановыхНачислений.Сотрудник,
| ЗаписиПлановыхНачислений.ФизЛицо,
| ЗаписиПлановыхНачислений.Действие,
| ЗаписиПлановыхНачислений.ВидРасчета,
| ВЫБОР
| КОГДА ПоказательВидаРасчета1.ТипТарифныйРазряд
| ИЛИ ЕСТЬNULL(ВидыРасчета.ТребуетВводаТарифногоРазряда, ЛОЖЬ)
| ТОГДА РазмерТарифнойСтавкиРазряда1.Размер
| ИНАЧЕ ЗаписиПлановыхНачислений.Показатель1
| КОНЕЦ КАК Показатель1,
| ВЫБОР
| КОГДА ПоказательВидаРасчета2.ТипТарифныйРазряд
| ИЛИ ЕСТЬNULL(ВидыРасчета.ТребуетВводаТарифногоРазряда, ЛОЖЬ)
| ТОГДА РазмерТарифнойСтавкиРазряда2.Размер
| ИНАЧЕ ЗаписиПлановыхНачислений.Показатель2
| КОНЕЦ КАК Показатель2,
| ВЫБОР
| КОГДА ПоказательВидаРасчета3.ТипТарифныйРазряд
| ИЛИ ЕСТЬNULL(ВидыРасчета.ТребуетВводаТарифногоРазряда, ЛОЖЬ)
| ТОГДА РазмерТарифнойСтавкиРазряда3.Размер
| ИНАЧЕ ЗаписиПлановыхНачислений.Показатель3
| КОНЕЦ КАК Показатель3,
| ВЫБОР
| КОГДА ПоказательВидаРасчета4.ТипТарифныйРазряд
| ИЛИ ЕСТЬNULL(ВидыРасчета.ТребуетВводаТарифногоРазряда, ЛОЖЬ)
| ТОГДА РазмерТарифнойСтавкиРазряда4.Размер
| ИНАЧЕ ЗаписиПлановыхНачислений.Показатель4
| КОНЕЦ КАК Показатель4,
| ВЫБОР
| КОГДА ПоказательВидаРасчета5.ТипТарифныйРазряд
| ИЛИ ЕСТЬNULL(ВидыРасчета.ТребуетВводаТарифногоРазряда, ЛОЖЬ)
| ТОГДА РазмерТарифнойСтавкиРазряда5.Размер
| ИНАЧЕ ЗаписиПлановыхНачислений.Показатель5
| КОНЕЦ КАК Показатель5,
| ВЫБОР
| КОГДА ПоказательВидаРасчета6.ТипТарифныйРазряд
| ИЛИ ЕСТЬNULL(ВидыРасчета.ТребуетВводаТарифногоРазряда, ЛОЖЬ)
| ТОГДА РазмерТарифнойСтавкиРазряда6.Размер
| ИНАЧЕ ЗаписиПлановыхНачислений.Показатель6
| КОНЕЦ КАК Показатель6,
| ВЫБОР
| КОГДА ПоказательВидаРасчета1.ТипТарифныйРазряд
| ИЛИ ЕСТЬNULL(ВидыРасчета.ТребуетВводаТарифногоРазряда, ЛОЖЬ)
| ТОГДА РазмерТарифнойСтавкиРазряда1.Валюта
| ИНАЧЕ ЗаписиПлановыхНачислений.Валюта1
| КОНЕЦ КАК Валюта1,
| ВЫБОР
| КОГДА ПоказательВидаРасчета2.ТипТарифныйРазряд
| ИЛИ ЕСТЬNULL(ВидыРасчета.ТребуетВводаТарифногоРазряда, ЛОЖЬ)
| ТОГДА РазмерТарифнойСтавкиРазряда2.Валюта
| ИНАЧЕ ЗаписиПлановыхНачислений.Валюта2
| КОНЕЦ КАК Валюта2,
| ВЫБОР
| КОГДА ПоказательВидаРасчета3.ТипТарифныйРазряд
| ИЛИ ЕСТЬNULL(ВидыРасчета.ТребуетВводаТарифногоРазряда, ЛОЖЬ)
| ТОГДА РазмерТарифнойСтавкиРазряда3.Валюта
| ИНАЧЕ ЗаписиПлановыхНачислений.Валюта3
| КОНЕЦ КАК Валюта3,
| ВЫБОР
| КОГДА ПоказательВидаРасчета4.ТипТарифныйРазряд
| ИЛИ ЕСТЬNULL(ВидыРасчета.ТребуетВводаТарифногоРазряда, ЛОЖЬ)
| ТОГДА РазмерТарифнойСтавкиРазряда4.Валюта
| ИНАЧЕ ЗаписиПлановыхНачислений.Валюта4
| КОНЕЦ КАК Валюта4,
| ВЫБОР
| КОГДА ПоказательВидаРасчета5.ТипТарифныйРазряд
| ИЛИ ЕСТЬNULL(ВидыРасчета.ТребуетВводаТарифногоРазряда, ЛОЖЬ)
| ТОГДА РазмерТарифнойСтавкиРазряда5.Валюта
| ИНАЧЕ ЗаписиПлановыхНачислений.Валюта5
| КОНЕЦ КАК Валюта5,
| ВЫБОР
| КОГДА ПоказательВидаРасчета6.ТипТарифныйРазряд
| ИЛИ ЕСТЬNULL(ВидыРасчета.ТребуетВводаТарифногоРазряда, ЛОЖЬ)
| ТОГДА РазмерТарифнойСтавкиРазряда6.Валюта
| ИНАЧЕ ЗаписиПлановыхНачислений.Валюта6
| КОНЕЦ КАК Валюта6,
| ПоказательВидаРасчета1.Показатель КАК ПоказательСсылка1,
| ПоказательВидаРасчета2.Показатель КАК ПоказательСсылка2,
| ПоказательВидаРасчета3.Показатель КАК ПоказательСсылка3,
| ПоказательВидаРасчета4.Показатель КАК ПоказательСсылка4,
| ПоказательВидаРасчета5.Показатель КАК ПоказательСсылка5,
| ПоказательВидаРасчета6.Показатель КАК ПоказательСсылка6,
| ВЫБОР
| КОГДА ЗаписиПлановыхНачислений.ВидРасчета В
| (ВЫБРАТЬ
| ВидыРасчетаПредопределенныйСпособРасчета.ВидРасчета
| ИЗ
| ВидыРасчетаПредопределенныйСпособРасчета)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК СпособРасчетаПредопределен
|ПОМЕСТИТЬ ПлановыеНачисления
|ИЗ
| ЗаписиПлановыхНачислений КАК ЗаписиПлановыхНачислений
| ЛЕВОЕ СОЕДИНЕНИЕ ВидыРасчетаПредопределенныйСпособРасчета КАК ВидыРасчета
| ПО ЗаписиПлановыхНачислений.ВидРасчета = ВидыРасчета.ВидРасчета
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК ПоказательВидаРасчета1
| ПО ЗаписиПлановыхНачислений.ВидРасчета = ПоказательВидаРасчета1.ВидРасчета
| И (ПоказательВидаРасчета1.НомерПоказателя = 1)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК ПоказательВидаРасчета2
| ПО ЗаписиПлановыхНачислений.ВидРасчета = ПоказательВидаРасчета2.ВидРасчета
| И (ПоказательВидаРасчета2.НомерПоказателя = 2)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК ПоказательВидаРасчета3
| ПО ЗаписиПлановыхНачислений.ВидРасчета = ПоказательВидаРасчета3.ВидРасчета
| И (ПоказательВидаРасчета3.НомерПоказателя = 3)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК ПоказательВидаРасчета4
| ПО ЗаписиПлановыхНачислений.ВидРасчета = ПоказательВидаРасчета4.ВидРасчета
| И (ПоказательВидаРасчета4.НомерПоказателя = 4)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК ПоказательВидаРасчета5
| ПО ЗаписиПлановыхНачислений.ВидРасчета = ПоказательВидаРасчета5.ВидРасчета
| И (ПоказательВидаРасчета5.НомерПоказателя = 5)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК ПоказательВидаРасчета6
| ПО ЗаписиПлановыхНачислений.ВидРасчета = ПоказательВидаРасчета6.ВидРасчета
| И (ПоказательВидаРасчета6.НомерПоказателя = 6)
| ЛЕВОЕ СОЕДИНЕНИЕ РазмерТарифныхСтавок КАК РазмерТарифнойСтавкиРазряда1
| ПО ЗаписиПлановыхНачислений.ТарифныйРазряд1 = РазмерТарифнойСтавкиРазряда1.ТарифныйРазряд
| ЛЕВОЕ СОЕДИНЕНИЕ РазмерТарифныхСтавок КАК РазмерТарифнойСтавкиРазряда2
| ПО ЗаписиПлановыхНачислений.ТарифныйРазряд2 = РазмерТарифнойСтавкиРазряда2.ТарифныйРазряд
| ЛЕВОЕ СОЕДИНЕНИЕ РазмерТарифныхСтавок КАК РазмерТарифнойСтавкиРазряда3
| ПО ЗаписиПлановыхНачислений.ТарифныйРазряд3 = РазмерТарифнойСтавкиРазряда3.ТарифныйРазряд
| ЛЕВОЕ СОЕДИНЕНИЕ РазмерТарифныхСтавок КАК РазмерТарифнойСтавкиРазряда4
| ПО ЗаписиПлановыхНачислений.ТарифныйРазряд4 = РазмерТарифнойСтавкиРазряда4.ТарифныйРазряд
| ЛЕВОЕ СОЕДИНЕНИЕ РазмерТарифныхСтавок КАК РазмерТарифнойСтавкиРазряда5
| ПО ЗаписиПлановыхНачислений.ТарифныйРазряд5 = РазмерТарифнойСтавкиРазряда5.ТарифныйРазряд
| ЛЕВОЕ СОЕДИНЕНИЕ РазмерТарифныхСтавок КАК РазмерТарифнойСтавкиРазряда6
| ПО ЗаписиПлановыхНачислений.ТарифныйРазряд6 = РазмерТарифнойСтавкиРазряда6.ТарифныйРазряд
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЗаписиПлановыхУдержаний.Период,
| ЗаписиПлановыхУдержаний.ФизЛицо,
| ЗаписиПлановыхУдержаний.Действие,
| ЗаписиПлановыхУдержаний.ВидРасчета,
| ЗаписиПлановыхУдержаний.Показатель1 КАК Показатель1,
| ЗаписиПлановыхУдержаний.Показатель2 КАК Показатель2,
| ЗаписиПлановыхУдержаний.Показатель3 КАК Показатель3,
| ЗаписиПлановыхУдержаний.Показатель4 КАК Показатель4,
| ЗаписиПлановыхУдержаний.Показатель5 КАК Показатель5,
| ЗаписиПлановыхУдержаний.Показатель6 КАК Показатель6,
| ЗаписиПлановыхУдержаний.Валюта1 КАК Валюта1,
| ЗаписиПлановыхУдержаний.Валюта2 КАК Валюта2,
| ЗаписиПлановыхУдержаний.Валюта3 КАК Валюта3,
| ЗаписиПлановыхУдержаний.Валюта4 КАК Валюта4,
| ЗаписиПлановыхУдержаний.Валюта5 КАК Валюта5,
| ЗаписиПлановыхУдержаний.Валюта6 КАК Валюта6,
| ПоказательВидаРасчета1.Показатель КАК ПоказательСсылка1,
| ПоказательВидаРасчета2.Показатель КАК ПоказательСсылка2,
| ПоказательВидаРасчета3.Показатель КАК ПоказательСсылка3,
| ПоказательВидаРасчета4.Показатель КАК ПоказательСсылка4,
| ПоказательВидаРасчета5.Показатель КАК ПоказательСсылка5,
| ПоказательВидаРасчета6.Показатель КАК ПоказательСсылка6,
| ЗаписиПлановыхУдержаний.ДокументОснование,
| ВЫБОР
| КОГДА ЗаписиПлановыхУдержаний.ВидРасчета В
| (ВЫБРАТЬ
| ВидыРасчетаПредопределенныйСпособРасчета.ВидРасчета
| ИЗ
| ВидыРасчетаПредопределенныйСпособРасчета)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК СпособРасчетаПредопределен
|ПОМЕСТИТЬ ПлановыеУдержания
|ИЗ
| ЗаписиПлановыхУдержаний КАК ЗаписиПлановыхУдержаний
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК ПоказательВидаРасчета1
| ПО ЗаписиПлановыхУдержаний.ВидРасчета = ПоказательВидаРасчета1.ВидРасчета
| И (ПоказательВидаРасчета1.НомерПоказателя = 1)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК ПоказательВидаРасчета2
| ПО ЗаписиПлановыхУдержаний.ВидРасчета = ПоказательВидаРасчета2.ВидРасчета
| И (ПоказательВидаРасчета2.НомерПоказателя = 2)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК ПоказательВидаРасчета3
| ПО ЗаписиПлановыхУдержаний.ВидРасчета = ПоказательВидаРасчета3.ВидРасчета
| И (ПоказательВидаРасчета3.НомерПоказателя = 3)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК ПоказательВидаРасчета4
| ПО ЗаписиПлановыхУдержаний.ВидРасчета = ПоказательВидаРасчета4.ВидРасчета
| И (ПоказательВидаРасчета4.НомерПоказателя = 4)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК ПоказательВидаРасчета5
| ПО ЗаписиПлановыхУдержаний.ВидРасчета = ПоказательВидаРасчета5.ВидРасчета
| И (ПоказательВидаРасчета5.НомерПоказателя = 5)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК ПоказательВидаРасчета6
| ПО ЗаписиПлановыхУдержаний.ВидРасчета = ПоказательВидаРасчета6.ВидРасчета
| И (ПоказательВидаРасчета6.НомерПоказателя = 6)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПлановыеПоказатели.Период,
| ПлановыеПоказатели.Сотрудник,
| ПлановыеПоказатели.ФизЛицо,
| ВЫБОР
| КОГДА ПлановыеПоказатели.НомерПоказателя = 1
| ТОГДА ПлановыеПоказатели.ПоказательСсылка1
| КОГДА ПлановыеПоказатели.НомерПоказателя = 2
| ТОГДА ПлановыеПоказатели.ПоказательСсылка2
| КОГДА ПлановыеПоказатели.НомерПоказателя = 3
| ТОГДА ПлановыеПоказатели.ПоказательСсылка3
| КОГДА ПлановыеПоказатели.НомерПоказателя = 4
| ТОГДА ПлановыеПоказатели.ПоказательСсылка4
| КОГДА ПлановыеПоказатели.НомерПоказателя = 5
| ТОГДА ПлановыеПоказатели.ПоказательСсылка5
| КОГДА ПлановыеПоказатели.НомерПоказателя = 6
| ТОГДА ПлановыеПоказатели.ПоказательСсылка6
| КОНЕЦ КАК Показатель,
| ВЫБОР
| КОГДА ПлановыеПоказатели.НомерПоказателя = 1
| ТОГДА ПлановыеПоказатели.Показатель1
| КОГДА ПлановыеПоказатели.НомерПоказателя = 2
| ТОГДА ПлановыеПоказатели.Показатель2
| КОГДА ПлановыеПоказатели.НомерПоказателя = 3
| ТОГДА ПлановыеПоказатели.Показатель3
| КОГДА ПлановыеПоказатели.НомерПоказателя = 4
| ТОГДА ПлановыеПоказатели.Показатель4
| КОГДА ПлановыеПоказатели.НомерПоказателя = 5
| ТОГДА ПлановыеПоказатели.Показатель5
| КОГДА ПлановыеПоказатели.НомерПоказателя = 6
| ТОГДА ПлановыеПоказатели.Показатель6
| КОНЕЦ КАК Значение,
| ВЫБОР
| КОГДА ПлановыеПоказатели.НомерПоказателя = 1
| ТОГДА ПлановыеПоказатели.Валюта1
| КОГДА ПлановыеПоказатели.НомерПоказателя = 2
| ТОГДА ПлановыеПоказатели.Валюта2
| КОГДА ПлановыеПоказатели.НомерПоказателя = 3
| ТОГДА ПлановыеПоказатели.Валюта3
| КОГДА ПлановыеПоказатели.НомерПоказателя = 4
| ТОГДА ПлановыеПоказатели.Валюта4
| КОГДА ПлановыеПоказатели.НомерПоказателя = 5
| ТОГДА ПлановыеПоказатели.Валюта5
| КОГДА ПлановыеПоказатели.НомерПоказателя = 6
| ТОГДА ПлановыеПоказатели.Валюта6
| КОНЕЦ КАК Валюта,
| ПлановыеПоказатели.ВидРасчета
|ПОМЕСТИТЬ ЗначенияПлановыхПоказателей
|ИЗ
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПлановыеНачисления.Период КАК Период,
| ПлановыеНачисления.Сотрудник КАК Сотрудник,
| ПлановыеНачисления.ФизЛицо КАК ФизЛицо,
| ПоказателиВидаРасчета.НомерПоказателя КАК НомерПоказателя,
| ПлановыеНачисления.ПоказательСсылка1 КАК ПоказательСсылка1,
| ПлановыеНачисления.ПоказательСсылка2 КАК ПоказательСсылка2,
| ПлановыеНачисления.ПоказательСсылка3 КАК ПоказательСсылка3,
| ПлановыеНачисления.ПоказательСсылка4 КАК ПоказательСсылка4,
| ПлановыеНачисления.ПоказательСсылка5 КАК ПоказательСсылка5,
| ПлановыеНачисления.ПоказательСсылка6 КАК ПоказательСсылка6,
| ПлановыеНачисления.Показатель1 КАК Показатель1,
| ПлановыеНачисления.Показатель2 КАК Показатель2,
| ПлановыеНачисления.Показатель3 КАК Показатель3,
| ПлановыеНачисления.Показатель4 КАК Показатель4,
| ПлановыеНачисления.Показатель5 КАК Показатель5,
| ПлановыеНачисления.Показатель6 КАК Показатель6,
| ПлановыеНачисления.Валюта1 КАК Валюта1,
| ПлановыеНачисления.Валюта2 КАК Валюта2,
| ПлановыеНачисления.Валюта3 КАК Валюта3,
| ПлановыеНачисления.Валюта4 КАК Валюта4,
| ПлановыеНачисления.Валюта5 КАК Валюта5,
| ПлановыеНачисления.Валюта6 КАК Валюта6,
| ПлановыеНачисления.ВидРасчета КАК ВидРасчета
| ИЗ
| ПлановыеНачисления КАК ПлановыеНачисления
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК ПоказателиВидаРасчета
| ПО ПлановыеНачисления.ВидРасчета = ПоказателиВидаРасчета.ВидРасчета
| ГДЕ
| ПоказателиВидаРасчета.ЗапрашиватьПриКадровыхПеремещениях
| И ПоказателиВидаРасчета.Показатель.ВозможностьИзменения = ЗНАЧЕНИЕ(Перечисление.ИзменениеПоказателейСхемМотивации.НеИзменяется)
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ПлановыеУдержания.Период,
| NULL,
| ПлановыеУдержания.ФизЛицо,
| ПоказателиВидаРасчета.НомерПоказателя,
| ПлановыеУдержания.ПоказательСсылка1,
| ПлановыеУдержания.ПоказательСсылка2,
| ПлановыеУдержания.ПоказательСсылка3,
| ПлановыеУдержания.ПоказательСсылка4,
| ПлановыеУдержания.ПоказательСсылка5,
| ПлановыеУдержания.ПоказательСсылка6,
| ПлановыеУдержания.Показатель1,
| ПлановыеУдержания.Показатель2,
| ПлановыеУдержания.Показатель3,
| ПлановыеУдержания.Показатель4,
| ПлановыеУдержания.Показатель5,
| ПлановыеУдержания.Показатель6,
| ПлановыеУдержания.Валюта1,
| ПлановыеУдержания.Валюта2,
| ПлановыеУдержания.Валюта3,
| ПлановыеУдержания.Валюта4,
| ПлановыеУдержания.Валюта5,
| ПлановыеУдержания.Валюта6,
| ПлановыеУдержания.ВидРасчета
| ИЗ
| ПлановыеУдержания КАК ПлановыеУдержания
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК ПоказателиВидаРасчета
| ПО ПлановыеУдержания.ВидРасчета = ПоказателиВидаРасчета.ВидРасчета
| ГДЕ
| ПоказателиВидаРасчета.ЗапрашиватьПриКадровыхПеремещениях
| И ПоказателиВидаРасчета.Показатель.ВозможностьИзменения = ЗНАЧЕНИЕ(Перечисление.ИзменениеПоказателейСхемМотивации.НеИзменяется)) КАК ПлановыеПоказатели
|";

ЗаполнениеДокументовПереопределяемый.ДобавитьОбъединенияВЗапросЗначенийПоказателей(ТекстЗапроса);

ТекстЗапроса = ТекстЗапроса + "
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЗначенияПлановыхПоказателей.Сотрудник КАК Сотрудник,
| ЗначенияПлановыхПоказателей.ФизЛицо КАК ФизЛицо,
| ЗначенияПлановыхПоказателей.Показатель КАК Показатель,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗначенияПлановыхПоказателей.ВидРасчета) КАК КоличествоЗаписейГдеЗапрашивается
|ПОМЕСТИТЬ СведенияОбИсточникахЗначенийПоказателей
|ИЗ
| ЗначенияПлановыхПоказателей КАК ЗначенияПлановыхПоказателей
|
|СГРУППИРОВАТЬ ПО
| ЗначенияПлановыхПоказателей.Сотрудник,
| ЗначенияПлановыхПоказателей.ФизЛицо,
| ЗначенияПлановыхПоказателей.Показатель
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЗначенияПоказателей.ПериодДействия,
| ЗначенияПоказателей.Сотрудник,
| ЗначенияПоказателей.Физлицо,
| ЗначенияПоказателей.Подразделение,
| ЗначенияПоказателей.Показатель,
| ЗначенияПоказателей.Значение,
| ВЫБОР
| КОГДА ЗначенияПоказателей." + ВалютаПоказателяИмяПоляЗапроса() + " = ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
| ТОГДА ВЫБОР
| КОГДА ЗначенияПоказателей.Показатель.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.Денежный)
| ТОГДА ЗначенияПоказателей.Показатель.Валюта
| КОГДА ЗначенияПоказателей.Показатель.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.СуммаПоказателя)
| И ЗначенияПоказателей.Показатель.СуммируемыйПоказатель.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.Денежный)
| ТОГДА ЗначенияПоказателей.Показатель.СуммируемыйПоказатель.Валюта
| ИНАЧЕ ЗначенияПоказателей.Валюта
| КОНЕЦ
| ИНАЧЕ ЗначенияПоказателей." + ВалютаПоказателяИмяПоляЗапроса() + "
| КОНЕЦ КАК Валюта,
| ЗначенияПоказателей.ВидРасчета
|ПОМЕСТИТЬ ЗначенияПоказателейИсходнаяВалюта
|ИЗ
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЗначенияЕжемесячныхПоказателей.ПериодДействия КАК ПериодДействия,
| ЗначенияЕжемесячныхПоказателей.Сотрудник КАК Сотрудник,
| ЗначенияЕжемесячныхПоказателей.Физлицо КАК Физлицо,
| ЗначенияЕжемесячныхПоказателей.Подразделение КАК Подразделение,
| ЗначенияЕжемесячныхПоказателей.Показатель КАК Показатель,
| ЗначенияЕжемесячныхПоказателей.Значение КАК Значение,
| ЗначенияЕжемесячныхПоказателей.Валюта КАК Валюта,
| NULL КАК ВидРасчета
| ИЗ
| ЗначенияЕжемесячныхПоказателей КАК ЗначенияЕжемесячныхПоказателей
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ЗначенияПериодическихПоказателей.Период,
| ЗначенияПериодическихПоказателей.Сотрудник,
| ЗначенияПериодическихПоказателей.Физлицо,
| ЗначенияПериодическихПоказателей.Подразделение,
| ЗначенияПериодическихПоказателей.Показатель,
| ЗначенияПериодическихПоказателей.Значение,
| ЗначенияПериодическихПоказателей.Валюта,
| NULL
| ИЗ
| ЗначенияПериодическихПоказателей КАК ЗначенияПериодическихПоказателей
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ЗначенияПлановыхПоказателей.Период,
| ДвиженияРаботников.Сотрудник,
| ДвиженияРаботников.Физлицо,
| ДвиженияРаботников.Подразделение,
| ЗначенияПлановыхПоказателей.Показатель,
| МАКСИМУМ(ЗначенияПлановыхПоказателей.Значение),
| ЗначенияПлановыхПоказателей.Валюта,
| ВЫБОР
| КОГДА СведенияОбИсточникахЗначений.КоличествоЗаписейГдеЗапрашивается > 1
| ТОГДА ЗначенияПлановыхПоказателей.ВидРасчета
| ИНАЧЕ NULL
| КОНЕЦ
| ИЗ
| ВТДвиженияРаботников КАК ДвиженияРаботников
| ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияПлановыхПоказателей КАК ЗначенияПлановыхПоказателей
| ПО (ВЫБОР
| КОГДА ЗначенияПлановыхПоказателей.Сотрудник ЕСТЬ NULL
| ТОГДА ДвиженияРаботников.Физлицо = ЗначенияПлановыхПоказателей.ФизЛицо
| ИНАЧЕ ДвиженияРаботников.Сотрудник = ЗначенияПлановыхПоказателей.Сотрудник
| КОНЕЦ)
| И ДвиженияРаботников.Период >= ЗначенияПлановыхПоказателей.Период
| ЛЕВОЕ СОЕДИНЕНИЕ СведенияОбИсточникахЗначенийПоказателей КАК СведенияОбИсточникахЗначений
| ПО (ВЫБОР
| КОГДА СведенияОбИсточникахЗначений.Сотрудник ЕСТЬ NULL
| ИЛИ ЗначенияПлановыхПоказателей.Сотрудник ЕСТЬ NULL
| ТОГДА СведенияОбИсточникахЗначений.ФизЛицо = ЗначенияПлановыхПоказателей.ФизЛицо
| ИНАЧЕ СведенияОбИсточникахЗначений.Сотрудник = ЗначенияПлановыхПоказателей.Сотрудник
| КОНЕЦ)
| И (СведенияОбИсточникахЗначений.Показатель = ЗначенияПлановыхПоказателей.Показатель)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПриоритетыСотрудников КАК ПриоритетыСотрудников
| ПО ДвиженияРаботников.Физлицо = ПриоритетыСотрудников.Физлицо
| И ДвиженияРаботников.Приоритет = ПриоритетыСотрудников.Приоритет
|
| СГРУППИРОВАТЬ ПО
| ЗначенияПлановыхПоказателей.Период,
| ДвиженияРаботников.Сотрудник,
| ДвиженияРаботников.Физлицо,
| ДвиженияРаботников.Подразделение,
| ЗначенияПлановыхПоказателей.Показатель,
| ЗначенияПлановыхПоказателей.Валюта,
| ВЫБОР
| КОГДА СведенияОбИсточникахЗначений.КоличествоЗаписейГдеЗапрашивается > 1
| ТОГДА ЗначенияПлановыхПоказателей.ВидРасчета
| ИНАЧЕ NULL
| КОНЕЦ) КАК ЗначенияПоказателей
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЗначенияПоказателей.ПериодДействия КАК ПериодДействия,
| ЗначенияПоказателей.Сотрудник КАК Сотрудник,
| ЗначенияПоказателей.Физлицо КАК Физлицо,
| ЗначенияПоказателей.Подразделение,
| ЗначенияПоказателей.Показатель КАК Показатель,
| ЗначенияПоказателей.Значение КАК ИсходноеЗначение,
| ВЫБОР
| КОГДА ЗначенияПоказателей.Показатель.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.Денежный)
| ТОГДА ЗначенияПоказателей.Значение * (КурсВалютыПоказателя.Курс / КурсВалютыПоказателя.Кратность)
| ИНАЧЕ ЗначенияПоказателей.Значение
| КОНЕЦ КАК Значение,
| ЗначенияПоказателей.Валюта,
| ВЫБОР
| КОГДА ЗначенияПоказателей.Показатель.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.Денежный)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ВводитсяВВалюте,
| КурсВалютыПоказателя.Курс / КурсВалютыПоказателя.Кратность КАК КурсВалюты,
| ЗначенияПоказателей.ВидРасчета
|ПОМЕСТИТЬ ЗначенияПоказателейИсходныйПериодДействия
|ИЗ
| ЗначенияПоказателейИсходнаяВалюта КАК ЗначенияПоказателей
| ЛЕВОЕ СОЕДИНЕНИЕ КурсыВалют КАК КурсВалютыПоказателя
| ПО ЗначенияПоказателей.Валюта = КурсВалютыПоказателя.Валюта
|
|ИНДЕКСИРОВАТЬ ПО
| ПериодДействия,
| Физлицо,
| Показатель
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| МАКСИМУМ(ЗначенияПоказателейИсходныйПериодДействия.ПериодДействия) КАК КрайнийПериод,
| ЗначенияПоказателейИсходныйПериодДействия.Сотрудник,
| ЗначенияПоказателейИсходныйПериодДействия.Физлицо,
| ЗначенияПоказателейИсходныйПериодДействия.Показатель,
| ЗначенияПоказателейИсходныйПериодДействия.ВидРасчета
|ПОМЕСТИТЬ КрайниеДатыПоказателейСхемМотивации
|ИЗ
| ЗначенияПоказателейИсходныйПериодДействия КАК ЗначенияПоказателейИсходныйПериодДействия
|
|СГРУППИРОВАТЬ ПО
| ЗначенияПоказателейИсходныйПериодДействия.Сотрудник,
| ЗначенияПоказателейИсходныйПериодДействия.Физлицо,
| ЗначенияПоказателейИсходныйПериодДействия.Показатель,
| ЗначенияПоказателейИсходныйПериодДействия.ВидРасчета
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЗначенияПоказателей.ПериодДействия,
| ЗначенияПоказателей.Сотрудник,
| ЗначенияПоказателей.Физлицо,
| ЗначенияПоказателей.Подразделение,
| ЗначенияПоказателей.Показатель,
| ЗначенияПоказателей.ИсходноеЗначение,
| ЗначенияПоказателей.Значение,
| ЗначенияПоказателей.Валюта,
| ЗначенияПоказателей.ВводитсяВВалюте,
| ЗначенияПоказателей.КурсВалюты,
| ЗначенияПоказателей.ВидРасчета
|ПОМЕСТИТЬ ЗначенияПоказателейПроизвольнаяФормула
|ИЗ
| ЗначенияПоказателейИсходныйПериодДействия КАК ЗначенияПоказателей
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ КрайниеДатыПоказателейСхемМотивации КАК КрайниеДаты
| ПО ЗначенияПоказателей.ПериодДействия = КрайниеДаты.КрайнийПериод
| И ЗначенияПоказателей.Показатель = КрайниеДаты.Показатель
| И (ВЫБОР
| КОГДА ЗначенияПоказателей.ВидРасчета ЕСТЬ НЕ NULL
| ИЛИ КрайниеДаты.ВидРасчета ЕСТЬ НЕ NULL
| ТОГДА ЗначенияПоказателей.ВидРасчета = КрайниеДаты.ВидРасчета
| ИНАЧЕ ИСТИНА
| КОНЕЦ)
| И (ВЫБОР
| КОГДА ЗначенияПоказателей.Сотрудник ЕСТЬ NULL
| ИЛИ КрайниеДаты.Сотрудник ЕСТЬ NULL
| ТОГДА ЗначенияПоказателей.Физлицо = КрайниеДаты.Физлицо
| ИНАЧЕ ЗначенияПоказателей.Сотрудник = КрайниеДаты.Сотрудник
| КОНЕЦ)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПлановыеНачисления.Период,
| ПлановыеНачисления.Сотрудник,
| ПлановыеНачисления.ФизЛицо,
| ПлановыеНачисления.Действие,
| ПлановыеНачисления.ВидРасчета,
| ПлановыеНачисления.Показатель1,
| ПлановыеНачисления.Показатель2,
| ПлановыеНачисления.Показатель3,
| ПлановыеНачисления.Показатель4,
| ПлановыеНачисления.Показатель5,
| ПлановыеНачисления.Показатель6,
| ПлановыеНачисления.Валюта1,
| ПлановыеНачисления.Валюта2,
| ПлановыеНачисления.Валюта3,
| ПлановыеНачисления.Валюта4,
| ПлановыеНачисления.Валюта5,
| ПлановыеНачисления.Валюта6,
| NULL КАК ДокументОснование,
| ПлановыеНачисления.СпособРасчетаПредопределен
|ПОМЕСТИТЬ ЗначенияПоказателейСпособРасчетаПредопределенИсходнаяВалюта
|ИЗ
| ПлановыеНачисления КАК ПлановыеНачисления
|ГДЕ
| ПлановыеНачисления.СпособРасчетаПредопределен
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ПлановыеУдержания.Период,
| NULL,
| ПлановыеУдержания.ФизЛицо,
| ПлановыеУдержания.Действие,
| ПлановыеУдержания.ВидРасчета,
| ПлановыеУдержания.Показатель1,
| ПлановыеУдержания.Показатель2,
| ПлановыеУдержания.Показатель3,
| ПлановыеУдержания.Показатель4,
| ПлановыеУдержания.Показатель5,
| ПлановыеУдержания.Показатель6,
| ПлановыеУдержания.Валюта1,
| ПлановыеУдержания.Валюта2,
| ПлановыеУдержания.Валюта3,
| ПлановыеУдержания.Валюта4,
| ПлановыеУдержания.Валюта5,
| ПлановыеУдержания.Валюта6,
| ПлановыеУдержания.ДокументОснование,
| ПлановыеУдержания.СпособРасчетаПредопределен
|ИЗ
| ПлановыеУдержания КАК ПлановыеУдержания
|ГДЕ
| ПлановыеУдержания.СпособРасчетаПредопределен
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЗначенияПоказателейИсхВалюта.Период,
| ЗначенияПоказателейИсхВалюта.Сотрудник,
| ЗначенияПоказателейИсхВалюта.ФизЛицо,
| ЗначенияПоказателейИсхВалюта.ВидРасчета,
| ЗначенияПоказателейИсхВалюта.Показатель1 * ВЫБОР
| КОГДА ЗначенияПоказателейИсхВалюта.Валюта1 <> ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
| ТОГДА КурсВалютыПоказателя1.Курс / КурсВалютыПоказателя1.Кратность
| ИНАЧЕ 1
| КОНЕЦ КАК Показатель1,
| ЗначенияПоказателейИсхВалюта.Показатель2 * ВЫБОР
| КОГДА ЗначенияПоказателейИсхВалюта.Валюта2 <> ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
| ТОГДА КурсВалютыПоказателя2.Курс / КурсВалютыПоказателя2.Кратность
| ИНАЧЕ 1
| КОНЕЦ КАК Показатель2,
| ЗначенияПоказателейИсхВалюта.Показатель3 * ВЫБОР
| КОГДА ЗначенияПоказателейИсхВалюта.Валюта3 <> ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
| ТОГДА КурсВалютыПоказателя3.Курс / КурсВалютыПоказателя3.Кратность
| ИНАЧЕ 1
| КОНЕЦ КАК Показатель3,
| ЗначенияПоказателейИсхВалюта.Показатель4 * ВЫБОР
| КОГДА ЗначенияПоказателейИсхВалюта.Валюта4 <> ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
| ТОГДА КурсВалютыПоказателя4.Курс / КурсВалютыПоказателя4.Кратность
| ИНАЧЕ 1
| КОНЕЦ КАК Показатель4,
| ЗначенияПоказателейИсхВалюта.Показатель5 * ВЫБОР
| КОГДА ЗначенияПоказателейИсхВалюта.Валюта5 <> ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
| ТОГДА КурсВалютыПоказателя5.Курс / КурсВалютыПоказателя5.Кратность
| ИНАЧЕ 1
| КОНЕЦ КАК Показатель5,
| ЗначенияПоказателейИсхВалюта.Показатель6 * ВЫБОР
| КОГДА ЗначенияПоказателейИсхВалюта.Валюта6 <> ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
| ТОГДА КурсВалютыПоказателя6.Курс / КурсВалютыПоказателя6.Кратность
| ИНАЧЕ 1
| КОНЕЦ КАК Показатель6
|ПОМЕСТИТЬ ЗначенияПоказателейВидовРасчетаПредопределенныйСпособРасчета
|ИЗ
| ЗначенияПоказателейСпособРасчетаПредопределенИсходнаяВалюта КАК ЗначенияПоказателейИсхВалюта
| ЛЕВОЕ СОЕДИНЕНИЕ КурсыВалют КАК КурсВалютыПоказателя1
| ПО ЗначенияПоказателейИсхВалюта.Валюта1 = КурсВалютыПоказателя1.Валюта
| ЛЕВОЕ СОЕДИНЕНИЕ КурсыВалют КАК КурсВалютыПоказателя2
| ПО ЗначенияПоказателейИсхВалюта.Валюта2 = КурсВалютыПоказателя2.Валюта
| ЛЕВОЕ СОЕДИНЕНИЕ КурсыВалют КАК КурсВалютыПоказателя3
| ПО ЗначенияПоказателейИсхВалюта.Валюта3 = КурсВалютыПоказателя3.Валюта
| ЛЕВОЕ СОЕДИНЕНИЕ КурсыВалют КАК КурсВалютыПоказателя4
| ПО ЗначенияПоказателейИсхВалюта.Валюта4 = КурсВалютыПоказателя4.Валюта
| ЛЕВОЕ СОЕДИНЕНИЕ КурсыВалют КАК КурсВалютыПоказателя5
| ПО ЗначенияПоказателейИсхВалюта.Валюта5 = КурсВалютыПоказателя5.Валюта
| ЛЕВОЕ СОЕДИНЕНИЕ КурсыВалют КАК КурсВалютыПоказателя6
| ПО ЗначенияПоказателейИсхВалюта.Валюта6 = КурсВалютыПоказателя6.Валюта
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| МАКСИМУМ(ЗначенияПоказателей.Период) КАК КрайнийПериод,
| ЗначенияПоказателей.Сотрудник,
| ЗначенияПоказателей.ФизЛицо,
| ЗначенияПоказателей.ВидРасчета
|ПОМЕСТИТЬ КрайниеДатыПоказателейВидовРасчета
|ИЗ
| ЗначенияПоказателейВидовРасчетаПредопределенныйСпособРасчета КАК ЗначенияПоказателей
|
|СГРУППИРОВАТЬ ПО
| ЗначенияПоказателей.Сотрудник,
| ЗначенияПоказателей.ФизЛицо,
| ЗначенияПоказателей.ВидРасчета
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЗначенияПоказателей.Период,
| ЗначенияПоказателей.Сотрудник,
| ЗначенияПоказателей.ФизЛицо,
| ЗначенияПоказателей.ВидРасчета,
| ЗначенияПоказателей.Показатель1,
| ЗначенияПоказателей.Показатель2,
| ЗначенияПоказателей.Показатель3,
| ЗначенияПоказателей.Показатель4,
| ЗначенияПоказателей.Показатель5,
| ЗначенияПоказателей.Показатель6
|ПОМЕСТИТЬ ЗначенияПоказателейВидовРасчета
|ИЗ
| ЗначенияПоказателейВидовРасчетаПредопределенныйСпособРасчета КАК ЗначенияПоказателей
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ КрайниеДатыПоказателейВидовРасчета КАК КрайниеДаты
| ПО ЗначенияПоказателей.Период = КрайниеДаты.КрайнийПериод
| И ЗначенияПоказателей.ВидРасчета = КрайниеДаты.ВидРасчета
| И (ВЫБОР
| КОГДА ЗначенияПоказателей.Сотрудник ЕСТЬ NULL
| ИЛИ КрайниеДаты.Сотрудник ЕСТЬ NULL
| ТОГДА ЗначенияПоказателей.ФизЛицо = КрайниеДаты.ФизЛицо
| ИНАЧЕ ЗначенияПоказателей.Сотрудник = КрайниеДаты.Сотрудник
| КОНЕЦ)";

Запрос.Текст = ТекстЗапроса;

Запрос.Выполнить();

КонецПроцедуры // СформироватьЗапросЗначенийПоказателей

// Выполняет автоматическое заполнение показателей в строке
//
Функция ПоказателиСтроки(СотрудникФизлицо, ВидРасчета, Подразделение = Неопределено, ГоловнаяОрганизация, ДатаНачала) Экспорт

Запрос = Новый Запрос;

Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

Запрос.УстановитьПараметр("парамНачало", ДатаНачала);
Запрос.УстановитьПараметр("парамКонец", КонецДня(ДатаНачала));
Запрос.УстановитьПараметр("Организация", ГоловнаяОрганизация);

Запрос.УстановитьПараметр("парамДатаВалютногоУчета", НачалоМесяца(ДатаНачала));

Запрос.УстановитьПараметр("ВидРасчета", ВидРасчета);

ТекстЗапроса =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| &парамНачало КАК Период,
| &Организация КАК Организация,
| Сотрудники.Ссылка КАК Сотрудник,
| Сотрудники.Физлицо КАК Физлицо,
| Сотрудники.ПодразделениеОрганизации КАК Подразделение,
| ВЫБОР
| КОГДА Сотрудники.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА ВЫБОР
| КОГДА Сотрудники.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы)
| ТОГДА 1
| ИНАЧЕ 2
| КОНЕЦ
| ИНАЧЕ 3
| КОНЕЦ КАК Приоритет
|ПОМЕСТИТЬ ВТСписокРаботников
|ИЗ
| Справочник.СотрудникиОрганизаций КАК Сотрудники
|";
Если ТипЗнч(СотрудникФизлицо) = Тип("СправочникСсылка.СотрудникиОрганизаций") Тогда
Запрос.УстановитьПараметр("Сотрудник", СотрудникФизлицо);
ТекстЗапроса = ТекстЗапроса + "
|ГДЕ
| Сотрудники.Ссылка = &Сотрудник
|";
ИначеЕсли ТипЗнч(СотрудникФизлицо) = Тип("СправочникСсылка.ФизическиеЛица") Тогда
Запрос.УстановитьПараметр("Физлицо", СотрудникФизлицо);
ТекстЗапроса = ТекстЗапроса + "
|ГДЕ
| Сотрудники.Физлицо = &Физлицо
| И Сотрудники.Организация = &Организация
|";
КонецЕсли;

Запрос.Текст = ТекстЗапроса;
Запрос.Выполнить();

СформироватьЗапросЗначенийПоказателей(Запрос);

Запрос.Текст =
"ВЫБРАТЬ
| ЕСТЬNULL(ЗначенияПоказателей.Показатель1, 0) КАК Показатель1,
| ЕСТЬNULL(ЗначенияПоказателей.Показатель2, 0) КАК Показатель2,
| ЕСТЬNULL(ЗначенияПоказателей.Показатель3, 0) КАК Показатель3,
| ЕСТЬNULL(ЗначенияПоказателей.Показатель4, 0) КАК Показатель4,
| ЕСТЬNULL(ЗначенияПоказателей.Показатель5, 0) КАК Показатель5,
| ЕСТЬNULL(ЗначенияПоказателей.Показатель6, 0) КАК Показатель6
|ИЗ
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЗначенияПоказателя1.Значение КАК Показатель1,
| ЗначенияПоказателя2.Значение КАК Показатель2,
| ЗначенияПоказателя3.Значение КАК Показатель3,
| ЗначенияПоказателя4.Значение КАК Показатель4,
| ЗначенияПоказателя5.Значение КАК Показатель5,
| ЗначенияПоказателя6.Значение КАК Показатель6
| ИЗ
| ПоказателиВидаРасчета КАК ПоказателиВидаРасчета
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК Показатель1
| ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияПоказателейИсходныйПериодДействия КАК ЗначенияПоказателя1
| ПО Показатель1.Показатель = ЗначенияПоказателя1.Показатель
| И (ВЫБОР
| КОГДА ЗначенияПоказателя1.ВидРасчета ЕСТЬ НЕ NULL
| ТОГДА Показатель1.ВидРасчета = ЗначенияПоказателя1.ВидРасчета
| ИНАЧЕ ИСТИНА
| КОНЕЦ)
| ПО ПоказателиВидаРасчета.ВидРасчета = Показатель1.ВидРасчета
| И (Показатель1.НомерПоказателя = 1)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК Показатель2
| ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияПоказателейИсходныйПериодДействия КАК ЗначенияПоказателя2
| ПО Показатель2.Показатель = ЗначенияПоказателя2.Показатель
| И (ВЫБОР
| КОГДА ЗначенияПоказателя2.ВидРасчета ЕСТЬ НЕ NULL
| ТОГДА Показатель2.ВидРасчета = ЗначенияПоказателя2.ВидРасчета
| ИНАЧЕ ИСТИНА
| КОНЕЦ)
| ПО ПоказателиВидаРасчета.ВидРасчета = Показатель2.ВидРасчета
| И (Показатель2.НомерПоказателя = 2)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК Показатель3
| ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияПоказателейИсходныйПериодДействия КАК ЗначенияПоказателя3
| ПО Показатель3.Показатель = ЗначенияПоказателя3.Показатель
| И (ВЫБОР
| КОГДА ЗначенияПоказателя3.ВидРасчета ЕСТЬ НЕ NULL
| ТОГДА Показатель3.ВидРасчета = ЗначенияПоказателя3.ВидРасчета
| ИНАЧЕ ИСТИНА
| КОНЕЦ)
| ПО ПоказателиВидаРасчета.ВидРасчета = Показатель3.ВидРасчета
| И (Показатель3.НомерПоказателя = 3)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК Показатель4
| ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияПоказателейИсходныйПериодДействия КАК ЗначенияПоказателя4
| ПО Показатель4.Показатель = ЗначенияПоказателя4.Показатель
| И (ВЫБОР
| КОГДА ЗначенияПоказателя4.ВидРасчета ЕСТЬ НЕ NULL
| ТОГДА Показатель4.ВидРасчета = ЗначенияПоказателя4.ВидРасчета
| ИНАЧЕ ИСТИНА
| КОНЕЦ)
| ПО ПоказателиВидаРасчета.ВидРасчета = Показатель4.ВидРасчета
| И (Показатель4.НомерПоказателя = 4)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК Показатель5
| ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияПоказателейИсходныйПериодДействия КАК ЗначенияПоказателя5
| ПО Показатель5.Показатель = ЗначенияПоказателя5.Показатель
| И (ВЫБОР
| КОГДА ЗначенияПоказателя5.ВидРасчета ЕСТЬ НЕ NULL
| ТОГДА Показатель5.ВидРасчета = ЗначенияПоказателя5.ВидРасчета
| ИНАЧЕ ИСТИНА
| КОНЕЦ)
| ПО ПоказателиВидаРасчета.ВидРасчета = Показатель5.ВидРасчета
| И (Показатель5.НомерПоказателя = 5)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК Показатель6
| ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияПоказателейИсходныйПериодДействия КАК ЗначенияПоказателя6
| ПО Показатель6.Показатель = ЗначенияПоказателя6.Показатель
| И (ВЫБОР
| КОГДА ЗначенияПоказателя6.ВидРасчета ЕСТЬ НЕ NULL
| ТОГДА Показатель6.ВидРасчета = ЗначенияПоказателя6.ВидРасчета
| ИНАЧЕ ИСТИНА
| КОНЕЦ)
| ПО ПоказателиВидаРасчета.ВидРасчета = Показатель6.ВидРасчета
| И (Показатель6.НомерПоказателя = 6)
| ГДЕ
| ПоказателиВидаРасчета.ВидРасчета = &ВидРасчета
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ЗначенияПоказателей.Показатель1,
| ЗначенияПоказателей.Показатель2,
| ЗначенияПоказателей.Показатель3,
| ЗначенияПоказателей.Показатель4,
| ЗначенияПоказателей.Показатель5,
| ЗначенияПоказателей.Показатель6
| ИЗ
| ЗначенияПоказателейВидовРасчета КАК ЗначенияПоказателей
| ГДЕ
| ЗначенияПоказателей.ВидРасчета = &ВидРасчета) КАК ЗначенияПоказателей";

ПоказателиСтроки = Новый Структура(
"Показатель1,
|Показатель2,
|Показатель3,
|Показатель4,
|Показатель5,
|Показатель6");

РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Для Сч = 1 По 6 Цикл
ПоказателиСтроки["Показатель" + Сч] = 0;
КонецЦикла;
Иначе
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
ЗаполнитьЗначенияСвойств(ПоказателиСтроки, Выборка);
КонецЕсли;

Возврат ПоказателиСтроки;

КонецФункции // ПоказателиСтроки

// Функция получает значения показателей начисления или удержания для списка сотрудников
//
Функция ПоказателиНачисленияУдержания(СписокРаботников, ГоловнаяОрганизация, ВидРасчета, ДатаНачала, ВыбиратьСотрудника = Истина)

МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;

Запрос.УстановитьПараметр("парамНачало", ДатаНачала);
Запрос.УстановитьПараметр("парамКонец", КонецДня(ДатаНачала));
Запрос.УстановитьПараметр("Организация", ГоловнаяОрганизация);

Запрос.УстановитьПараметр("парамДатаВалютногоУчета", НачалоМесяца(ДатаНачала));

Запрос.УстановитьПараметр("ВидРасчета", ВидРасчета);

Запрос.УстановитьПараметр("СписокРаботников", СписокРаботников);

Если ВыбиратьСотрудника Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| &парамНачало КАК Период,
| &Организация КАК Организация,
| СписокРаботников.Сотрудник,
| СписокРаботников.Физлицо,
| СписокРаботников.ДатаПриема,
| СписокРаботников.ДатаУвольнения,
| СписокРаботников.Подразделение,
| 1 КАК Приоритет
|ПОМЕСТИТЬ ВТСписокРаботников
|ИЗ
| &СписокРаботников КАК СписокРаботников
|;
|";
Иначе
ТекстЗапроса =
"ВЫБРАТЬ
| СписокРаботников.Физлицо
|ПОМЕСТИТЬ СписокРаботников
|ИЗ
| &СписокРаботников КАК СписокРаботников
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| &парамНачало КАК Период,
| &Организация КАК Организация,
| Сотрудники.Ссылка КАК Сотрудник,
| Сотрудники.Физлицо,
| Сотрудники.ДатаПриемаНаРаботу КАК ДатаПриема,
| Сотрудники.ДатаУвольнения КАК ДатаУвольнения,
| Сотрудники.ПодразделениеОрганизации КАК Подразделение,
| ВЫБОР
| КОГДА Сотрудники.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА ВЫБОР
| КОГДА Сотрудники.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы)
| ТОГДА 1
| ИНАЧЕ 2
| КОНЕЦ
| ИНАЧЕ 3
| КОНЕЦ КАК Приоритет
|ПОМЕСТИТЬ ВТСписокРаботников
|ИЗ
| Справочник.СотрудникиОрганизаций КАК Сотрудники
|ГДЕ Физлицо В (ВЫБРАТЬ Физлицо ИЗ СписокРаботников) И Организация = &Организация
|;";
КонецЕсли;

Запрос.Текст = ТекстЗапроса;
Запрос.Выполнить();

СформироватьЗапросЗначенийПоказателей(Запрос);

Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ДвиженияРаботников.Сотрудник,
| ДвиженияРаботников.Физлицо,
| ДвиженияРаботников.Подразделение,
| ВидыРасчета.ВидРасчета КАК ВидРасчета,
| Показатель1.Показатель КАК ПоказательСсылка1,
| Показатель2.Показатель КАК ПоказательСсылка2,
| Показатель3.Показатель КАК ПоказательСсылка3,
| Показатель4.Показатель КАК ПоказательСсылка4,
| Показатель5.Показатель КАК ПоказательСсылка5,
| Показатель6.Показатель КАК ПоказательСсылка6,
| ВидыРасчета.ПроизвольнаяФормулаРасчета
|ПОМЕСТИТЬ НачисленияУдержания
|ИЗ
| ВТДвиженияРаботников КАК ДвиженияРаботников
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВидыРасчета КАК ВидыРасчета
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК Показатель1
| ПО ВидыРасчета.ВидРасчета = Показатель1.ВидРасчета
| И (Показатель1.НомерПоказателя = 1)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК Показатель2
| ПО ВидыРасчета.ВидРасчета = Показатель2.ВидРасчета
| И (Показатель2.НомерПоказателя = 2)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК Показатель3
| ПО ВидыРасчета.ВидРасчета = Показатель3.ВидРасчета
| И (Показатель3.НомерПоказателя = 3)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК Показатель4
| ПО ВидыРасчета.ВидРасчета = Показатель4.ВидРасчета
| И (Показатель4.НомерПоказателя = 4)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК Показатель5
| ПО ВидыРасчета.ВидРасчета = Показатель5.ВидРасчета
| И (Показатель5.НомерПоказателя = 5)
| ЛЕВОЕ СОЕДИНЕНИЕ ПоказателиВидаРасчета КАК Показатель6
| ПО ВидыРасчета.ВидРасчета = Показатель6.ВидРасчета
| И (Показатель6.НомерПоказателя = 6)
| ПО (ВидыРасчета.ВидРасчета = &ВидРасчета)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| НачисленияУдержания.Сотрудник,
| НачисленияУдержания.Физлицо,
| НачисленияУдержания.Подразделение,
| НачисленияУдержания.ВидРасчета,
| НачисленияУдержания.ПроизвольнаяФормулаРасчета,
| ЗначенияПоказателя1.Значение КАК Показатель1,
| ЗначенияПоказателя2.Значение КАК Показатель2,
| ЗначенияПоказателя3.Значение КАК Показатель3,
| ЗначенияПоказателя4.Значение КАК Показатель4,
| ЗначенияПоказателя5.Значение КАК Показатель5,
| ЗначенияПоказателя6.Значение КАК Показатель6
|ПОМЕСТИТЬ ПоказателиНачисленияУдержания
|ИЗ
| НачисленияУдержания КАК НачисленияУдержания
| ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияПоказателейПроизвольнаяФормула КАК ЗначенияПоказателя1
| ПО (ВЫБОР
| КОГДА НачисленияУдержания.Сотрудник ЕСТЬ NULL
| ИЛИ ЗначенияПоказателя1.Сотрудник ЕСТЬ NULL
| ТОГДА НачисленияУдержания.Физлицо = ЗначенияПоказателя1.Физлицо
| ИНАЧЕ НачисленияУдержания.Сотрудник = ЗначенияПоказателя1.Сотрудник
| КОНЕЦ)
| И НачисленияУдержания.ПоказательСсылка1 = ЗначенияПоказателя1.Показатель
| И (ВЫБОР
| КОГДА ЗначенияПоказателя1.ВидРасчета ЕСТЬ НЕ NULL
| ТОГДА НачисленияУдержания.ВидРасчета = ЗначенияПоказателя1.ВидРасчета
| ИНАЧЕ ИСТИНА
| КОНЕЦ)
| ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияПоказателейПроизвольнаяФормула КАК ЗначенияПоказателя2
| ПО (ВЫБОР
| КОГДА НачисленияУдержания.Сотрудник ЕСТЬ NULL
| ИЛИ ЗначенияПоказателя2.Сотрудник ЕСТЬ NULL
| ТОГДА НачисленияУдержания.Физлицо = ЗначенияПоказателя2.Физлицо
| ИНАЧЕ НачисленияУдержания.Сотрудник = ЗначенияПоказателя2.Сотрудник
| КОНЕЦ)
| И НачисленияУдержания.ПоказательСсылка2 = ЗначенияПоказателя2.Показатель
| И (ВЫБОР
| КОГДА ЗначенияПоказателя2.ВидРасчета ЕСТЬ НЕ NULL
| ТОГДА НачисленияУдержания.ВидРасчета = ЗначенияПоказателя2.ВидРасчета
| ИНАЧЕ ИСТИНА
| КОНЕЦ)
| ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияПоказателейПроизвольнаяФормула КАК ЗначенияПоказателя3
| ПО (ВЫБОР
| КОГДА НачисленияУдержания.Сотрудник ЕСТЬ NULL
| ИЛИ ЗначенияПоказателя3.Сотрудник ЕСТЬ NULL
| ТОГДА НачисленияУдержания.Физлицо = ЗначенияПоказателя3.Физлицо
| ИНАЧЕ НачисленияУдержания.Сотрудник = ЗначенияПоказателя3.Сотрудник
| КОНЕЦ)
| И НачисленияУдержания.ПоказательСсылка3 = ЗначенияПоказателя3.Показатель
| И (ВЫБОР
| КОГДА ЗначенияПоказателя3.ВидРасчета ЕСТЬ НЕ NULL
| ТОГДА НачисленияУдержания.ВидРасчета = ЗначенияПоказателя3.ВидРасчета
| ИНАЧЕ ИСТИНА
| КОНЕЦ)
| ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияПоказателейПроизвольнаяФормула КАК ЗначенияПоказателя4
| ПО (ВЫБОР
| КОГДА НачисленияУдержания.Сотрудник ЕСТЬ NULL
| ИЛИ ЗначенияПоказателя4.Сотрудник ЕСТЬ NULL
| ТОГДА НачисленияУдержания.Физлицо = ЗначенияПоказателя4.Физлицо
| ИНАЧЕ НачисленияУдержания.Сотрудник = ЗначенияПоказателя4.Сотрудник
| КОНЕЦ)
| И НачисленияУдержания.ПоказательСсылка4 = ЗначенияПоказателя4.Показатель
| И (ВЫБОР
| КОГДА ЗначенияПоказателя4.ВидРасчета ЕСТЬ НЕ NULL
| ТОГДА НачисленияУдержания.ВидРасчета = ЗначенияПоказателя4.ВидРасчета
| ИНАЧЕ ИСТИНА
| КОНЕЦ)
| ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияПоказателейПроизвольнаяФормула КАК ЗначенияПоказателя5
| ПО (ВЫБОР
| КОГДА НачисленияУдержания.Сотрудник ЕСТЬ NULL
| ИЛИ ЗначенияПоказателя5.Сотрудник ЕСТЬ NULL
| ТОГДА НачисленияУдержания.Физлицо = ЗначенияПоказателя5.Физлицо
| ИНАЧЕ НачисленияУдержания.Сотрудник = ЗначенияПоказателя5.Сотрудник
| КОНЕЦ)
| И НачисленияУдержания.ПоказательСсылка5 = ЗначенияПоказателя5.Показатель
| И (ВЫБОР
| КОГДА ЗначенияПоказателя5.ВидРасчета ЕСТЬ НЕ NULL
| ТОГДА НачисленияУдержания.ВидРасчета = ЗначенияПоказателя5.ВидРасчета
| ИНАЧЕ ИСТИНА
| КОНЕЦ)
| ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияПоказателейПроизвольнаяФормула КАК ЗначенияПоказателя6
| ПО (ВЫБОР
| КОГДА НачисленияУдержания.Сотрудник ЕСТЬ NULL
| ИЛИ ЗначенияПоказателя6.Сотрудник ЕСТЬ NULL
| ТОГДА НачисленияУдержания.Физлицо = ЗначенияПоказателя6.Физлицо
| ИНАЧЕ НачисленияУдержания.Сотрудник = ЗначенияПоказателя6.Сотрудник
| КОНЕЦ)
| И НачисленияУдержания.ПоказательСсылка6 = ЗначенияПоказателя6.Показатель
| И (ВЫБОР
| КОГДА ЗначенияПоказателя6.ВидРасчета ЕСТЬ НЕ NULL
| ТОГДА НачисленияУдержания.ВидРасчета = ЗначенияПоказателя6.ВидРасчета
| ИНАЧЕ ИСТИНА
| КОНЕЦ)
|ГДЕ
| НачисленияУдержания.ПроизвольнаяФормулаРасчета
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| НачисленияУдержания.Сотрудник,
| НачисленияУдержания.Физлицо,
| НачисленияУдержания.Подразделение,
| НачисленияУдержания.ВидРасчета,
| НачисленияУдержания.ПроизвольнаяФормулаРасчета,
| ЗначенияПоказателей.Показатель1,
| ЗначенияПоказателей.Показатель2,
| ЗначенияПоказателей.Показатель3,
| ЗначенияПоказателей.Показатель4,
| ЗначенияПоказателей.Показатель5,
| ЗначенияПоказателей.Показатель6
|ИЗ
| НачисленияУдержания КАК НачисленияУдержания
| ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияПоказателейВидовРасчета КАК ЗначенияПоказателей
| ПО (ВЫБОР
| КОГДА НачисленияУдержания.Сотрудник ЕСТЬ NULL
| ИЛИ ЗначенияПоказателей.Сотрудник ЕСТЬ NULL
| ТОГДА НачисленияУдержания.Физлицо = ЗначенияПоказателей.ФизЛицо
| ИНАЧЕ НачисленияУдержания.Сотрудник = ЗначенияПоказателей.Сотрудник
| КОНЕЦ)
| И НачисленияУдержания.ВидРасчета = ЗначенияПоказателей.ВидРасчета
|ГДЕ
| (НЕ НачисленияУдержания.ПроизвольнаяФормулаРасчета)";

Запрос.Выполнить();

Возврат МенеджерВременныхТаблиц;

КонецФункции // ПоказателиНачисленияУдержания
 
  Исправлено в релизе: 2.5.33  
 
  Код ошибки: 10072566  
  Дата публикации: 01.03.2011 16:04:59  
  Дата последнего изменения: 01.03.2011 0:00:00  
  Описание: В документе "Регистрация разовых начислений сотрудников" не заполняется подразделение, если дата документа меньше, чем дата приема на работу.  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10070170  
  Дата публикации: 24.02.2011 16:13:56  
  Дата последнего изменения: 24.02.2011 0:00:00  
  Описание: Работник, перешедший со штата на договор ГПХ, при заполнении документов "Зарплата к выплате" попадает как в ведомость по старому штатному подразделению, так и в ведомость по договору ГПХ.  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10073778  
  Дата публикации: 24.02.2011 16:13:38  
  Дата последнего изменения: 24.02.2011 0:00:00  
  Описание: При конвертации из ЗиК в ЗУП/ЗБУ не переносятся расчеты по страховым взносам.  
  Планируется исправить в релизе: 2.5.32  
 
  Код ошибки: 10073325  
  Дата публикации: 16.02.2011 17:05:51  
  Дата последнего изменения: 16.02.2011 0:00:00  
  Описание: При конвертации из ЗиК в ЗУП/ЗБУ неправильно переносятся взаиморасчеты по НДФЛ исчисленному, записи по которому были перерасчитаны.  
  Планируется исправить в релизе: 2.5.32  
 
  Код ошибки: 10074171  
  Дата публикации: 16.02.2011 17:05:39  
  Дата последнего изменения: 16.02.2011 0:00:00  
  Описание: В имени файла извещения о получении результата приема отчета вместо идентификатора ИФНС-получателя ошибочно указывается идентификатор спецоператора, что может привести к тому, что от ФНС в ответ на извещение будет получено уведомление об ошибке.  
 
  Код ошибки: 10074156  
  Дата публикации: 16.02.2011 17:05:33  
  Дата последнего изменения: 16.02.2011 0:00:00  
  Описание: При формировании 1-НДФЛ с отбором по ОКАТО выдается сообщение об ошибке.  
  Исправлено в релизе: 2.5.32  
 
  Код ошибки: 10073897  
  Дата публикации: 16.02.2011 17:03:42  
  Дата последнего изменения: 16.02.2011 0:00:00  
  Описание: При начислении взносов в ФСС от несчастных случаев не учитываются ранее рассчитанные и проведенные документы "Начисление страховых взносов в ПФР, ФОМС и ФСС" за этот же период времени и по этой же организации.  
  Исправлено в релизе: 2.5.32  
 
  Код ошибки: 10073900  
  Дата публикации: 16.02.2011 17:02:52  
  Дата последнего изменения: 16.02.2011 0:00:00  
  Описание: Невозможно создать два вида расчета для разных групп сотрудников, например, в которых запрашивается один и тот же показатель.  
  Планируется исправить в релизе: 2.5.32  
 
  Код ошибки: 10073726  
  Дата публикации: 16.02.2011 17:02:39  
  Дата последнего изменения: 16.02.2011 0:00:00  
  Описание: В док. "Начисление по больничному листу" по производственной травме расчет производится без учета предельной величины заработка, а в отчете "Расчет среднего заработка с 2011 года" - расчет ошибочно показывается с ограничением.  
  Исправлено в релизе: 2.5.32  
 
  Код ошибки: 10073701  
  Дата публикации: 16.02.2011 17:00:25  
  Дата последнего изменения: 16.02.2011 0:00:00  
  Описание: При изменении в документе "Начисление по больничному листу" (с периодом оплаты после Января 2011) периода расчета в поле "Расчетные годы",
на закладке "Расчет среднего заработка" не очищается табличная часть.
 
  Исправлено в релизе: 2.5.32  
 
  Код ошибки: 10073670  
  Дата публикации: 16.02.2011 16:59:49  
  Дата последнего изменения: 16.02.2011 0:00:00  
  Описание: При автозаполнении справок 2-НДФЛ за 2010 год по обособленному подразделению, выделенному на отдельный баланс, в документ не попадают суммы предоставленных вычетов.  
  Исправлено в релизе: 2.5.32  
 
  Код ошибки: 10073533  
  Дата публикации: 16.02.2011 16:57:27  
  Дата последнего изменения: 16.02.2011 0:00:00  
  Описание: С 2011 года неверно рассчитываются взносы на НС и ПЗ для организации инвалидов по оплате труда неинвалидов.  
  Способ исправления: Функцию ПолучитьДанныеРасчета() модуля документа РасчетСтраховыхВзносов заменить
следующим фрагментом:

Функция ПолучитьДанныеРасчета(ГоловнаяОрганизация, ОрганичениеНаСотрудников, ДанныеОДоходах, Отказ)

Если Отказ Тогда
Возврат Неопределено;
КонецЕсли;

// расчет вызван независимо от получения данных о доходах,
// получим список сотрудников для расчета
Если ОрганичениеНаСотрудников = Неопределено Тогда
ОрганичениеНаСотрудников = ПолучитьОграничениеНаСотрудников(Отказ);
Если Отказ Тогда
Возврат Неопределено;
КонецЕсли;
КонецЕсли;

Запрос = Новый Запрос();
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

Запрос.УстановитьПараметр("парамКонецМесяцаПериодаРегистрации", КонецМесяца(ПериодРегистрации));
Запрос.УстановитьПараметр("парамГоловнаяОрганизация", ГоловнаяОрганизация);
Запрос.УстановитьПараметр("парамОбособленноеПодразделение", Организация);
Запрос.УстановитьПараметр("парамНачалоГода", НачалоГода(ПериодРегистрации));
Запрос.УстановитьПараметр("парамКонецГода", КонецГода(ПериодРегистрации));
Запрос.УстановитьПараметр("парамГодРасчета", Год(ПериодРегистрации));
Запрос.УстановитьПараметр("парамМесяцРасчета", Месяц(ПериодРегистрации));
Запрос.УстановитьПараметр("парамПредыдущийМесяц", Месяц(ПериодРегистрации) - 1);
Запрос.УстановитьПараметр("парамПериодРегистрации", НачалоМесяца(ПериодРегистрации));
Запрос.УстановитьПараметр("Регистратор", Ссылка);
ПредельнаяСумма = РегистрыСведений.ПредельнаяВеличинаБазыСтраховыхВзносов.ПолучитьПоследнее(КонецМесяца(ПериодРегистрации)).Размер;
Запрос.УстановитьПараметр("ПредельнаяСумма", ?(ЗначениеЗаполнено(ПредельнаяСумма),ПредельнаяСумма,0));
Ставка = РегистрыСведений.СтавкаВзносаНаСтрахованиеОтНесчастныхСлучаев.ПолучитьПоследнее(КонецМесяца(ПериодРегистрации), Новый Структура("Организация", Организация)).Ставка;
Запрос.УстановитьПараметр("СтавкаВзносаФСС_НС_ПЗ", Ставка / 100);

// ---------------------------------------------------------------------------
// тексты запросов
//

Запрос.Текст =
"ВЫБРАТЬ
| СведенияОДоходах.ФизЛицо,
| МЕСЯЦ(СведенияОДоходах.Период) КАК Месяц,
| СведенияОДоходах.ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам,
| СведенияОДоходах.ОблагаетсяПоДополнительномуТарифу,
| СведенияОДоходах.ВидДохода,
| СведенияОДоходах.Результат - СведенияОДоходах.Скидка КАК ОблагаемыйДоход
|ПОМЕСТИТЬ ВТДанныеДокумента
|ИЗ
| &ДанныеОДоходах КАК СведенияОДоходах";
Запрос.УстановитьПараметр("ДанныеОДоходах", ДанныеОДоходах);
Запрос.Выполнить();

// ФизлицаДляРасчета
//
Если ОрганичениеНаСотрудников = Неопределено Тогда

Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| СведенияОДоходах.ФизЛицо КАК ФизЛицо
|ПОМЕСТИТЬ ВТСписокСотрудников
|ИЗ
| РегистрНакопления.СтраховыеВзносыСведенияОДоходах КАК СведенияОДоходах
|ГДЕ
| НАЧАЛОПЕРИОДА(СведенияОДоходах.Период, МЕСЯЦ) = &парамПериодРегистрации
| И СведенияОДоходах.ОбособленноеПодразделение = &парамОбособленноеПодразделение
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| СведенияОДоходах.ФизЛицо
|ИЗ
| ВТДанныеДокумента КАК СведенияОДоходах
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо";
Запрос.Выполнить();

Иначе
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаСотрудников.ФизЛицо КАК ФизЛицо
|ПОМЕСТИТЬ ВТСписокСотрудников
|ИЗ
| &парамТаблицаСотрудников КАК ТаблицаСотрудников
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо";
Запрос.УстановитьПараметр("парамТаблицаСотрудников", ОрганичениеНаСотрудников);
Запрос.Выполнить();
КонецЕсли;

// Периоды
// Таблица список периодов
// Поля:
// Период
// Описание:
// список периодов - первые даты месяцев с начала года по "текущий" для запроса период
//

// конец месяца налогового периода
КонецМесяца = КонецМесяца(НачалоГода(ПериодРегистрации));
// первый месяц
ПериодыТекст = "ВЫБРАТЬ ДАТАВРЕМЯ(" + Формат(КонецМесяца,"ДФ=гггг,М,д,Ч,м,с") + ") КАК Период ПОМЕСТИТЬ ВТПериоды";
// прибавим остальные месяцы
Для Сч = 2 По Месяц(ПериодРегистрации) Цикл
КонецМесяца = КонецМесяца(КонецМесяца+1);
ПериодыТекст = ПериодыТекст +" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(" + Формат(КонецМесяца,"ДФ=гггг,М,д,Ч,м,с") + ")";
КонецЦикла;
Запрос.Текст = ПериодыТекст;
Запрос.Выполнить();

Запрос.Текст =
"ВЫБРАТЬ
| МЕСЯЦ(Периоды.Период) КАК Месяц,
| ЕСТЬNULL(УчетнаяПолитикаНалоговыйУчет.ВидТарифаСтраховыхВзносов, ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ОбщийНалоговыйРежим)) КАК ВидТарифаСтраховыхВзносов
|ПОМЕСТИТЬ ВТИспользуемыеТарифы
|ИЗ
| (ВЫБРАТЬ
| Периоды.Период КАК Период,
| МАКСИМУМ(УчетнаяПолитикаНалоговыйУчет.Период) КАК ПериодРегистра
| ИЗ
| ВТПериоды КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаНалоговыйУчет КАК УчетнаяПолитикаНалоговыйУчет
| ПО Периоды.Период >= УчетнаяПолитикаНалоговыйУчет.Период
| И (УчетнаяПолитикаНалоговыйУчет.Организация = &парамГоловнаяОрганизация)
|
| СГРУППИРОВАТЬ ПО
| Периоды.Период) КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаНалоговыйУчет КАК УчетнаяПолитикаНалоговыйУчет
| ПО Периоды.ПериодРегистра = УчетнаяПолитикаНалоговыйУчет.Период
| И (УчетнаяПолитикаНалоговыйУчет.Организация = &парамГоловнаяОрганизация)
|
|ИНДЕКСИРОВАТЬ ПО
| Месяц
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТарифСтраховыхВзносовСрезПоследних.ВидТарифа КАК ВидТарифа,
| ТарифСтраховыхВзносовСрезПоследних.ПФР,
| ТарифСтраховыхВзносовСрезПоследних.ПФРНакопительная,
| ТарифСтраховыхВзносовСрезПоследних.ФСС,
| ТарифСтраховыхВзносовСрезПоследних.ФФОМС,
| ТарифСтраховыхВзносовСрезПоследних.ТФОМС
|ПОМЕСТИТЬ ВТТарифы
|ИЗ
| РегистрСведений.ТарифСтраховыхВзносов.СрезПоследних(&парамКонецГода, ) КАК ТарифСтраховыхВзносовСрезПоследних
|
|ИНДЕКСИРОВАТЬ ПО
| ВидТарифа
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| МЕСЯЦ(Периоды.Период) КАК Месяц,
| ГражданствоФизЛиц.ФизЛицо КАК Физлицо,
| ЕСТЬNULL(ГражданствоФизЛиц.НеИмеетПравоНаПенсию, ЛОЖЬ) КАК НеИмеетПравоНаПенсию,
| ЕСТЬNULL(ГражданствоФизЛиц.НеИмеетПравоНаМедицинскоеСтрахование, ЛОЖЬ) КАК НеИмеетПравоНаМедицинскоеСтрахование
|ПОМЕСТИТЬ ВТДанныеОПравеНаПенсию
|ИЗ
| (ВЫБРАТЬ
| Периоды.Период КАК Период,
| ГражданствоФизЛиц.ФизЛицо КАК Физлицо,
| МАКСИМУМ(ГражданствоФизЛиц.Период) КАК ПериодРегистра
| ИЗ
| ВТПериоды КАК Периоды
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГражданствоФизЛиц КАК ГражданствоФизЛиц
| ПО Периоды.Период >= ГражданствоФизЛиц.Период
| ГДЕ
| ГражданствоФизЛиц.ФизЛицо В
| (ВЫБРАТЬ
| СписокСотрудников.ФизЛицо
| ИЗ
| ВТСписокСотрудников КАК СписокСотрудников)
|
| СГРУППИРОВАТЬ ПО
| ГражданствоФизЛиц.ФизЛицо,
| Периоды.Период) КАК Периоды
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГражданствоФизЛиц КАК ГражданствоФизЛиц
| ПО Периоды.ПериодРегистра = ГражданствоФизЛиц.Период
| И Периоды.Физлицо = ГражданствоФизЛиц.ФизЛицо
| И (ГражданствоФизЛиц.НеИмеетПравоНаПенсию
| ИЛИ ГражданствоФизЛиц.НеИмеетПравоНаМедицинскоеСтрахование)
|
|ИНДЕКСИРОВАТЬ ПО
| Физлицо,
| Месяц
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СведенияОбИнвалидностиФизлиц.Физлицо КАК Физлицо,
| СведенияОбИнвалидностиФизлиц.Период КАК Период,
| СведенияОбИнвалидностиФизлиц.Инвалидность
|ПОМЕСТИТЬ ВТ_СведенияОбИнвалидности
|ИЗ
| РегистрСведений.СведенияОбИнвалидностиФизлиц КАК СведенияОбИнвалидностиФизлиц
|ГДЕ
| СведенияОбИнвалидностиФизлиц.Физлицо В
| (ВЫБРАТЬ
| СписокСотрудников.ФизЛицо
| ИЗ
| ВТСписокСотрудников КАК СписокСотрудников)
|
|ИНДЕКСИРОВАТЬ ПО
| Физлицо,
| Период
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| МЕСЯЦ(Периоды.Период) КАК Месяц,
| СведенияОбИнвалидностиФизлиц.Физлицо КАК Физлицо
|ПОМЕСТИТЬ ВТДанныеОбИнвалидности
|ИЗ
| (ВЫБРАТЬ
| Периоды.Период КАК Период,
| СведенияОбИнвалидностиФизлиц.Физлицо КАК Физлицо,
| МАКСИМУМ(СведенияОбИнвалидностиФизлиц.Период) КАК ПериодРегистра
| ИЗ
| ВТПериоды КАК Периоды
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СведенияОбИнвалидности КАК СведенияОбИнвалидностиФизлиц
| ПО Периоды.Период >= СведенияОбИнвалидностиФизлиц.Период
|
| СГРУППИРОВАТЬ ПО
| СведенияОбИнвалидностиФизлиц.Физлицо,
| Периоды.Период) КАК Периоды
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СведенияОбИнвалидности КАК СведенияОбИнвалидностиФизлиц
| ПО (СведенияОбИнвалидностиФизлиц.Период = Периоды.ПериодРегистра)
| И Периоды.Физлицо = СведенияОбИнвалидностиФизлиц.Физлицо
| И (СведенияОбИнвалидностиФизлиц.Инвалидность)
|
|ИНДЕКСИРОВАТЬ ПО
| Физлицо,
| Месяц
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СведенияОДоходах.ФизЛицо КАК ФизЛицо,
| МЕСЯЦ(СведенияОДоходах.Период) КАК Месяц,
| СведенияОДоходах.ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам,
| СведенияОДоходах.ОблагаетсяПоДополнительномуТарифу,
| СведенияОДоходах.ВидДохода.ВходитВБазуПФР КАК ВходитВБазуПФР,
| СведенияОДоходах.ВидДохода.ВходитВБазуФСС КАК ВходитВБазуФСС,
| СведенияОДоходах.ВидДохода.ВходитВБазуФОМС КАК ВходитВБазуФОМС,
| СведенияОДоходах.РезультатОборот - СведенияОДоходах.СкидкаОборот КАК ОблагаемыйДоход
|ПОМЕСТИТЬ ВТДоходыПоФизлицамМесяцам
|ИЗ
| РегистрНакопления.СтраховыеВзносыСведенияОДоходах.Обороты(
| &парамНачалоГода,
| &парамКонецМесяцаПериодаРегистрации,
| Месяц,
| Организация = &парамГоловнаяОрганизация
| И Физлицо В
| (ВЫБРАТЬ
| СписокСотрудников.ФизЛицо
| ИЗ
| ВТСписокСотрудников КАК СписокСотрудников)) КАК СведенияОДоходах
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СтраховыеВзносыСведенияОДоходах.ФизЛицо,
| МЕСЯЦ(СтраховыеВзносыСведенияОДоходах.Период),
| СтраховыеВзносыСведенияОДоходах.ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам,
| СтраховыеВзносыСведенияОДоходах.ОблагаетсяПоДополнительномуТарифу,
| СтраховыеВзносыСведенияОДоходах.ВидДохода.ВходитВБазуПФР,
| СтраховыеВзносыСведенияОДоходах.ВидДохода.ВходитВБазуФСС,
| СтраховыеВзносыСведенияОДоходах.ВидДохода.ВходитВБазуФОМС,
| -СтраховыеВзносыСведенияОДоходах.Результат + СтраховыеВзносыСведенияОДоходах.Скидка
|ИЗ
| РегистрНакопления.СтраховыеВзносыСведенияОДоходах КАК СтраховыеВзносыСведенияОДоходах
|ГДЕ
| СтраховыеВзносыСведенияОДоходах.Регистратор = &Регистратор
| И СтраховыеВзносыСведенияОДоходах.Организация = &парамГоловнаяОрганизация
| И СтраховыеВзносыСведенияОДоходах.ФизЛицо В
| (ВЫБРАТЬ
| СписокСотрудников.ФизЛицо
| ИЗ
| ВТСписокСотрудников КАК СписокСотрудников)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СтраховыеВзносыСведенияОДоходах.ФизЛицо,
| СтраховыеВзносыСведенияОДоходах.Месяц,
| СтраховыеВзносыСведенияОДоходах.ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам,
| СтраховыеВзносыСведенияОДоходах.ОблагаетсяПоДополнительномуТарифу,
| СтраховыеВзносыСведенияОДоходах.ВидДохода.ВходитВБазуПФР,
| СтраховыеВзносыСведенияОДоходах.ВидДохода.ВходитВБазуФСС,
| СтраховыеВзносыСведенияОДоходах.ВидДохода.ВходитВБазуФОМС,
| СтраховыеВзносыСведенияОДоходах.ОблагаемыйДоход
|ИЗ
| ВТДанныеДокумента КАК СтраховыеВзносыСведенияОДоходах
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо,
| Месяц
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СведенияОДоходах.ФизЛицо КАК ФизЛицо
|ПОМЕСТИТЬ ВТФизлицаБезОблагаемойБазы
|ИЗ
| ВТДоходыПоФизлицамМесяцам КАК СведенияОДоходах
|
|СГРУППИРОВАТЬ ПО
| СведенияОДоходах.ФизЛицо
|
|ИМЕЮЩИЕ
| СУММА(ВЫБОР
| КОГДА СведенияОДоходах.ВходитВБазуПФР
| ИЛИ СведенияОДоходах.ВходитВБазуФОМС
| ТОГДА СведенияОДоходах.ОблагаемыйДоход
| ИНАЧЕ 0
| КОНЕЦ) < 0
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| РанееИсчисленныеВзносы.ФизЛицо КАК ФизЛицо,
| СУММА(РанееИсчисленныеВзносы.ФССОборот) КАК ФССОборот,
| СУММА(РанееИсчисленныеВзносы.ФФОМСОборот) КАК ФФОМСОборот,
| СУММА(РанееИсчисленныеВзносы.ТФОМСОборот) КАК ТФОМСОборот,
| СУММА(РанееИсчисленныеВзносы.ПФРНакопительнаяОборот) КАК ПФРНакопительнаяОборот,
| СУММА(РанееИсчисленныеВзносы.ПФРСтраховаяОборот) КАК ПФРСтраховаяОборот,
| СУММА(РанееИсчисленныеВзносы.ПФРПоДополнительномуТарифуОборот) КАК ПФРПоДополнительномуТарифуОборот,
| СУММА(РанееИсчисленныеВзносы.ПФРНаДоплатуКПенсииШахтерамОборот) КАК ПФРНаДоплатуКПенсииШахтерамОборот
|ПОМЕСТИТЬ ВТРанееИсчисленныеВзносы
|ИЗ
| (ВЫБРАТЬ
| РанееИсчисленныеВзносы.ФизЛицо КАК ФизЛицо,
| МЕСЯЦ(РанееИсчисленныеВзносы.Период) КАК Месяц,
| РанееИсчисленныеВзносы.ФССОборот КАК ФССОборот,
| РанееИсчисленныеВзносы.ФФОМСОборот КАК ФФОМСОборот,
| РанееИсчисленныеВзносы.ТФОМСОборот КАК ТФОМСОборот,
| РанееИсчисленныеВзносы.ПФРНакопительнаяОборот КАК ПФРНакопительнаяОборот,
| РанееИсчисленныеВзносы.ПФРСтраховаяОборот КАК ПФРСтраховаяОборот,
| РанееИсчисленныеВзносы.ПФРНаДоплатуКПенсииШахтерамОборот КАК ПФРНаДоплатуКПенсииШахтерамОборот,
| РанееИсчисленныеВзносы.ПФРПоДополнительномуТарифуОборот КАК ПФРПоДополнительномуТарифуОборот
| ИЗ
| РегистрНакопления.СтраховыеВзносыИсчисленные.Обороты(
| &парамНачалоГода,
| &парамКонецМесяцаПериодаРегистрации,
| Месяц,
| Организация = &парамГоловнаяОрганизация
| И (НЕ ФизЛицо В
| (ВЫБРАТЬ
| СписокСотрудников.ФизЛицо
| ИЗ
| ВТФизлицаБезОблагаемойБазы КАК СписокСотрудников))
| И ФизЛицо В
| (ВЫБРАТЬ
| СписокСотрудников.ФизЛицо
| ИЗ
| ВТСписокСотрудников КАК СписокСотрудников)) КАК РанееИсчисленныеВзносы
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| СтраховыеВзносыИсчисленные.ФизЛицо,
| МЕСЯЦ(СтраховыеВзносыИсчисленные.Период),
| -СтраховыеВзносыИсчисленные.ФСС,
| -СтраховыеВзносыИсчисленные.ФФОМС,
| -СтраховыеВзносыИсчисленные.ТФОМС,
| -СтраховыеВзносыИсчисленные.ПФРНакопительная,
| -СтраховыеВзносыИсчисленные.ПФРСтраховая,
| -СтраховыеВзносыИсчисленные.ПФРНаДоплатуКПенсииШахтерам,
| -СтраховыеВзносыИсчисленные.ПФРПоДополнительномуТарифу
| ИЗ
| РегистрНакопления.СтраховыеВзносыИсчисленные КАК СтраховыеВзносыИсчисленные
| ГДЕ
| СтраховыеВзносыИсчисленные.Регистратор = &Регистратор
| И СтраховыеВзносыИсчисленные.Организация = &парамГоловнаяОрганизация
| И (НЕ СтраховыеВзносыИсчисленные.ФизЛицо В
| (ВЫБРАТЬ
| СписокСотрудников.ФизЛицо
| ИЗ
| ВТФизлицаБезОблагаемойБазы КАК СписокСотрудников))
| И СтраховыеВзносыИсчисленные.ФизЛицо В
| (ВЫБРАТЬ
| СписокСотрудников.ФизЛицо
| ИЗ
| ВТСписокСотрудников КАК СписокСотрудников)) КАК РанееИсчисленныеВзносы
|
|СГРУППИРОВАТЬ ПО
| РанееИсчисленныеВзносы.ФизЛицо
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Основная.ФизЛицо КАК ФизЛицо,
| Основная.Месяц КАК Месяц,
| СУММА(ВЫБОР
| КОГДА (Иностр.Физлицо ЕСТЬ NULL
| ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию))
| И Основная.ВходитВБазуПФР
| ТОГДА Основная.ОблагаемыйДоход
| ИНАЧЕ 0
| КОНЕЦ) КАК БазаПФР,
| СУММА(ВЫБОР
| КОГДА (Иностр.Физлицо ЕСТЬ NULL
| ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию))
| И Основная.ВходитВБазуФСС
| ТОГДА Основная.ОблагаемыйДоход
| ИНАЧЕ 0
| КОНЕЦ) КАК БазаФСС,
| СУММА(ВЫБОР
| КОГДА (Иностр.Физлицо ЕСТЬ NULL
| ИЛИ (НЕ Иностр.НеИмеетПравоНаМедицинскоеСтрахование))
| И Основная.ВходитВБазуФОМС
| ТОГДА Основная.ОблагаемыйДоход
| ИНАЧЕ 0
| КОНЕЦ) КАК БазаФОМС,
| СУММА(ВЫБОР
| КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL
| И (Иностр.Физлицо ЕСТЬ NULL
| ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию))
| И Основная.ВходитВБазуПФР
| ТОГДА Основная.ОблагаемыйДоход
| ИНАЧЕ 0
| КОНЕЦ) КАК БазаПФРИнвалида,
| СУММА(ВЫБОР
| КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL
| ТОГДА 0
| КОГДА (Иностр.Физлицо ЕСТЬ NULL
| ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию))
| И Основная.ВходитВБазуПФР
| ТОГДА Основная.ОблагаемыйДоход
| ИНАЧЕ 0
| КОНЕЦ) КАК БазаПФРПоОсновномуТарифу,
| СУММА(ВЫБОР
| КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL
| И (Иностр.Физлицо ЕСТЬ NULL
| ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию))
| И Основная.ВходитВБазуФСС
| ТОГДА Основная.ОблагаемыйДоход
| ИНАЧЕ 0
| КОНЕЦ) КАК БазаФССИнвалида,
| СУММА(ВЫБОР
| КОГДА (Инвалид.Физлицо ЕСТЬ НЕ NULL
| ИЛИ ИспользуемыеТарифы.ВидТарифаСтраховыхВзносов = ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ОрганизацияИнвалидов))
| И Основная.ВходитВБазуФСС
| ТОГДА Основная.ОблагаемыйДоход
| ИНАЧЕ 0
| КОНЕЦ) КАК БазаФСС_НСИнвалида,
| СУММА(ВЫБОР
| КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL
| ТОГДА 0
| КОГДА (Иностр.Физлицо ЕСТЬ NULL
| ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию))
| И Основная.ВходитВБазуФСС
| ТОГДА Основная.ОблагаемыйДоход
| ИНАЧЕ 0
| КОНЕЦ) КАК БазаФССПоОсновномуТарифу,
| СУММА(ВЫБОР
| КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL
| ТОГДА 0
| КОГДА ИспользуемыеТарифы.ВидТарифаСтраховыхВзносов = ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ОрганизацияИнвалидов)
| ТОГДА 0
| КОГДА Основная.ВходитВБазуФСС
| ТОГДА Основная.ОблагаемыйДоход
| ИНАЧЕ 0
| КОНЕЦ) КАК БазаФСС_НСПоОсновномуТарифу,
| СУММА(ВЫБОР
| КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL
| И (Иностр.Физлицо ЕСТЬ NULL
| ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию))
| И Основная.ВходитВБазуФОМС
| ТОГДА Основная.ОблагаемыйДоход
| ИНАЧЕ 0
| КОНЕЦ) КАК БазаФОМСИнвалида,
| СУММА(ВЫБОР
| КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL
| ТОГДА 0
| КОГДА (Иностр.Физлицо ЕСТЬ NULL
| ИЛИ (НЕ Иностр.НеИмеетПравоНаМедицинскоеСтрахование))
| И Основная.ВходитВБазуФОМС
| ТОГДА Основная.ОблагаемыйДоход
| ИНАЧЕ 0
| КОНЕЦ) КАК БазаФОМСПоОсновномуТарифу
|ПОМЕСТИТЬ ВТДоходыЗастрахованныхЛиц
|ИЗ
| ВТДоходыПоФизлицамМесяцам КАК Основная
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеОПравеНаПенсию КАК Иностр
| ПО Основная.ФизЛицо = Иностр.Физлицо
| И Основная.Месяц = Иностр.Месяц
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеОбИнвалидности КАК Инвалид
| ПО Основная.ФизЛицо = Инвалид.Физлицо
| И Основная.Месяц = Инвалид.Месяц
| ЛЕВОЕ СОЕДИНЕНИЕ ВТИспользуемыеТарифы КАК ИспользуемыеТарифы
| ПО Основная.Месяц = ИспользуемыеТарифы.Месяц
|ГДЕ
| (НЕ Основная.ФизЛицо В
| (ВЫБРАТЬ
| СписокСотрудников.ФизЛицо
| ИЗ
| ВТФизлицаБезОблагаемойБазы КАК СписокСотрудников))
|
|СГРУППИРОВАТЬ ПО
| Основная.ФизЛицо,
| Основная.Месяц
|
|ИНДЕКСИРОВАТЬ ПО
| Месяц,
| ФизЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| МЕСЯЦ(Периоды.Период) КАК Месяц,
| ДоходыЗастрахованныхЛиц.ФизЛицо КАК ФизЛицо,
| СУММА(ДоходыЗастрахованныхЛиц.БазаПФР) КАК БазаПФР,
| СУММА(ДоходыЗастрахованныхЛиц.БазаФСС) КАК БазаФСС,
| СУММА(ДоходыЗастрахованныхЛиц.БазаФОМС) КАК БазаФОМС
|ПОМЕСТИТЬ ВТНакопленнаяОблагаемаяБаза
|ИЗ
| ВТПериоды КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДоходыЗастрахованныхЛиц КАК ДоходыЗастрахованныхЛиц
| ПО (ДоходыЗастрахованныхЛиц.Месяц МЕЖДУ 1 И МЕСЯЦ(Периоды.Период))
|
|СГРУППИРОВАТЬ ПО
| ДоходыЗастрахованныхЛиц.ФизЛицо,
| МЕСЯЦ(Периоды.Период)
|
|ИНДЕКСИРОВАТЬ ПО
| Месяц,
| ФизЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| База.Месяц КАК Месяц,
| База.ФизЛицо КАК ФизЛицо,
| ВЫБОР
| КОГДА База.БазаПФР <= &ПредельнаяСумма
| ТОГДА 1
| КОГДА База.БазаПФР = ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаПФР, 0)
| ТОГДА 1
| КОГДА ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаПФР, 0) >= &ПредельнаяСумма
| ТОГДА 0
| ИНАЧЕ (&ПредельнаяСумма - ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаПФР, 0)) / (База.БазаПФР - ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаПФР, 0))
| КОНЕЦ КАК КоэффициентОбложенияПФР,
| ВЫБОР
| КОГДА База.БазаФСС <= &ПредельнаяСумма
| ТОГДА 1
| КОГДА База.БазаФСС = ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаФСС, 0)
| ТОГДА 1
| КОГДА ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаФСС, 0) >= &ПредельнаяСумма
| ТОГДА 0
| ИНАЧЕ (&ПредельнаяСумма - ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаФСС, 0)) / (База.БазаФСС - ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаФСС, 0))
| КОНЕЦ КАК КоэффициентОбложенияФСС,
| ВЫБОР
| КОГДА База.БазаФОМС <= &ПредельнаяСумма
| ТОГДА 1
| КОГДА База.БазаФОМС = ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаФОМС, 0)
| ТОГДА 1
| КОГДА ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаФОМС, 0) >= &ПредельнаяСумма
| ТОГДА 0
| ИНАЧЕ (&ПредельнаяСумма - ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаФОМС, 0)) / (База.БазаФОМС - ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаФОМС, 0))
| КОНЕЦ КАК КоэффициентОбложенияФОМС
|ПОМЕСТИТЬ ВТКоэффициентыДостиженияПредельнойСуммы
|ИЗ
| ВТНакопленнаяОблагаемаяБаза КАК База
| ЛЕВОЕ СОЕДИНЕНИЕ ВТНакопленнаяОблагаемаяБаза КАК НакопленоПоПрошлыйМесяц
| ПО (База.Месяц - 1 = НакопленоПоПрошлыйМесяц.Месяц)
| И База.ФизЛицо = НакопленоПоПрошлыйМесяц.ФизЛицо
|
|ИНДЕКСИРОВАТЬ ПО
| Месяц,
| ФизЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДоходыЗастрахованныхЛиц.ФизЛицо КАК ФизЛицо,
| ДоходыЗастрахованныхЛиц.Месяц КАК Месяц,
| ИспользуемыеТарифы.ВидТарифаСтраховыхВзносов,
| ВЫБОР
| КОГДА Коэффициенты.КоэффициентОбложенияПФР = 1
| ТОГДА ДоходыЗастрахованныхЛиц.БазаПФРИнвалида
| КОГДА Коэффициенты.КоэффициентОбложенияПФР = 0
| ТОГДА 0
| КОГДА ДоходыЗастрахованныхЛиц.БазаПФРИнвалида = 0
| ТОГДА 0
| ИНАЧЕ &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаПФР, 0)
| КОНЕЦ КАК БазаПФРИнвалида,
| ВЫБОР
| КОГДА Коэффициенты.КоэффициентОбложенияПФР = 1
| ТОГДА ДоходыЗастрахованныхЛиц.БазаПФРПоОсновномуТарифу
| КОГДА Коэффициенты.КоэффициентОбложенияПФР = 0
| ТОГДА 0
| КОГДА ДоходыЗастрахованныхЛиц.БазаПФРПоОсновномуТарифу = 0
| ТОГДА 0
| ИНАЧЕ &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаПФР, 0)
| КОНЕЦ КАК БазаПФРПоОсновномуТарифу,
| ВЫБОР
| КОГДА Коэффициенты.КоэффициентОбложенияФСС = 1
| ТОГДА ДоходыЗастрахованныхЛиц.БазаФССИнвалида
| КОГДА Коэффициенты.КоэффициентОбложенияФСС = 0
| ТОГДА 0
| КОГДА ДоходыЗастрахованныхЛиц.БазаФССИнвалида = 0
| ТОГДА 0
| ИНАЧЕ &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаФСС, 0)
| КОНЕЦ КАК БазаФССИнвалида,
| ВЫБОР
| КОГДА Коэффициенты.КоэффициентОбложенияФСС = 1
| ТОГДА ДоходыЗастрахованныхЛиц.БазаФССПоОсновномуТарифу
| КОГДА Коэффициенты.КоэффициентОбложенияФСС = 0
| ТОГДА 0
| КОГДА ДоходыЗастрахованныхЛиц.БазаФССПоОсновномуТарифу = 0
| ТОГДА 0
| ИНАЧЕ &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаФСС, 0)
| КОНЕЦ КАК БазаФССПоОсновномуТарифу,
| ВЫБОР
| КОГДА Коэффициенты.КоэффициентОбложенияФОМС = 1
| ТОГДА ДоходыЗастрахованныхЛиц.БазаФОМСИнвалида
| КОГДА Коэффициенты.КоэффициентОбложенияФОМС = 0
| ТОГДА 0
| КОГДА ДоходыЗастрахованныхЛиц.БазаФОМСИнвалида = 0
| ТОГДА 0
| ИНАЧЕ &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаФОМС, 0)
| КОНЕЦ КАК БазаФОМСИнвалида,
| ВЫБОР
| КОГДА Коэффициенты.КоэффициентОбложенияФОМС = 1
| ТОГДА ДоходыЗастрахованныхЛиц.БазаФОМСПоОсновномуТарифу
| КОГДА Коэффициенты.КоэффициентОбложенияФОМС = 0
| ТОГДА 0
| КОГДА ДоходыЗастрахованныхЛиц.БазаФОМСПоОсновномуТарифу = 0
| ТОГДА 0
| ИНАЧЕ &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаФОМС, 0)
| КОНЕЦ КАК БазаФОМСПоОсновномуТарифу
|ПОМЕСТИТЬ ВТОграниченнаяОблагаемаяБаза
|ИЗ
| ВТДоходыЗастрахованныхЛиц КАК ДоходыЗастрахованныхЛиц
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКоэффициентыДостиженияПредельнойСуммы КАК Коэффициенты
| ПО ДоходыЗастрахованныхЛиц.ФизЛицо = Коэффициенты.ФизЛицо
| И ДоходыЗастрахованныхЛиц.Месяц = Коэффициенты.Месяц
| ЛЕВОЕ СОЕДИНЕНИЕ ВТНакопленнаяОблагаемаяБаза КАК НакопленнаяОблагаемаяБазаПоПредыдущийМесяц
| ПО ДоходыЗастрахованныхЛиц.ФизЛицо = НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.ФизЛицо
| И (ДоходыЗастрахованныхЛиц.Месяц - 1 = НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.Месяц)
| ЛЕВОЕ СОЕДИНЕНИЕ ВТИспользуемыеТарифы КАК ИспользуемыеТарифы
| ПО ДоходыЗастрахованныхЛиц.Месяц = ИспользуемыеТарифы.Месяц
|
|ИНДЕКСИРОВАТЬ ПО
| Месяц,
| ФизЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОграниченнаяОблагаемаяБаза.ФизЛицо КАК ФизЛицо,
| ОграниченнаяОблагаемаяБаза.ВидТарифаСтраховыхВзносов,
| ВЫБОР
| КОГДА ГОД(ОграниченнаяОблагаемаяБаза.ФизЛицо.ДатаРождения) < 1967
| ТОГДА 0
| ИНАЧЕ ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаПФРПоОсновномуТарифу) * ОсновнойТариф.ПФРНакопительная / 100 КАК ЧИСЛО(15, 2))
| КОНЕЦ КАК РезультатПФРНакопительная,
| ВЫБОР
| КОГДА ГОД(ОграниченнаяОблагаемаяБаза.ФизЛицо.ДатаРождения) < 1967
| ТОГДА ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаПФРПоОсновномуТарифу) * ОсновнойТариф.ПФР / 100 КАК ЧИСЛО(15, 2))
| ИНАЧЕ ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаПФРПоОсновномуТарифу) * (ОсновнойТариф.ПФР - ОсновнойТариф.ПФРНакопительная) / 100 КАК ЧИСЛО(15, 2))
| КОНЕЦ КАК РезультатПФРСтраховая,
| ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаФССПоОсновномуТарифу) * ОсновнойТариф.ФСС / 100 КАК ЧИСЛО(15, 2)) КАК РезультатФСС,
| ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаФОМСПоОсновномуТарифу) * ОсновнойТариф.ФФОМС / 100 КАК ЧИСЛО(15, 2)) КАК РезультатФФОМС,
| ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаФОМСПоОсновномуТарифу) * ОсновнойТариф.ТФОМС / 100 КАК ЧИСЛО(15, 2)) КАК РезультатТФОМС
|ПОМЕСТИТЬ ВТИсчисленоПоОсновномуТарифу
|ИЗ
| ВТОграниченнаяОблагаемаяБаза КАК ОграниченнаяОблагаемаяБаза
| ЛЕВОЕ СОЕДИНЕНИЕ ВТТарифы КАК ОсновнойТариф
| ПО ОграниченнаяОблагаемаяБаза.ВидТарифаСтраховыхВзносов = ОсновнойТариф.ВидТарифа
|
|СГРУППИРОВАТЬ ПО
| ОсновнойТариф.ПФРНакопительная,
| ОсновнойТариф.ПФР,
| ОсновнойТариф.ФСС,
| ОсновнойТариф.ФФОМС,
| ОсновнойТариф.ТФОМС,
| ОграниченнаяОблагаемаяБаза.ВидТарифаСтраховыхВзносов,
| ОграниченнаяОблагаемаяБаза.ФизЛицо,
| ОграниченнаяОблагаемаяБаза.ФизЛицо.ДатаРождения
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОграниченнаяОблагаемаяБаза.ФизЛицо КАК ФизЛицо,
| ВЫБОР
| КОГДА ГОД(ОграниченнаяОблагаемаяБаза.ФизЛицо.ДатаРождения) < 1967
| ТОГДА 0
| ИНАЧЕ ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаПФРИнвалида) * ТарифИнвалида.ПФРНакопительная / 100 КАК ЧИСЛО(15, 2))
| КОНЕЦ КАК РезультатПФРНакопительнаяИнвалида,
| ВЫБОР
| КОГДА ГОД(ОграниченнаяОблагаемаяБаза.ФизЛицо.ДатаРождения) < 1967
| ТОГДА ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаПФРИнвалида) * ТарифИнвалида.ПФР / 100 КАК ЧИСЛО(15, 2))
| ИНАЧЕ ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаПФРИнвалида) * (ТарифИнвалида.ПФР - ТарифИнвалида.ПФРНакопительная) / 100 КАК ЧИСЛО(15, 2))
| КОНЕЦ КАК РезультатПФРСтраховаяИнвалида,
| ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаФССИнвалида) * ТарифИнвалида.ФСС / 100 КАК ЧИСЛО(15, 2)) КАК РезультатФССИнвалида,
| ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаФОМСИнвалида) * ТарифИнвалида.ФФОМС / 100 КАК ЧИСЛО(15, 2)) КАК РезультатФФОМСИнвалида,
| ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаФОМСИнвалида) * ТарифИнвалида.ТФОМС / 100 КАК ЧИСЛО(15, 2)) КАК РезультатТФОМСИнвалида
|ПОМЕСТИТЬ ВТИсчисленоПоЛьготномуТарифу
|ИЗ
| ВТОграниченнаяОблагаемаяБаза КАК ОграниченнаяОблагаемаяБаза
| ЛЕВОЕ СОЕДИНЕНИЕ ВТТарифы КАК ТарифИнвалида
| ПО (ТарифИнвалида.ВидТарифа = ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ОрганизацияИнвалидов))
|
|СГРУППИРОВАТЬ ПО
| ТарифИнвалида.ПФРНакопительная,
| ТарифИнвалида.ПФР,
| ТарифИнвалида.ФСС,
| ТарифИнвалида.ФФОМС,
| ТарифИнвалида.ТФОМС,
| ОграниченнаяОблагаемаяБаза.ФизЛицо,
| ОграниченнаяОблагаемаяБаза.ФизЛицо.ДатаРождения
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВЫРАЗИТЬ(СУММА(ДоходыФизлиц.ОблагаемыйДоход) * 0.14 КАК ЧИСЛО(15, 2)) КАК РезультатПоДополнительномуТарифу,
| ДоходыФизлиц.ФизЛицо КАК ФизЛицо
|ПОМЕСТИТЬ ВТВзносыПоДополнительномуТарифу
|ИЗ
| ВТДоходыПоФизлицамМесяцам КАК ДоходыФизлиц
|ГДЕ
| ДоходыФизлиц.ОблагаетсяПоДополнительномуТарифу
| И ДоходыФизлиц.ВходитВБазуПФР
| И (НЕ ДоходыФизлиц.ФизЛицо В
| (ВЫБРАТЬ
| СписокСотрудников.ФизЛицо
| ИЗ
| ВТФизлицаБезОблагаемойБазы КАК СписокСотрудников))
|
|СГРУППИРОВАТЬ ПО
| ДоходыФизлиц.ФизЛицо
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВЫРАЗИТЬ(СУММА(ДоходыФизлиц.ОблагаемыйДоход) * 0.067 КАК ЧИСЛО(15, 2)) КАК РезультатПоДополнительномуТарифу,
| ДоходыФизлиц.ФизЛицо КАК ФизЛицо
|ПОМЕСТИТЬ ВТВзносыДляШахтеров
|ИЗ
| ВТДоходыПоФизлицамМесяцам КАК ДоходыФизлиц
|ГДЕ
| ДоходыФизлиц.ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам
| И ДоходыФизлиц.ВходитВБазуПФР
| И (НЕ ДоходыФизлиц.ФизЛицо В
| (ВЫБРАТЬ
| СписокСотрудников.ФизЛицо
| ИЗ
| ВТФизлицаБезОблагаемойБазы КАК СписокСотрудников))
|
|СГРУППИРОВАТЬ ПО
| ДоходыФизлиц.ФизЛицо
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Начислено.ФизЛицо КАК ФизЛицо,
| (ВЫРАЗИТЬ(Начислено.БазаФСС_НСПоОсновномуТарифу * &СтавкаВзносаФСС_НС_ПЗ КАК ЧИСЛО(15, 2))) + (ВЫРАЗИТЬ(Начислено.БазаФСС_НСИнвалида * &СтавкаВзносаФСС_НС_ПЗ * 0.6 КАК ЧИСЛО(15, 2))) КАК Взносов
|ПОМЕСТИТЬ ВТВзносыФССНесчастныеСлучаи
|ИЗ
| ВТДоходыЗастрахованныхЛиц КАК Начислено
|ГДЕ
| Начислено.Месяц = &парамМесяцРасчета
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВсегоИсчислено.ФизЛицо КАК ФизЛицо,
| ВсегоИсчислено.Порядок,
| СУММА(ВсегоИсчислено.РезультатПФРНакопительная) КАК РезультатПФРНакопительная,
| СУММА(ВсегоИсчислено.РезультатПФРСтраховая) КАК РезультатПФРСтраховая,
| СУММА(ВсегоИсчислено.РезультатФСС) КАК РезультатФСС,
| СУММА(ВсегоИсчислено.РезультатФФОМС) КАК РезультатФФОМС,
| СУММА(ВсегоИсчислено.РезультатТФОМС) КАК РезультатТФОМС,
| СУММА(ВсегоИсчислено.РезультатПоДополнительномуТарифу) КАК РезультатПоДополнительномуТарифу,
| СУММА(ВсегоИсчислено.РезультатФССНесчастныеСлучаи) КАК РезультатФССНесчастныеСлучаи,
| СУММА(ВсегоИсчислено.РезультатДляШахтеров) КАК РезультатДляШахтеров
|ПОМЕСТИТЬ ВТСуммыВзносовНарастающимИтогом
|ИЗ
| (ВЫБРАТЬ
| ИсчисленоПоОсновномуТарифу.ФизЛицо КАК ФизЛицо,
| ИсчисленоПоОсновномуТарифу.ФизЛицо.Наименование КАК Порядок,
| ИсчисленоПоОсновномуТарифу.РезультатПФРНакопительная КАК РезультатПФРНакопительная,
| ИсчисленоПоОсновномуТарифу.РезультатПФРСтраховая КАК РезультатПФРСтраховая,
| ИсчисленоПоОсновномуТарифу.РезультатФСС КАК РезультатФСС,
| ИсчисленоПоОсновномуТарифу.РезультатФФОМС КАК РезультатФФОМС,
| ИсчисленоПоОсновномуТарифу.РезультатТФОМС КАК РезультатТФОМС,
| 0 КАК РезультатПоДополнительномуТарифу,
| 0 КАК РезультатФССНесчастныеСлучаи,
| 0 КАК РезультатДляШахтеров
| ИЗ
| ВТИсчисленоПоОсновномуТарифу КАК ИсчисленоПоОсновномуТарифу
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ИсчисленоПоЛьготномуТарифу.ФизЛицо,
| ИсчисленоПоЛьготномуТарифу.ФизЛицо.Наименование,
| ИсчисленоПоЛьготномуТарифу.РезультатПФРНакопительнаяИнвалида,
| ИсчисленоПоЛьготномуТарифу.РезультатПФРСтраховаяИнвалида,
| ИсчисленоПоЛьготномуТарифу.РезультатФССИнвалида,
| ИсчисленоПоЛьготномуТарифу.РезультатФФОМСИнвалида,
| ИсчисленоПоЛьготномуТарифу.РезультатТФОМСИнвалида,
| 0,
| 0,
| 0
| ИЗ
| ВТИсчисленоПоЛьготномуТарифу КАК ИсчисленоПоЛьготномуТарифу
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВзносыПоДополнительномуТарифу.ФизЛицо,
| ВзносыПоДополнительномуТарифу.ФизЛицо.Наименование,
| 0,
| 0,
| 0,
| 0,
| 0,
| ВзносыПоДополнительномуТарифу.РезультатПоДополнительномуТарифу,
| 0,
| 0
| ИЗ
| ВТВзносыПоДополнительномуТарифу КАК ВзносыПоДополнительномуТарифу
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВзносыПоДополнительномуТарифу.ФизЛицо,
| ВзносыПоДополнительномуТарифу.ФизЛицо.Наименование,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| ВзносыПоДополнительномуТарифу.РезультатПоДополнительномуТарифу
| ИЗ
| ВТВзносыДляШахтеров КАК ВзносыПоДополнительномуТарифу
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВзносыФС_НС_ПЗ.ФизЛицо,
| ВзносыФС_НС_ПЗ.ФизЛицо.Наименование,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| ВзносыФС_НС_ПЗ.Взносов,
| 0
| ИЗ
| ВТВзносыФССНесчастныеСлучаи КАК ВзносыФС_НС_ПЗ) КАК ВсегоИсчислено
|
|СГРУППИРОВАТЬ ПО
| ВсегоИсчислено.ФизЛицо,
| ВсегоИсчислено.Порядок
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СуммыНарастающимИтогом.ФизЛицо КАК ФизЛицо,
| СуммыНарастающимИтогом.Порядок КАК Порядок,
| СуммыНарастающимИтогом.РезультатФСС - ЕСТЬNULL(ИсчисленныеВзносы.ФССОборот, 0) КАК ФСС,
| СуммыНарастающимИтогом.РезультатФФОМС - ЕСТЬNULL(ИсчисленныеВзносы.ФФОМСОборот, 0) КАК ФФОМС,
| СуммыНарастающимИтогом.РезультатТФОМС - ЕСТЬNULL(ИсчисленныеВзносы.ТФОМСОборот, 0) КАК ТФОМС,
| СуммыНарастающимИтогом.РезультатПФРНакопительная - ЕСТЬNULL(ИсчисленныеВзносы.ПФРНакопительнаяОборот, 0) КАК ПФРНакопительная,
| СуммыНарастающимИтогом.РезультатПФРСтраховая - ЕСТЬNULL(ИсчисленныеВзносы.ПФРСтраховаяОборот, 0) КАК ПФРСтраховая,
| СуммыНарастающимИтогом.РезультатПоДополнительномуТарифу - ЕСТЬNULL(ИсчисленныеВзносы.ПФРПоДополнительномуТарифуОборот, 0) КАК ПФРПоДополнительномуТарифу,
| СуммыНарастающимИтогом.РезультатФССНесчастныеСлучаи КАК ФССНесчастныеСлучаи,
| СуммыНарастающимИтогом.РезультатДляШахтеров - ЕСТЬNULL(ИсчисленныеВзносы.ПФРНаДоплатуКПенсииШахтерамОборот, 0) КАК ПФРНаДоплатуКПенсииШахтерам
|ПОМЕСТИТЬ ВТВзносыЗаМесяц
|ИЗ
| ВТСуммыВзносовНарастающимИтогом КАК СуммыНарастающимИтогом
| ЛЕВОЕ СОЕДИНЕНИЕ ВТРанееИсчисленныеВзносы КАК ИсчисленныеВзносы
| ПО СуммыНарастающимИтогом.ФизЛицо = ИсчисленныеВзносы.ФизЛицо
|
|ИНДЕКСИРОВАТЬ ПО
| Порядок
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Взносы.ФизЛицо,
| Взносы.ФСС,
| Взносы.ФФОМС,
| Взносы.ТФОМС,
| Взносы.ПФРНакопительная,
| Взносы.ПФРСтраховая,
| Взносы.ПФРПоДополнительномуТарифу,
| Взносы.ФССНесчастныеСлучаи,
| Взносы.ПФРНаДоплатуКПенсииШахтерам
|ИЗ
| ВТВзносыЗаМесяц КАК Взносы
|ГДЕ
| (Взносы.ФСС <> 0
| ИЛИ Взносы.ФФОМС <> 0
| ИЛИ Взносы.ТФОМС <> 0
| ИЛИ Взносы.ПФРНакопительная <> 0
| ИЛИ Взносы.ПФРСтраховая <> 0
| ИЛИ Взносы.ПФРПоДополнительномуТарифу <> 0
| ИЛИ Взносы.ПФРНаДоплатуКПенсииШахтерам <> 0
| ИЛИ Взносы.ФССНесчастныеСлучаи <> 0)
|
|УПОРЯДОЧИТЬ ПО
| Взносы.Порядок";

Запрос.Текст = СтрЗаменить(Запрос.Текст,"РегистрСведений.УчетнаяПолитикаНалоговыйУчет", ЗаполнениеРегламентированнойОтчетностиПереопределяемый.ИмяУчетнойПолитики());

Возврат Запрос.Выполнить().Выгрузить();

КонецФункции // ПолучитьДанныеРасчета
 
  Исправлено в релизе: 2.5.32  
 
  Код ошибки: 10073399  
  Дата публикации: 16.02.2011 16:57:09  
  Дата последнего изменения: 16.02.2011 0:00:00  
  Описание: Если в текущем месяце зарегистрировано исправление больничного листа, то при расчете страховых взносов выдается сообщение об ошибке.  
  Способ исправления: Заменить процедуры ОбработатьДанныеУчета2011() и
ПолучитьДанныеУчета2011() о.м.
РасчетСтраховыхВзносовДополнительный следующими фрагментами:

Процедура ОбработатьДанныеУчета2011(ДокументОбъект, ВыборкаПоШапкеДокумента,РезультатДанныеУчета, Успешно, НаборЗаписей, ТаблицаОшибок)

// признак основных начислений
ЭтоОсновныеНачисления = (ТипЗнч(НаборЗаписей) = Тип("РегистрРасчетаНаборЗаписей.ЕСНОсновныеНачисления"));

мДлинаСуток = 86400; // в секундах

ПособияСоциальномуСтрахованию = ДокументОбъект.ПособияПоСоциальномуСтрахованию;
ПособияПоУходуЗаРебенкомДоПолутораЛет = ДокументОбъект.ПособияПоУходуЗаРебенкомДоПолутораЛет;

РаспределятьПоБазовымНачислениям = Справочники.ДоходыПоСтраховымВзносам.РаспределятьПоБазовымНачислениям;

// структура поиска для позиционирования в ДанныеУчетаВспомогательные
// при необходимости суммирования "базовых" ресурсов
СтруктураПоиска = Новый Структура("Регистратор,НомерСтроки");

// структура поиска в таблице ошибок мТаблицаОшибок
СтруктураПоискаОшибок = Новый Структура("Регистратор,НомерСтроки,КодОшибки");

// основная выборка - по ней ведем обход и вводим записи движений
ДанныеУчета = РезультатДанныеУчета.Выбрать();

// вспомогательная выборка - по ней ведем суммирование базовых результатов
ДанныеУчетаВспомогательные = РезультатДанныеУчета.Выбрать();

ПродолжатьОбработку = ДанныеУчета.Следующий();
Пока ПродолжатьОбработку Цикл

СтрокаДанных = СоздатьСтрокуДвижений(ВыборкаПоШапкеДокумента, ДанныеУчета, НаборЗаписей, ЭтоОсновныеНачисления);

Если ДанныеУчета.Сторно Тогда

// необходимо обойти все данные относящиеся к одной строке основного регистра и
// выполнить распределение, нормируя на долю
ЕстьДанныеУчетаСторно = Истина;

// текущий ключ поиска
ТекущийРегистратор = ДанныеУчета.Регистратор;
ТекущийНомерСтроки = ДанныеУчета.НомерСтроки;
// позиционируемся во вспомогательной выборке по запросу для суммирования "базовых" данных
СтруктураПоиска.Регистратор = ТекущийРегистратор;
СтруктураПоиска.НомерСтроки = ТекущийНомерСтроки;
Если ДанныеУчетаВспомогательные.Регистратор <> ТекущийРегистратор ИЛИ
ДанныеУчетаВспомогательные.НомерСтроки <> ТекущийНомерСтроки Тогда
// ищем следующую строку во спомогательной выборке если она не является искомой
ДанныеУчетаВспомогательные.НайтиСледующий(СтруктураПоиска);
КонецЕсли;

СуммаПоСтроке = 0;
// суммируем базовые ресурсы по текущей строке набора записей
Пока ДанныеУчетаВспомогательные.Регистратор = ТекущийРегистратор И ДанныеУчетаВспомогательные.НомерСтроки = ТекущийНомерСтроки Цикл
Если ДанныеУчетаВспомогательные.РезультатСторно = NULL Тогда
//нет данных отражения в учете сторно-записи
Успешно = Ложь;
ЕстьДанныеУчетаСторно = Ложь;
ЗарегистрироватьОшибкуОбработкиДанныхУчета(ТаблицаОшибок, ДанныеУчетаВспомогательные, ЭтоОсновныеНачисления, СтруктураПоискаОшибок, 1);
Иначе
СуммаПоСтроке = СуммаПоСтроке + ДанныеУчетаВспомогательные.РезультатСторно;
КонецЕсли;
Если Не ДанныеУчетаВспомогательные.Следующий() Тогда
Прервать;
КонецЕсли;
КонецЦикла;

// суммарная доля, которую уже "разбросали" на строки с одинаковым регистратором и номером строки
СуммарнаяДоля = 0;
СуммарнаяДоляДоп = 0;
// полный результат
ПолныйРезультат = ДанныеУчета.Результат;
ПолныйРезультатДоп = ДанныеУчета.ДополнительныйРезультат;
// обходим строки и вычисляем долю результата по базовым записям
ПерваяИзГруппыСтрок = Истина;
Пока ДанныеУчета.Регистратор = ТекущийРегистратор И ДанныеУчета.НомерСтроки = ТекущийНомерСтроки Цикл
// если это не первая из группы "базовых" строк по одной строке основного регистра
// то создаем очередную строку движений
Если Не ПерваяИзГруппыСтрок Тогда
СтрокаДанных = СоздатьСтрокуДвижений(ВыборкаПоШапкеДокумента, ДанныеУчета, НаборЗаписей, ЭтоОсновныеНачисления);
Иначе
ПерваяИзГруппыСтрок = Ложь;
КонецЕсли;

Если СуммаПоСтроке = 0 Тогда
Доля = 0;
ДоляДоп = 0;
Иначе
Если ДанныеУчета.РезультатСторно = NULL Тогда
Доля = 0;
ДоляДоп = 0;
Иначе
Доля = Окр(ПолныйРезультат * ДанныеУчета.РезультатСторно / СуммаПоСтроке,2);
ДоляДоп = Окр(ПолныйРезультатДоп * ДанныеУчета.РезультатСторно / СуммаПоСтроке,2);
КонецЕсли;
КонецЕсли;

СтрокаДанных.Результат = ?(ПолныйРезультат > 0,Мин(Доля,ПолныйРезультат - СуммарнаяДоля),Макс(Доля,ПолныйРезультат - СуммарнаяДоля));
ДополнительныйРезультат = ?(ПолныйРезультатДоп > 0,Мин(ДоляДоп, ПолныйРезультатДоп - СуммарнаяДоляДоп),Макс(ДоляДоп,ПолныйРезультатДоп - СуммарнаяДоляДоп));
СуммарнаяДоля = СуммарнаяДоля + СтрокаДанных.Результат;
СуммарнаяДоляДоп = СуммарнаяДоляДоп + ДополнительныйРезультат;

Если ДанныеУчета.ЭтоПособияФСС Тогда

Если ЕстьДанныеУчетаСторно Тогда
СтрокаДанных.ПериодДействияНачало = ДанныеУчета.ПериодДействияНачалоСторно;
СтрокаДанных.ПериодДействияКонец = ДанныеУчета.ПериодДействияКонецСторно;
КонецЕсли;

Если ДанныеУчета.ВидПособияСоциальногоСтрахования = Перечисления.ВидыПособийСоциальногоСтрахования.ПоУходуЗаРебенкомДоПолутораЛет Тогда

СтрокаУчетаПособий = ДокументОбъект.ПособияПоУходуЗаРебенкомДоПолутораЛет.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаУчетаПособий,СтрокаДанных);
ЗаполнитьЗначенияСвойств(СтрокаУчетаПособий,ДанныеУчета,"ВыплатаЗаСчетФедеральногоБюджета");
СтрокаУчетаПособий.ПособиеПоУходуЗаПервымРебенком = СтрокаДанных.Результат * ДанныеУчета.ДоляПособияНаПервогоРебенка;
СтрокаУчетаПособий.ПособиеПоУходуЗаВторымРебенком = СтрокаДанных.Результат - СтрокаУчетаПособий.ПособиеПоУходуЗаПервымРебенком;
СтрокаУчетаПособий.ПособиеПоУходуЗаПервымРебенкомСверхНорм = ДополнительныйРезультат * ДанныеУчета.ДоляПособияНаПервогоРебенка;
СтрокаУчетаПособий.ПособиеПоУходуЗаВторымРебенкомСверхНорм = ДополнительныйРезультат - СтрокаУчетаПособий.ПособиеПоУходуЗаПервымРебенкомСверхНорм;

ИначеЕсли ЗначениеЗаполнено(ДанныеУчета.ВидПособияСоциальногоСтрахования) Тогда

СтрокаУчетаПособий = ПособияСоциальномуСтрахованию.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаУчетаПособий,ДанныеУчета);
СтрокаУчетаПособий.ПериодДействияНачало = СтрокаДанных.ПериодДействияНачало;
СтрокаУчетаПособий.ПериодДействияКонец = СтрокаДанных.ПериодДействияКонец;
СтрокаУчетаПособий.СуммаВсего = СтрокаДанных.Результат;
СтрокаУчетаПособий.СуммаСверхНорм = ДополнительныйРезультат;

СтрокаУчетаПособий.ДатаСтраховогоСлучая = ДанныеУчета.ДатаНачалаСобытия;

Если ЕстьДанныеУчетаСторно Тогда

Если ДанныеУчета.КодДоходаЕСН = Справочники.ДоходыПоСтраховымВзносам.НеОблагаетсяЦеликом Тогда
СтрокаУчетаПособий.СпособФинансированияПособий = Перечисления.СпособыФинансированияПособийСоцстрахования.ЗаСчетРаботодателя;
Иначе
СтрокаУчетаПособий.СпособФинансированияПособий = Перечисления.СпособыФинансированияПособийСоцстрахования.ЗаСчетФСС;
КонецЕсли;
СтрокаУчетаПособий.ОплаченныеДни = -1 * ДанныеУчета.ВсегоДнейНетрудоспособностиСторно;

Если ДанныеУчета.ВариантОбработкиЗаписиПриОтраженииВРеглУчете = Перечисления.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйОбщееЗаболевание
и ДанныеУчета.КодДоходаЕСН = Справочники.ДоходыПоСтраховымВзносам.НеОблагаетсяЦеликом Тогда

СтрокаУчетаПособий.СуммаСверхНорм = 0;
СтрокаУчетаПособий.ВыплатаЗаСчетФедеральногоБюджета = Перечисления.ВыплатыПособийЗаСчетФедеральногоБюджета.ПустаяСсылка();

КонецЕсли;

КонецЕсли;

КонецЕсли;

ИначеЕсли ДанныеУчета.ЭтоЕдиновременноеПособиеФСС Тогда

СтрокаУчетаПособий = ПособияСоциальномуСтрахованию.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаУчетаПособий,ДанныеУчета);
СтрокаУчетаПособий.СпособФинансированияПособий = Перечисления.СпособыФинансированияПособийСоцстрахования.ЗаСчетФСС;
СтрокаУчетаПособий.СуммаВсего = СтрокаДанных.Результат;
СтрокаУчетаПособий.ДатаСтраховогоСлучая = ДанныеУчета.ДатаНачалаСобытия;

КонецЕсли;

Если Не ДанныеУчета.Следующий() Тогда
ПродолжатьОбработку = Ложь;
Прервать;
КонецЕсли;

КонецЦикла;
// ошибки округления складываются на последнюю запись из группы базовых записей
СтрокаДанных.Результат = СтрокаДанных.Результат + ПолныйРезультат - СуммарнаяДоля;

ИначеЕсли ДанныеУчета.ЭтоЕдиновременноеПособиеФСС Тогда

СтрокаУчетаПособий = ПособияСоциальномуСтрахованию.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаУчетаПособий,ДанныеУчета);
СтрокаУчетаПособий.СпособФинансированияПособий = Перечисления.СпособыФинансированияПособийСоцстрахования.ЗаСчетФСС;
СтрокаУчетаПособий.СуммаВсего = СтрокаДанных.Результат;
СтрокаУчетаПособий.ДатаСтраховогоСлучая = ДанныеУчета.ДатаНачалаСобытия;

Если Не ЗначениеЗаполнено(ДанныеУчета.КодДоходаЕСН) Тогда
// у вида расчета не заполнен реквизит КодДоходаЕСН
Успешно = Ложь;
ЗарегистрироватьОшибкуОбработкиДанныхУчета(ТаблицаОшибок, ДанныеУчета, ЭтоОсновныеНачисления, СтруктураПоискаОшибок, 6);
КонецЕсли;

Если Не ДанныеУчета.Следующий() Тогда
ПродолжатьОбработку = Ложь;
КонецЕсли;

ИначеЕсли ДанныеУчета.ЭтоПособияФСС Тогда

// текущий ключ поиска
ТекущийРегистратор = ДанныеУчета.Регистратор;
ТекущийНомерСтроки = ДанныеУчета.НомерСтроки;

Если ДанныеУчета.ВариантОбработкиЗаписиПриОтраженииВРеглУчете = Перечисления.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйТравмаНаПроизводстве Тогда

СтрокаДанных.КодДоходаЕСН = Справочники.ДоходыПоСтраховымВзносам.НеОблагаетсяЦеликом;
СтрокаУчетаПособий = ПособияСоциальномуСтрахованию.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаУчетаПособий,ДанныеУчета);
СтрокаУчетаПособий.СпособФинансированияПособий = Перечисления.СпособыФинансированияПособийСоцстрахования.ЗаСчетФСС;
СтрокаУчетаПособий.СуммаВсего = СтрокаДанных.Результат;
СтрокаУчетаПособий.ОплаченныеДни = ?(ДанныеУчета.ВидПособияСоциальногоСтрахования = Перечисления.ВидыПособийСоциальногоСтрахования.ДополнительныйОтпускПослеНесчастныхСлучаев,ДанныеУчета.НормаДней,ДанныеУчета.ВсегоДнейНетрудоспособности);
СтрокаУчетаПособий.ДатаСтраховогоСлучая = ДанныеУчета.ДатаНачалаСобытия;

ИначеЕсли ДанныеУчета.ВидПособияСоциальногоСтрахования = Перечисления.ВидыПособийСоциальногоСтрахования.ПоУходуЗаРебенкомДоПолутораЛет Тогда

СтрокаДанных.КодДоходаЕСН = Справочники.ДоходыПоСтраховымВзносам.ПособияЗаСчетФСС;
СтрокаУчетаПособий = ПособияПоУходуЗаРебенкомДоПолутораЛет.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаУчетаПособий,СтрокаДанных);
ЗаполнитьЗначенияСвойств(СтрокаУчетаПособий,ДанныеУчета,"ВыплатаЗаСчетФедеральногоБюджета");
СтрокаУчетаПособий.ПособиеПоУходуЗаПервымРебенком = СтрокаДанных.Результат * ДанныеУчета.ДоляПособияНаПервогоРебенка;
СтрокаУчетаПособий.ПособиеПоУходуЗаВторымРебенком = СтрокаДанных.Результат - СтрокаУчетаПособий.ПособиеПоУходуЗаПервымРебенком;
СтрокаУчетаПособий.ПособиеПоУходуЗаПервымРебенкомСверхНорм = ДанныеУчета.ДополнительныйРезультат * ДанныеУчета.ДоляПособияНаПервогоРебенка;
СтрокаУчетаПособий.ПособиеПоУходуЗаВторымРебенкомСверхНорм = ДанныеУчета.ДополнительныйРезультат - СтрокаУчетаПособий.ПособиеПоУходуЗаПервымРебенкомСверхНорм;

Иначе

СтрокаДанных.КодДоходаЕСН = Справочники.ДоходыПоСтраховымВзносам.ПособияЗаСчетФСС;
СтрокаУчетаПособий = ПособияСоциальномуСтрахованию.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаУчетаПособий,ДанныеУчета);
СтрокаУчетаПособий.СпособФинансированияПособий = Перечисления.СпособыФинансированияПособийСоцстрахования.ЗаСчетФСС;
СтрокаУчетаПособий.СуммаВсего = СтрокаДанных.Результат;
СтрокаУчетаПособий.СуммаСверхНорм = ДанныеУчета.ДополнительныйРезультат;
СтрокаУчетаПособий.ОплаченныеДни = ДанныеУчета.ВсегоДнейНетрудоспособности;
СтрокаУчетаПособий.ДатаСтраховогоСлучая = ДанныеУчета.ДатаНачалаСобытия;

КонецЕсли;

Пока ДанныеУчета.Регистратор = ТекущийРегистратор И ДанныеУчета.НомерСтроки = ТекущийНомерСтроки Цикл
Если Не ДанныеУчета.Следующий() Тогда
ПродолжатьОбработку = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;


ИначеЕсли ДанныеУчета.ВариантОбработкиЗаписиПриОтраженииВРеглУчете = Перечисления.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйЗаСчетРаботодателя Тогда

ТекущийРегистратор = ДанныеУчета.Регистратор;
ТекущийНомерСтроки = ДанныеУчета.НомерСтроки;

СтрокаУчетаПособий = ПособияСоциальномуСтрахованию.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаУчетаПособий,ДанныеУчета);
СтрокаУчетаПособий.СпособФинансированияПособий = Перечисления.СпособыФинансированияПособийСоцстрахования.ЗаСчетРаботодателя;
СтрокаУчетаПособий.СуммаВсего = ДанныеУчета.Результат;
СтрокаУчетаПособий.СуммаСверхНорм = 0;
СтрокаУчетаПособий.ВыплатаЗаСчетФедеральногоБюджета = Перечисления.ВыплатыПособийЗаСчетФедеральногоБюджета.ПустаяСсылка();
СтрокаУчетаПособий.ВидПособияСоциальногоСтрахования = Перечисления.ВидыПособийСоциальногоСтрахования.Нетрудоспособность;
СтрокаУчетаПособий.ОплаченныеДни = ДанныеУчета.ВсегоДнейНетрудоспособности;
СтрокаУчетаПособий.ДатаСтраховогоСлучая = ДанныеУчета.ДатаНачалаСобытия;

Пока ДанныеУчета.Регистратор = ТекущийРегистратор И ДанныеУчета.НомерСтроки = ТекущийНомерСтроки Цикл
Если Не ДанныеУчета.Следующий() Тогда
ПродолжатьОбработку = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;

ИначеЕсли ДанныеУчета.КодДоходаЕСН = РаспределятьПоБазовымНачислениям
ИЛИ ДанныеУчета.СтратегияОтраженияВУчете = Перечисления.СтратегииОтраженияВРеглУчетеНачислений.КакБазовыеНачисления Тогда
// тут обрабатываем начисления, которые необходимо отразить в учете как базовые начисления
// вычисляем результат нормируя его на базу для строк базы относящихся
// к одной строке основного регистра

// текущий ключ поиска
ТекущийРегистратор = ДанныеУчета.Регистратор;
ТекущийНомерСтроки = ДанныеУчета.НомерСтроки;
// позиционируемся во вспомогательной выборке по запросу для суммирования "базовых" данных
СтруктураПоиска.Регистратор = ТекущийРегистратор;
СтруктураПоиска.НомерСтроки = ТекущийНомерСтроки;
Если ДанныеУчетаВспомогательные.Регистратор <> ТекущийРегистратор ИЛИ
ДанныеУчетаВспомогательные.НомерСтроки <> ТекущийНомерСтроки Тогда
// ищем следующую строку во спомогательной выборке если она не является искомой
ДанныеУчетаВспомогательные.НайтиСледующий(СтруктураПоиска);
КонецЕсли;

СуммаПоСтроке = 0;

// по этим переменным будем уточнять расшифровку ошибки
НуженКодЕСН = Ложь;
НеЗаданКодЕСН = Ложь;

// суммируем базовые ресурсы по текущей строке набора записей
Пока ДанныеУчетаВспомогательные.Регистратор = ТекущийРегистратор И ДанныеУчетаВспомогательные.НомерСтроки = ТекущийНомерСтроки Цикл
Если ДанныеУчетаВспомогательные.РезультатБаза = NULL Тогда
// ошибки нет в том случае, когда код ЕСН задан явно
// собственно проверку и регистрацию ошибки произведем позже
Иначе
СуммаПоСтроке = СуммаПоСтроке + ДанныеУчетаВспомогательные.РезультатБаза;
КонецЕсли;

Если ДанныеУчетаВспомогательные.КодДоходаЕСН = РаспределятьПоБазовымНачислениям и ДанныеУчетаВспомогательные.КодДоходаЕСНРазрез = NULL Тогда
НуженКодЕСН = Истина;
ИначеЕсли Не ЗначениеЗаполнено(ДанныеУчетаВспомогательные.КодДоходаЕСН) Тогда
// у в.р. не задан код ЕСН
НеЗаданКодЕСН = Истина;
КонецЕсли;

Если Не ДанныеУчетаВспомогательные.Следующий() Тогда
Прервать;
КонецЕсли;

КонецЦикла;

Если НуженКодЕСН или НеЗаданКодЕСН Тогда
//есть ошибка, определим код ошибки и зарегистрируем ее
КодОшибки = ?(НуженКодЕСН, 4, ?(НеЗаданКодЕСН,6,0));
Успешно = Ложь;
ЗарегистрироватьОшибкуОбработкиДанныхУчета(ТаблицаОшибок, ДанныеУчета, ЭтоОсновныеНачисления, СтруктураПоискаОшибок, КодОшибки);
КонецЕсли;

// суммарная доля, которую уже "разбросали" на строки с одинаковым регистратором и номером строки
СуммарнаяДоля = 0;
// полный результат
ПолныйРезультат = ДанныеУчета.Результат;
// обходим строки и вычисляем долю результата по базовым записям
ПерваяИзГруппыСтрок = Истина;
Пока ДанныеУчета.Регистратор = ТекущийРегистратор И ДанныеУчета.НомерСтроки = ТекущийНомерСтроки Цикл
// если это не первая из группы "базовых" строк по одной строке основного регистра
// то создаем очередную строку движений
Если Не ПерваяИзГруппыСтрок Тогда
СтрокаДанных = СоздатьСтрокуДвижений(ВыборкаПоШапкеДокумента, ДанныеУчета, НаборЗаписей, ЭтоОсновныеНачисления);
Иначе
ПерваяИзГруппыСтрок = Ложь;
КонецЕсли;

Если СуммаПоСтроке = 0 Тогда
Доля = 0;
Иначе
Если ДанныеУчета.РезультатБаза = NULL Тогда
Доля = 0;
Иначе
Доля = Окр(ПолныйРезультат * ДанныеУчета.РезультатБаза / СуммаПоСтроке,2);
КонецЕсли;
КонецЕсли;

// вид дохода заполним данными базы
Если ДанныеУчета.КодДоходаЕСН = РаспределятьПоБазовымНачислениям и ДанныеУчета.КодДоходаЕСНРазрез = NULL Тогда
НуженКодЕСН = Истина;
// делаем пустым код дохода ЕСН
СтрокаДанных.КодДоходаЕСН = Справочники.ДоходыПоСтраховымВзносам.ПустаяСсылка();
ИначеЕсли Не ЗначениеЗаполнено(ДанныеУчета.КодДоходаЕСН) Тогда
// у в.р. не задан код ЕСН
НеЗаданКодЕСН = Истина;
Иначе
СтрокаДанных.КодДоходаЕСН = ?(ДанныеУчета.КодДоходаЕСН = РаспределятьПоБазовымНачислениям, ДанныеУчета.КодДоходаЕСНРазрез, ДанныеУчета.КодДоходаЕСН);
КонецЕсли;

СтрокаДанных.Результат = Доля;
СуммарнаяДоля = СуммарнаяДоля + Доля;
Если Не ДанныеУчета.Следующий() Тогда
ПродолжатьОбработку = Ложь;
Прервать;
КонецЕсли;

КонецЦикла;

// ошибки округления скаладываются на последнюю запись из группы базовых записей
СтрокаДанных.Результат = СтрокаДанных.Результат + (ПолныйРезультат - СуммарнаяДоля);
Иначе
Если Не ЗначениеЗаполнено(ДанныеУчета.КодДоходаЕСН) Тогда
// у вида расчета не заполнен реквизит КодДоходаЕСН
Успешно = Ложь;
ЗарегистрироватьОшибкуОбработкиДанныхУчета(ТаблицаОшибок, ДанныеУчета, ЭтоОсновныеНачисления, СтруктураПоискаОшибок, 6);
КонецЕсли;
Если Не ДанныеУчета.Следующий() Тогда
ПродолжатьОбработку = Ложь;
КонецЕсли;
КонецЕсли;

КонецЦикла;

// при записи не затираем уже введенные движения
НаборЗаписей.Записать(Ложь);// выполняем дозапись (набор записей чистится автоматически)

КонецПроцедуры //ОбработатьДанныеУчета2011

// получение первичных данных для расчета ЕСН
// первичные в данном случае, это те, для которых учет ЕСН <> РаспределятьПоБазовымНачислениям,
// или те которые определяют свой ЕСН-учет по базовым начисленияи и при этом базируются на прошлом периоде,
// или те у которых категория начисления = "Первичное"
//
// Параметры:
// Основные - булево, если Истина, то получаем данные по основным начислениям иначе - по доп.
//
// Возвращаемое значение:
// Результат запроса
//
Функция ПолучитьДанныеУчета2011(ВыборкаПоШапкеДокумента, СписокНачислений, ОрганичениеНаСотрудников, ЭтоОсновныеНачисления, ЭтоПервичныеНачисления)

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

Запрос.УстановитьПараметр("парамНеОтбиратьСотрудников", ОрганичениеНаСотрудников = Неопределено);

Измерения = Новый Массив(1);
Измерения[0] = "Сотрудник";

Разрезы = Новый Массив(1);
Разрезы[0] = "КодДоходаЕСН";

Запрос.УстановитьПараметр("парамИзмерения", Измерения);
Запрос.УстановитьПараметр("парамРазрезыЕСН", Разрезы);

Запрос.УстановитьПараметр("парамСписокНачислений", СписокНачислений);
Запрос.УстановитьПараметр("парамПериодРегистрации", ВыборкаПоШапкеДокумента.ПериодРегистрации);
Запрос.УстановитьПараметр("парамОрганизация", ВыборкаПоШапкеДокумента.ОбособленноеПодразделение);
Запрос.УстановитьПараметр("парамГоловнаяОрганизация", ВыборкаПоШапкеДокумента.Организация);

// для учета особенностей расчета среднего заработка
ОсновнойЗаработок = Новый Массив(5);
ОсновнойЗаработок[0] = ПланыВидовРасчета.СреднийЗаработок.ПоЗаработку;
ОсновнойЗаработок[1] = ПланыВидовРасчета.СреднийЗаработок.ПоЗаработкуБЛ;
ОсновнойЗаработок[2] = ПланыВидовРасчета.СреднийЗаработок.ПоЗаработкуПособий;
ОсновнойЗаработок[3] = ПланыВидовРасчета.СреднийЗаработок.ПоЗаработкуИндексируемые;
ОсновнойЗаработок[4] = ПланыВидовРасчета.СреднийЗаработок.ПоЗаработкуПособийС2010;

ПоФиксПремиям = Новый Массив(3);
ПоФиксПремиям[0] = ПланыВидовРасчета.СреднийЗаработок.ПоФиксПремиям;
ПоФиксПремиям[1] = ПланыВидовРасчета.СреднийЗаработок.ПоФиксПремиямБЛ;
ПоФиксПремиям[2] = ПланыВидовРасчета.СреднийЗаработок.ПоФиксПремиямПособий;

ПоПремиям = Новый Массив(6);
ПоПремиям[0] = ПланыВидовРасчета.СреднийЗаработок.ПоПремиям;
ПоПремиям[1] = ПланыВидовРасчета.СреднийЗаработок.ПоПремиямБЛ;
ПоПремиям[2] = ПланыВидовРасчета.СреднийЗаработок.ПоПремиямПособий;
ПоПремиям[3] = ПланыВидовРасчета.СреднийЗаработок.ПоПремиямИндексируемые;
ПоПремиям[4] = ПланыВидовРасчета.СреднийЗаработок.ПоГодовойПремииИндексируемые;
ПоПремиям[5] = ПланыВидовРасчета.СреднийЗаработок.ПоПремиямПособийС2010;

ФиксГодовыеПремии = Новый Массив(5);
ФиксГодовыеПремии[0] = ПланыВидовРасчета.СреднийЗаработок.ПоФиксГодовойПремии;
ФиксГодовыеПремии[1] = ПланыВидовРасчета.СреднийЗаработок.ПоФиксГодовойПремииБЛ;
ФиксГодовыеПремии[2] = ПланыВидовРасчета.СреднийЗаработок.ПоФиксГодовойПремииПособий;
ФиксГодовыеПремии[3] = ПланыВидовРасчета.СреднийЗаработок.ПоФиксПремиямНеИндексируемые;
ФиксГодовыеПремии[4] = ПланыВидовРасчета.СреднийЗаработок.ПоФиксГодовойПремииНеИндексируемые;

Запрос.УстановитьПараметр("парамОсновнойЗаработок", ОсновнойЗаработок);
Запрос.УстановитьПараметр("парамОсновнойЗаработокНеиндексируемый", ПланыВидовРасчета.СреднийЗаработок.ПоЗаработкуНеИндексируемые);
Запрос.УстановитьПараметр("парамПоПремиям", ПоПремиям);
Запрос.УстановитьПараметр("парамПоФиксПремиям", ПоФиксПремиям);
Запрос.УстановитьПараметр("парамПоФиксПремиямНеИндексируемые", ФиксГодовыеПремии);

МассивПоСреднемуЗаработку = Новый Массив;
МассивПоСреднемуЗаработку.Добавить(Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработку);
МассивПоСреднемуЗаработку.Добавить(Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуДляОтпускаПоКалендарнымДням);
МассивПоСреднемуЗаработку.Добавить(Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуДляОтпускаПоШестидневке);
МассивПоСреднемуЗаработку.Добавить(Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуФСС);
МассивПоСреднемуЗаработку.Добавить(Перечисления.СпособыРасчетаОплатыТруда.ПособиеПоУходуЗаРебенкомДо1_5Лет);
МассивПоСреднемуЗаработку.Добавить(Перечисления.СпособыРасчетаОплатыТруда.ДоплатаДоСреднегоЗаработка);
МассивПоСреднемуЗаработку.Добавить(Перечисления.СпособыРасчетаОплатыТруда.ДоплатаДоСреднегоЗаработкаФСС);
Запрос.УстановитьПараметр("парамПоСреднемуЗаработку", МассивПоСреднемуЗаработку);


МассивАвторскихДоходов = Новый Массив;
МассивАвторскихДоходов.Добавить(Справочники.ДоходыПоСтраховымВзносам.АвторскиеАудиовизуальныеПроизведения);
МассивАвторскихДоходов.Добавить(Справочники.ДоходыПоСтраховымВзносам.АвторскиеГрафическиеПроизведения);
МассивАвторскихДоходов.Добавить(Справочники.ДоходыПоСтраховымВзносам.АвторскиеДругиеМузыкальныеПроизведения);
МассивАвторскихДоходов.Добавить(Справочники.ДоходыПоСтраховымВзносам.АвторскиеИсполнениеПроизведений);
МассивАвторскихДоходов.Добавить(Справочники.ДоходыПоСтраховымВзносам.АвторскиеЛитературныеПроизведения);
МассивАвторскихДоходов.Добавить(Справочники.ДоходыПоСтраховымВзносам.АвторскиеМузыкальноСценическиеПроизведение);
МассивАвторскихДоходов.Добавить(Справочники.ДоходыПоСтраховымВзносам.АвторскиеНаучныеТруды);
МассивАвторскихДоходов.Добавить(Справочники.ДоходыПоСтраховымВзносам.АвторскиеОткрытия);
МассивАвторскихДоходов.Добавить(Справочники.ДоходыПоСтраховымВзносам.АвторскиеСкульптуры);
Запрос.УстановитьПараметр("ДоходыАвторские", МассивАвторскихДоходов);

// ФизлицаДляРасчета
//
Если ОрганичениеНаСотрудников = Неопределено Тогда

Запрос.Текст =
"ВЫБРАТЬ
| НЕОПРЕДЕЛЕНО КАК Сотрудник
|ПОМЕСТИТЬ ВТСписокСотрудников";
Запрос.Выполнить();

Иначе

Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаСотрудников.Сотрудник КАК Сотрудник
|ПОМЕСТИТЬ ВТСписокСотрудников
|ИЗ
| &парамТаблицаСотрудников КАК ТаблицаСотрудников";
Запрос.УстановитьПараметр("парамТаблицаСотрудников", ОрганичениеНаСотрудников);
Запрос.Выполнить();

КонецЕсли;

ВписатьВЗапросСоответствиеКодовЕСНиСтраховыхВзносов(Запрос);

Если ЭтоОсновныеНачисления Тогда

Если Не ЭтоПервичныеНачисления Тогда

//соберем базу для зависимых начислений
БазаТекст =
"ВЫБРАТЬ
| База.Регистратор КАК Регистратор,
| База.НомерСтроки КАК НомерСтроки,
| База.КодДоходаЕСНРазрез,
| СУММА(База.РезультатБаза) КАК РезультатБаза
|ПОМЕСТИТЬ База
|ИЗ
| (ВЫБРАТЬ
| ОсновныеНачисленияБазаЕСНОсновныеНачисления.Регистратор КАК Регистратор,
| ОсновныеНачисленияБазаЕСНОсновныеНачисления.НомерСтроки КАК НомерСтроки,
| ОсновныеНачисленияБазаЕСНОсновныеНачисления.КодДоходаЕСНРазрез КАК КодДоходаЕСНРазрез,
| ОсновныеНачисленияБазаЕСНОсновныеНачисления.РезультатБаза КАК РезультатБаза
| ИЗ
| РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.БазаЕСНОсновныеНачисления(
| &парамИзмерения,
| &парамИзмерения,
| &парамРазрезыЕСН,
| Организация = &парамГоловнаяОрганизация
| И ПериодРегистрации = &парамПериодРегистрации
| И (НЕ ВидРасчета.СпособРасчета В (&парамПоСреднемуЗаработку))
| И (&парамНеОтбиратьСотрудников
| ИЛИ Сотрудник В
| (ВЫБРАТЬ
| ВТСписокСотрудников.Сотрудник
| ИЗ
| ВТСписокСотрудников КАК ВТСписокСотрудников))
| И (НЕ Сторно)
| И ВариантОбработкиЗаписиПриОтраженииВРеглУчете = ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.ПустаяСсылка)
| И ВидРасчета.КодДоходаСтраховыеВзносы = ЗНАЧЕНИЕ(Справочник.ДоходыПоСтраховымВзносам.РаспределятьПоБазовымНачислениям)
| И Результат <> 0
| И ВидРасчета В (&парамСписокНачислений)) КАК ОсновныеНачисленияБазаЕСНОсновныеНачисления
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ОсновныеНачисленияБазаЕСНДополнительныеНачисления.Регистратор,
| ОсновныеНачисленияБазаЕСНДополнительныеНачисления.НомерСтроки,
| ОсновныеНачисленияБазаЕСНДополнительныеНачисления.КодДоходаЕСНРазрез,
| ОсновныеНачисленияБазаЕСНДополнительныеНачисления.РезультатБаза
| ИЗ
| РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.БазаЕСНДополнительныеНачисления(
| &парамИзмерения,
| &парамИзмерения,
| &парамРазрезыЕСН,
| Организация = &парамГоловнаяОрганизация
| И ПериодРегистрации = &парамПериодРегистрации
| И (НЕ ВидРасчета.СпособРасчета В (&парамПоСреднемуЗаработку))
| И (&парамНеОтбиратьСотрудников
| ИЛИ Сотрудник В
| (ВЫБРАТЬ
| ВТСписокСотрудников.Сотрудник
| ИЗ
| ВТСписокСотрудников КАК ВТСписокСотрудников))
| И (НЕ Сторно)
| И ВидРасчета.КодДоходаСтраховыеВзносы = ЗНАЧЕНИЕ(Справочник.ДоходыПоСтраховымВзносам.РаспределятьПоБазовымНачислениям)
| И ВидРасчета.СтратегияОтраженияВУчете = ЗНАЧЕНИЕ(Перечисление.СтратегииОтраженияВРеглУчетеНачислений.КакБазовыеНачисления)
| И Результат <> 0
| И ВидРасчета В (&парамСписокНачислений)) КАК ОсновныеНачисленияБазаЕСНДополнительныеНачисления) КАК База
|
|СГРУППИРОВАТЬ ПО
| База.Регистратор,
| База.КодДоходаЕСНРазрез,
| База.НомерСтроки
|
|ИНДЕКСИРОВАТЬ ПО
| Регистратор,
| НомерСтроки";

Иначе

// для первичных начислений не собираем базу
БазаТекст =
"ВЫБРАТЬ
| НЕОПРЕДЕЛЕНО КАК Регистратор,
| НЕОПРЕДЕЛЕНО КАК НомерСтроки,
| НЕОПРЕДЕЛЕНО КАК КодДоходаЕСНРазрез,
| 0 КАК РезультатБаза
|ПОМЕСТИТЬ База";

КонецЕсли;

Запрос.Текст = БазаТекст;
//временная таблица - База
Запрос.Выполнить();

///////////////////////////////////////////////////////////////////////////////////
// ПОЛУЧЕНИЕ БАЗЫ СРЕДНЕГО ЗАРАБОТКА для прочих начислений

ПолучатьБазу = Ложь;

// ВТ_ПрочиеНачисления
//
Запрос.Текст =
"ВЫБРАТЬ
| ОсновныеНачисления.Сотрудник,
| ОсновныеНачисления.Регистратор,
| ОсновныеНачисления.НомерСтроки,
| ОсновныеНачисления.ДатаНачалаСобытия,
| ОсновныеНачисления.ПериодРасчетаСреднегоЗаработкаНачало,
| ОсновныеНачисления.ПериодРасчетаСреднегоЗаработкаОкончание,
| ВЫБОР
| КОГДА ОсновныеНачисления.ВидРасчета.СпособРасчета = ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ДоплатаДоСреднегоЗаработкаФСС)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуФСС)
| ИНАЧЕ ОсновныеНачисления.ВидРасчета.СпособРасчета
| КОНЕЦ КАК СпособРасчета
|ПОМЕСТИТЬ ВТ_ПрочиеНачисления
|ИЗ
| РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисления
|ГДЕ
| ОсновныеНачисления.ВидРасчета.СпособРасчета В(&парамПоСреднемуЗаработку)
| И (&парамНеОтбиратьСотрудников
| ИЛИ ОсновныеНачисления.Сотрудник В
| (ВЫБРАТЬ
| ВТСписокСотрудников.Сотрудник
| ИЗ
| ВТСписокСотрудников КАК ВТСписокСотрудников))
| И (НЕ ОсновныеНачисления.Сторно)
| И ОсновныеНачисления.ОбособленноеПодразделение = &парамОрганизация
| И ОсновныеНачисления.ПериодРегистрации = &парамПериодРегистрации
| И ОсновныеНачисления.ВариантОбработкиЗаписиПриОтраженииВРеглУчете = ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.ПустаяСсылка)
| И ОсновныеНачисления.ВидРасчета.СтратегияОтраженияВУчете = ЗНАЧЕНИЕ(Перечисление.СтратегииОтраженияВРеглУчетеНачислений.КакБазовыеНачисления)
| И ОсновныеНачисления.Результат <> 0
| И ОсновныеНачисления.ВидРасчета В(&парамСписокНачислений)";
Запрос.Выполнить();

// ВТ_СотрудникиПериодыПрочиеНачисления
// условия для виртуальной таблицы
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ОсновныеНачисления.Сотрудник КАК Сотрудник,
| ОсновныеНачисления.ДатаНачалаСобытия КАК ДатаНачалаСобытия
|ПОМЕСТИТЬ ВТ_СотрудникиПериодыПрочиеНачисления
|ИЗ
| ВТ_ПрочиеНачисления КАК ОсновныеНачисления
|
|ИНДЕКСИРОВАТЬ ПО
| Сотрудник,
| ДатаНачалаСобытия";
Результат = Запрос.Выполнить().Выгрузить();
ПолучатьБазу = Результат[0].Количество > 0;

Если ПолучатьБазу Тогда

БазаСреднегоЗаработкаПрочиеНачисленияТекст =
"ВЫБРАТЬ
| БазаСреднегоЗаработка.Регистратор КАК Регистратор,
| БазаСреднегоЗаработка.НомерСтроки КАК НомерСтроки,
| БазаСреднегоЗаработка.КодДоходаЕСНРазрез,
| СУММА(БазаСреднегоЗаработка.РезультатБаза) КАК РезультатБаза
|ПОМЕСТИТЬ ВТ_БазаСреднегоЗаработка
|ИЗ
| (ВЫБРАТЬ
| ОсновныеНачисления.Регистратор КАК Регистратор,
| ОсновныеНачисления.НомерСтроки КАК НомерСтроки,
| ВЫБОР
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамОсновнойЗаработок)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза * ВЫБОР
| КОГДА БазаСреднегоЗаработка.КоэффициентИндексации < 1
| ТОГДА 1
| ИНАЧЕ БазаСреднегоЗаработка.КоэффициентИндексации
| КОНЕЦ
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамОсновнойЗаработокНеиндексируемый)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза
| КОГДА БазаСреднегоЗаработка.ЧислоМесяцев = 0
| ТОГДА 0
| ИНАЧЕ ВЫБОР
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамПоПремиям)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза * ВЫБОР
| КОГДА БазаСреднегоЗаработка.КоэффициентИндексации < 1
| ТОГДА 1
| ИНАЧЕ БазаСреднегоЗаработка.КоэффициентИндексации
| КОНЕЦ
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамПоФиксПремиям)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза * ВЫБОР
| КОГДА БазаСреднегоЗаработка.КоэффициентИндексации < 1
| ТОГДА 1
| ИНАЧЕ БазаСреднегоЗаработка.КоэффициентИндексации
| КОНЕЦ * ВЫБОР
| КОГДА БазаСреднегоЗаработка.НормаПоПятидневке = 0
| ТОГДА 0
| ИНАЧЕ БазаСреднегоЗаработка.ОтработаноПоПятидневке / БазаСреднегоЗаработка.НормаПоПятидневке
| КОНЕЦ
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамПоФиксПремиямНеИндексируемые)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза * ВЫБОР
| КОГДА БазаСреднегоЗаработка.НормаПоПятидневке = 0
| ТОГДА 0
| ИНАЧЕ БазаСреднегоЗаработка.ОтработаноПоПятидневке / БазаСреднегоЗаработка.НормаПоПятидневке
| КОНЕЦ
| ИНАЧЕ БазаСреднегоЗаработка.РезультатБаза
| КОНЕЦ * ВЫБОР
| КОГДА БазаСреднегоЗаработка.ЧислоМесяцев > БазаСреднегоЗаработка.ПериодРасчетаСреднегоЗаработка
| ТОГДА БазаСреднегоЗаработка.ПериодРасчетаСреднегоЗаработка / БазаСреднегоЗаработка.ЧислоМесяцев
| ИНАЧЕ 1
| КОНЕЦ
| КОНЕЦ КАК РезультатБаза,
| БазаСреднегоЗаработка.КодДоходаЕСНРазрез КАК КодДоходаЕСНРазрез
| ИЗ
| ВТ_ПрочиеНачисления КАК ОсновныеНачисления
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрРасчета.РасчетСреднегоЗаработка.БазаЕСНОсновныеНачисления(
| &парамИзмерения,
| &парамИзмерения,
| &парамРазрезыЕСН,
| Организация = &парамГоловнаяОрганизация
| И Результат <> 0
| И ПериодРегистрации = &парамПериодРегистрации
| И (Сотрудник, ДатаНачалаСобытия) В
| (ВЫБРАТЬ
| Список.Сотрудник,
| Список.ДатаНачалаСобытия
| ИЗ
| ВТ_СотрудникиПериодыПрочиеНачисления КАК Список)) КАК БазаСреднегоЗаработка
| ПО ОсновныеНачисления.СпособРасчета = БазаСреднегоЗаработка.СпособРасчета
| И ОсновныеНачисления.ДатаНачалаСобытия = БазаСреднегоЗаработка.ДатаНачалаСобытия
| И ОсновныеНачисления.ПериодРасчетаСреднегоЗаработкаНачало = БазаСреднегоЗаработка.ДатаНачалаРасчетногоПериода
| И ОсновныеНачисления.ПериодРасчетаСреднегоЗаработкаОкончание = БазаСреднегоЗаработка.ДатаОкончанияРасчетногоПериода
| И ОсновныеНачисления.Сотрудник = БазаСреднегоЗаработка.Сотрудник
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ОсновныеНачисления.Регистратор,
| ОсновныеНачисления.НомерСтроки,
| ВЫБОР
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамОсновнойЗаработок)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза * ВЫБОР
| КОГДА БазаСреднегоЗаработка.КоэффициентИндексации < 1
| ТОГДА 1
| ИНАЧЕ БазаСреднегоЗаработка.КоэффициентИндексации
| КОНЕЦ
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамОсновнойЗаработокНеиндексируемый)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза
| КОГДА БазаСреднегоЗаработка.ЧислоМесяцев = 0
| ТОГДА 0
| ИНАЧЕ ВЫБОР
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамПоПремиям)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза * ВЫБОР
| КОГДА БазаСреднегоЗаработка.КоэффициентИндексации < 1
| ТОГДА 1
| ИНАЧЕ БазаСреднегоЗаработка.КоэффициентИндексации
| КОНЕЦ
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамПоФиксПремиям)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза * ВЫБОР
| КОГДА БазаСреднегоЗаработка.КоэффициентИндексации < 1
| ТОГДА 1
| ИНАЧЕ БазаСреднегоЗаработка.КоэффициентИндексации
| КОНЕЦ * ВЫБОР
| КОГДА БазаСреднегоЗаработка.НормаПоПятидневке = 0
| ТОГДА 0
| ИНАЧЕ БазаСреднегоЗаработка.ОтработаноПоПятидневке / БазаСреднегоЗаработка.НормаПоПятидневке
| КОНЕЦ
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамПоФиксПремиямНеИндексируемые)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза * ВЫБОР
| КОГДА БазаСреднегоЗаработка.НормаПоПятидневке = 0
| ТОГДА 0
| ИНАЧЕ БазаСреднегоЗаработка.ОтработаноПоПятидневке / БазаСреднегоЗаработка.НормаПоПятидневке
| КОНЕЦ
| ИНАЧЕ БазаСреднегоЗаработка.РезультатБаза
| КОНЕЦ * ВЫБОР
| КОГДА БазаСреднегоЗаработка.ЧислоМесяцев > БазаСреднегоЗаработка.ПериодРасчетаСреднегоЗаработка
| ТОГДА БазаСреднегоЗаработка.ПериодРасчетаСреднегоЗаработка / БазаСреднегоЗаработка.ЧислоМесяцев
| ИНАЧЕ 1
| КОНЕЦ
| КОНЕЦ,
| БазаСреднегоЗаработка.КодДоходаЕСНРазрез
| ИЗ
| ВТ_ПрочиеНачисления КАК ОсновныеНачисления
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрРасчета.РасчетСреднегоЗаработка.БазаЕСНДополнительныеНачисления(
| &парамИзмерения,
| &парамИзмерения,
| &парамРазрезыЕСН,
| Организация = &парамГоловнаяОрганизация
| И Результат <> 0
| И ПериодРегистрации = &парамПериодРегистрации
| И (Сотрудник, ДатаНачалаСобытия) В
| (ВЫБРАТЬ
| Список.Сотрудник,
| Список.ДатаНачалаСобытия
| ИЗ
| ВТ_СотрудникиПериодыПрочиеНачисления КАК Список)) КАК БазаСреднегоЗаработка
| ПО ОсновныеНачисления.СпособРасчета = БазаСреднегоЗаработка.СпособРасчета
| И ОсновныеНачисления.ДатаНачалаСобытия = БазаСреднегоЗаработка.ДатаНачалаСобытия
| И ОсновныеНачисления.ПериодРасчетаСреднегоЗаработкаНачало = БазаСреднегоЗаработка.ДатаНачалаРасчетногоПериода
| И ОсновныеНачисления.ПериодРасчетаСреднегоЗаработкаОкончание = БазаСреднегоЗаработка.ДатаОкончанияРасчетногоПериода
| И ОсновныеНачисления.Сотрудник = БазаСреднегоЗаработка.Сотрудник) КАК БазаСреднегоЗаработка
|
|СГРУППИРОВАТЬ ПО
| БазаСреднегоЗаработка.Регистратор,
| БазаСреднегоЗаработка.НомерСтроки,
| БазаСреднегоЗаработка.КодДоходаЕСНРазрез
|
|ИНДЕКСИРОВАТЬ ПО
| Регистратор,
| НомерСтроки";

Иначе

БазаСреднегоЗаработкаПрочиеНачисленияТекст =
"ВЫБРАТЬ
| НЕОПРЕДЕЛЕНО КАК Регистратор,
| 0 КАК НомерСтроки,
| НЕОПРЕДЕЛЕНО КАК КодДоходаЕСНРазрез,
| 0 КАК РезультатБаза
|ПОМЕСТИТЬ ВТ_БазаСреднегоЗаработка";

КонецЕсли;

Запрос.Текст = БазаСреднегоЗаработкаПрочиеНачисленияТекст;
//временная таблица - ВТ_БазаСреднегоЗаработка
Запрос.Выполнить();

// Закончили получение базы среднего заработка для прочих начислений
///////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////
//получим отражение в учете сторно записей

//временная таблица - ВТ_ОтражениеВУчетеСторно
Запрос.Текст = ПолучитьТекстЗапросаОтражениеСторноЗаписей();
Запрос.Выполнить();

//получили отражение в учете сторно записей
///////////////////////////////////////////////////////////////////////////////////

ТекстЗапроса =
"ВЫБРАТЬ
| ОсновныеНачисления.Регистратор КАК Регистратор,
| ОсновныеНачисления.НомерСтроки КАК НомерСтроки,
| ОсновныеНачисления.Сотрудник КАК Сотрудник,
| ОсновныеНачисления.ФизЛицо КАК ФизЛицо,
| ВЫБОР
| КОГДА ОсновныеНачисления.Сторно
| ТОГДА ОтражениеВУчетеСторно.КодДоходаЕСН
| ИНАЧЕ ОсновныеНачисления.ВидРасчета.КодДоходаСтраховыеВзносы
| КОНЕЦ КАК КодДоходаЕСН,
| ОтражениеВУчетеСторно.Результат КАК РезультатСторно,
| ОтражениеВУчетеСторно.ПериодДействияНачало КАК ПериодДействияНачалоСторно,
| ОтражениеВУчетеСторно.ПериодДействияКонец КАК ПериодДействияКонецСторно,
| ОсновныеНачисления.ВидРасчета КАК ВидРасчета,
| ОсновныеНачисления.Организация КАК Организация,
| ОсновныеНачисления.Результат КАК Результат,
| ОсновныеНачисления.ДополнительныйРезультат,
| ОсновныеНачисления.ПериодДействия КАК ПериодДействия,
| ОсновныеНачисления.ПериодДействияНачало КАК ПериодДействияНачало,
| ОсновныеНачисления.ПериодДействияКонец КАК ПериодДействияКонец,
| ОсновныеНачисления.ГрафикРаботы КАК ГрафикРаботы,
| ОсновныеНачисления.ВидУчетаВремени КАК ВидУчетаВремени,
| ОсновныеНачисления.Сторно КАК Сторно,
| ВЫБОР
| КОГДА ОсновныеНачисления.ВариантОбработкиЗаписиПриОтраженииВРеглУчете В (ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйТравмаНаПроизводстве), ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйТравмаНаПроизводствеНовыйСтраховойСлучай))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйТравмаНаПроизводстве)
| КОГДА ОсновныеНачисления.ВариантОбработкиЗаписиПриОтраженииВРеглУчете В (ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.ОтпускПоБеременностиИРодамПоУходуЗаРебенком), ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.ОтпускПоБеременностиИРодамПоУходуЗаРебенкомНовыйСтраховойСлучай))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.ОтпускПоБеременностиИРодамПоУходуЗаРебенком)
| КОГДА ОсновныеНачисления.ВариантОбработкиЗаписиПриОтраженииВРеглУчете В (ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйОбщееЗаболевание), ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйОбщееЗаболеваниеНовыйСтраховойСлучай))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйОбщееЗаболевание)
| КОГДА ОсновныеНачисления.ВариантОбработкиЗаписиПриОтраженииВРеглУчете В (ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйПрочий), ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйПрочийНовыйСтраховойСлучай))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйПрочий)
| КОГДА ОсновныеНачисления.ВариантОбработкиЗаписиПриОтраженииВРеглУчете В (ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйЗаСчетРаботодателя), ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйЗаСчетРаботодателяНовыйСтраховойСлучай))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйЗаСчетРаботодателя)
| ИНАЧЕ ОсновныеНачисления.ВариантОбработкиЗаписиПриОтраженииВРеглУчете
| КОНЕЦ КАК ВариантОбработкиЗаписиПриОтраженииВРеглУчете,
| ОсновныеНачисления.ВидРасчета.СтратегияОтраженияВУчете КАК СтратегияОтраженияВУчете,
| ОсновныеНачисления.ВидРасчета.ВидПособияСоциальногоСтрахования КАК ВидПособияСоциальногоСтрахования,
| ОсновныеНачисления.Показатель1 КАК СреднийДневнойЗаработок,
| ОсновныеНачисления.НормаДней КАК НормаДней,
| ВЫБОР
| КОГДА ОсновныеНачисления.ВариантОбработкиЗаписиПриОтраженииВРеглУчете В (ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйТравмаНаПроизводствеНовыйСтраховойСлучай), ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.ОтпускПоБеременностиИРодамПоУходуЗаРебенкомНовыйСтраховойСлучай), ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйОбщееЗаболеваниеНовыйСтраховойСлучай), ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйПрочийНовыйСтраховойСлучай), ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйЗаСчетРаботодателяНовыйСтраховойСлучай))
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК УчитыватьКакНовыйСтраховойСлучай,
| ОсновныеНачисления.ДатаНачалаСобытия КАК ДатаНачалаСобытия,
| ОсновныеНачисления.Сотрудник.Наименование КАК СотрудникНаименование
|ПОМЕСТИТЬ ДанныеУчета
|ИЗ
| РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисления
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ЕСНОсновныеНачисления КАК ЕСНОсновныеНачисления
| ПО ОсновныеНачисления.Сотрудник = ЕСНОсновныеНачисления.Сотрудник
| И (ЕСНОсновныеНачисления.ВидРасчета = ОсновныеНачисления.ВидРасчета)
| И (ЕСНОсновныеНачисления.ПериодРегистрации = &парамПериодРегистрации)
| И (ЕСНОсновныеНачисления.ПериодДействияНачало >= ОсновныеНачисления.ПериодДействияНачало)
| И (ЕСНОсновныеНачисления.ПериодДействияКонец <= ОсновныеНачисления.ПериодДействияКонец)
| И (ЕСНОсновныеНачисления.ДокументОснование = ОсновныеНачисления.Регистратор)
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОтражениеВУчетеСторно КАК ОтражениеВУчетеСторно
| ПО ОсновныеНачисления.Регистратор = ОтражениеВУчетеСторно.Регистратор
| И ОсновныеНачисления.НомерСтроки = ОтражениеВУчетеСторно.НомерСтроки
|ГДЕ
| ЕСНОсновныеНачисления.Сотрудник ЕСТЬ NULL
| И ОсновныеНачисления.ОбособленноеПодразделение = &парамОрганизация
| И ОсновныеНачисления.ВидРасчета В(&парамСписокНачислений)
| И ОсновныеНачисления.Результат <> 0
| И (&парамНеОтбиратьСотрудников
| ИЛИ ОсновныеНачисления.Сотрудник В
| (ВЫБРАТЬ
| ВТСписокСотрудников.Сотрудник
| ИЗ
| ВТСписокСотрудников КАК ВТСписокСотрудников))
| И ОсновныеНачисления.ВариантОбработкиЗаписиПриОтраженииВРеглУчете <> ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.НеОбрабатывать)
| И ОсновныеНачисления.ПериодРегистрации = &парамПериодРегистрации
|
|ИНДЕКСИРОВАТЬ ПО
| Регистратор,
| НомерСтроки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ФизическиеЛица.Ссылка КАК Физлицо,
| ВЫБОР
| КОГДА ФизическиеЛица.ЛьготаПриНачисленииПособий = ЗНАЧЕНИЕ(Перечисление.ВидыЛьготПриНачисленииБольничных.Маяк)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВыплатыПособийЗаСчетФедеральногоБюджета.Маяк)
| КОГДА ФизическиеЛица.ЛьготаПриНачисленииПособий = ЗНАЧЕНИЕ(Перечисление.ВидыЛьготПриНачисленииБольничных.ПодразделенияОсобогоРиска)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВыплатыПособийЗаСчетФедеральногоБюджета.ПодразделенияОсобогоРиска)
| КОГДА ФизическиеЛица.ЛьготаПриНачисленииПособий = ЗНАЧЕНИЕ(Перечисление.ВидыЛьготПриНачисленииБольничных.Семипалатинск)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВыплатыПособийЗаСчетФедеральногоБюджета.Семипалатинск)
| КОГДА ФизическиеЛица.ЛьготаПриНачисленииПособий = ЗНАЧЕНИЕ(Перечисление.ВидыЛьготПриНачисленииБольничных.Чернобыль)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВыплатыПособийЗаСчетФедеральногоБюджета.Чернобыль)
| КОГДА ФизическиеЛицаСтажи.НомерСтроки ЕСТЬ НЕ NULL
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВыплатыПособийЗаСчетФедеральногоБюджета.ЗачетНестраховыхПериодов)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВыплатыПособийЗаСчетФедеральногоБюджета.ПустаяСсылка)
| КОНЕЦ КАК ВыплатаЗаСчетФедеральногоБюджета
|ПОМЕСТИТЬ ВТЛьготыФизлиц
|ИЗ
| Справочник.ФизическиеЛица КАК ФизическиеЛица
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.Стажи КАК ФизическиеЛицаСтажи
| ПО ФизическиеЛица.Ссылка = ФизическиеЛицаСтажи.Ссылка
| И (ФизическиеЛицаСтажи.ВидСтажа = ЗНАЧЕНИЕ(Справочник.ВидыСтажа.РасширенныйСтраховойСтажДляБЛ))
|ГДЕ
| ФизическиеЛица.Ссылка В
| (ВЫБРАТЬ
| ДанныеУчета.ФизЛицо
| ИЗ
| ДанныеУчета КАК ДанныеУчета)
|
|ИНДЕКСИРОВАТЬ ПО
| Физлицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОсновныеНачисления.Регистратор КАК Регистратор,
| ОсновныеНачисления.НомерСтроки КАК НомерСтроки,
| ОсновныеНачисления.ПериодДействия,
| ОсновныеНачисления.ПериодДействияНачало,
| ОсновныеНачисления.ПериодДействияКонец,
| ОсновныеНачисления.Показатель1,
| ОсновныеНачисления.Показатель2,
| ОсновныеНачисления.Показатель3,
| ОсновныеНачисления.Сторно,
| ОсновныеНачисления.Результат,
| ВЫБОР
| КОГДА ОсновныеНачисления.ПодразделениеОрганизации.КодПоОКАТО <> """"
| ТОГДА ВЫБОР
| КОГДА ОсновныеНачисления.ПодразделениеОрганизации.РайонныйКоэффициентРФ > 1
| ТОГДА ОсновныеНачисления.ПодразделениеОрганизации.РайонныйКоэффициентРФ
| ИНАЧЕ 1
| КОНЕЦ
| КОГДА ОсновныеНачисления.ОбособленноеПодразделение.РайонныйКоэффициентРФ > 1
| ТОГДА ОсновныеНачисления.ОбособленноеПодразделение.РайонныйКоэффициентРФ
| ИНАЧЕ 1
| КОНЕЦ КАК РайонныйКоэффициентРФ,
| ОсновныеНачисления.ПодразделениеОрганизации.КодПоОКАТО КАК КодПоОКАТОПодразделения,
| ВЫРАЗИТЬ(ОсновныеНачисления.Показатель1 * 0.4 * 30.4 КАК ЧИСЛО(15, 2)) КАК МесячноеПособие
|ПОМЕСТИТЬ ВТЗаписиПособийПоУходу
|ИЗ
| РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисления
|ГДЕ
| ОсновныеНачисления.ПериодРегистрации = &парамПериодРегистрации
| И ОсновныеНачисления.ОбособленноеПодразделение = &парамОрганизация
| И ОсновныеНачисления.ВидРасчета.ВидПособияСоциальногоСтрахования = ЗНАЧЕНИЕ(Перечисление.ВидыПособийСоциальногоСтрахования.ПоУходуЗаРебенкомДоПолутораЛет)
| И (&парамНеОтбиратьСотрудников
| ИЛИ ОсновныеНачисления.Сотрудник В
| (ВЫБРАТЬ
| ВТСписокСотрудников.Сотрудник
| ИЗ
| ВТСписокСотрудников КАК ВТСписокСотрудников))
|
|ИНДЕКСИРОВАТЬ ПО
| Регистратор,
| НомерСтроки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОсновныеНачисления.Регистратор КАК Регистратор,
| ОсновныеНачисления.НомерСтроки КАК НомерСтроки,
| ВЫБОР
| КОГДА ОсновныеНачисления.Результат = 0
| ТОГДА 0
| КОГДА ОсновныеНачисления.Показатель2 = 0
| ТОГДА 0
| КОГДА ОсновныеНачисления.Показатель3 = 0
| ТОГДА 0
| КОГДА ОсновныеНачисления.Показатель2 = ОсновныеНачисления.Показатель3
| ТОГДА 1
| ИНАЧЕ ВЫБОР
| КОГДА ОсновныеНачисления.МесячноеПособие > (ВЫРАЗИТЬ(МаксимумПособияПоУходуЗаРебенкомДоПолутораЛет.Размер * 0.4 / 12 КАК ЧИСЛО(15, 2)))
| ТОГДА ВЫРАЗИТЬ(МаксимумПособияПоУходуЗаРебенкомДоПолутораЛет.Размер * 0.4 / 12 КАК ЧИСЛО(15, 2))
| КОГДА ОсновныеНачисления.МесячноеПособие < (ВЫРАЗИТЬ(МинимумПособияПоУходуЗаПервымРебенкомДоПолутораЛет.Размер * ОсновныеНачисления.РайонныйКоэффициентРФ КАК ЧИСЛО(15, 2)))
| ТОГДА ВЫРАЗИТЬ(МинимумПособияПоУходуЗаПервымРебенкомДоПолутораЛет.Размер * ОсновныеНачисления.РайонныйКоэффициентРФ КАК ЧИСЛО(15, 2))
| ИНАЧЕ ОсновныеНачисления.МесячноеПособие
| КОНЕЦ * ВЫБОР
| КОГДА ОсновныеНачисления.ПериодДействияНачало = ОсновныеНачисления.ПериодДействия
| И ОсновныеНачисления.ПериодДействияКонец = КОНЕЦПЕРИОДА(ОсновныеНачисления.ПериодДействия, МЕСЯЦ)
| ТОГДА 1
| ИНАЧЕ РАЗНОСТЬДАТ(ОсновныеНачисления.ПериодДействияНачало, ДОБАВИТЬКДАТЕ(ОсновныеНачисления.ПериодДействияКонец, СЕКУНДА, 1), ДЕНЬ) / РАЗНОСТЬДАТ(ОсновныеНачисления.ПериодДействия, ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ОсновныеНачисления.ПериодДействия, МЕСЯЦ), СЕКУНДА, 1), ДЕНЬ)
| КОНЕЦ * ВЫБОР
| КОГДА ОсновныеНачисления.Сторно
| ТОГДА -1
| ИНАЧЕ 1
| КОНЕЦ / ОсновныеНачисления.Результат
| КОНЕЦ КАК ДоляПособияНаПервогоРебенка
|ПОМЕСТИТЬ РасчетПособийПоУходуЗаПервымРебенком
|ИЗ
| ВТЗаписиПособийПоУходу КАК ОсновныеНачисления
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ЗаписиПособийПоУходу.Регистратор КАК Регистратор,
| ЗаписиПособийПоУходу.НомерСтроки КАК НомерСтроки,
| ГосударственныеПособия.ВидПособия КАК ВидПособия,
| МАКСИМУМ(ГосударственныеПособия.Период) КАК ДатаИзмененияРазмераПособия
| ИЗ
| ВТЗаписиПособийПоУходу КАК ЗаписиПособийПоУходу
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГосударственныеПособия КАК ГосударственныеПособия
| ПО ЗаписиПособийПоУходу.ПериодДействия >= ГосударственныеПособия.Период
| ГДЕ
| ГосударственныеПособия.ВидПособия = ЗНАЧЕНИЕ(Перечисление.РазмерыГосударственныхПособий.МинимумПособияПоУходуЗаПервымРебенкомДоПолутораЛет)
|
| СГРУППИРОВАТЬ ПО
| ЗаписиПособийПоУходу.Регистратор,
| ЗаписиПособийПоУходу.НомерСтроки,
| ГосударственныеПособия.ВидПособия) КАК ДатыИзРегистраМинимум
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГосударственныеПособия КАК МинимумПособияПоУходуЗаПервымРебенкомДоПолутораЛет
| ПО ДатыИзРегистраМинимум.ВидПособия = МинимумПособияПоУходуЗаПервымРебенкомДоПолутораЛет.ВидПособия
| И ДатыИзРегистраМинимум.ДатаИзмененияРазмераПособия = МинимумПособияПоУходуЗаПервымРебенкомДоПолутораЛет.Период
| ПО ОсновныеНачисления.Регистратор = ДатыИзРегистраМинимум.Регистратор
| И ОсновныеНачисления.НомерСтроки = ДатыИзРегистраМинимум.НомерСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ЗаписиПособийПоУходу.Регистратор КАК Регистратор,
| ЗаписиПособийПоУходу.НомерСтроки КАК НомерСтроки,
| МАКСИМУМ(ГосударственныеПособия.Период) КАК ДатаИзмененияРазмераПособия
| ИЗ
| ВТЗаписиПособийПоУходу КАК ЗаписиПособийПоУходу
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредельнаяВеличинаБазыСтраховыхВзносов КАК ГосударственныеПособия
| ПО ЗаписиПособийПоУходу.ПериодДействия >= ГосударственныеПособия.Период
|
| СГРУППИРОВАТЬ ПО
| ЗаписиПособийПоУходу.Регистратор,
| ЗаписиПособийПоУходу.НомерСтроки) КАК ДатыИзРегистраМаксимум
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредельнаяВеличинаБазыСтраховыхВзносов КАК МаксимумПособияПоУходуЗаРебенкомДоПолутораЛет
| ПО ДатыИзРегистраМаксимум.ДатаИзмененияРазмераПособия = МаксимумПособияПоУходуЗаРебенкомДоПолутораЛет.Период
| ПО ОсновныеНачисления.Регистратор = ДатыИзРегистраМаксимум.Регистратор
| И ОсновныеНачисления.НомерСтроки = ДатыИзРегистраМаксимум.НомерСтроки
|
|ИНДЕКСИРОВАТЬ ПО
| Регистратор,
| НомерСтроки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДанныеУчета.Регистратор КАК Регистратор,
| ДанныеУчета.Регистратор КАК ДокументОснование,
| ДанныеУчета.НомерСтроки КАК НомерСтроки,
| ДанныеУчета.Сотрудник,
| ДанныеУчета.СотрудникНаименование КАК СотрудникНаименование,
| ДанныеУчета.ФизЛицо КАК Физлицо,
| ДанныеУчета.КодДоходаЕСН,
| ДанныеУчета.РезультатСторно КАК РезультатСторно,
| ДанныеУчета.ВидРасчета,
| ДанныеУчета.Результат КАК Результат,
| ДанныеУчета.ДополнительныйРезультат,
| ДанныеУчета.ПериодДействияНачало,
| ДанныеУчета.ПериодДействияКонец,
| ДанныеУчета.ГрафикРаботы,
| ДанныеУчета.Сторно,
| ДанныеУчета.ВариантОбработкиЗаписиПриОтраженииВРеглУчете,
| ДанныеУчета.СтратегияОтраженияВУчете,
| ДанныеУчета.ВидУчетаВремени,
| СоответствиеКодов.ВидПоСтраховымВзносам КАК КодДоходаЕСНРазрез,
| ВЫБОР
| КОГДА База.РезультатБаза ЕСТЬ НЕ NULL
| ТОГДА База.РезультатБаза
| ИНАЧЕ БазаСреднегоЗаработка.РезультатБаза
| КОНЕЦ КАК РезультатБаза,
| РАЗНОСТЬДАТ(ДанныеУчета.ПериодДействияНачало, НАЧАЛОПЕРИОДА(ДанныеУчета.ПериодДействияКонец, ДЕНЬ), ДЕНЬ) + 1 КАК ВсегоДнейНетрудоспособности,
| РАЗНОСТЬДАТ(ДанныеУчета.ПериодДействияНачалоСторно, НАЧАЛОПЕРИОДА(ДанныеУчета.ПериодДействияКонецСторно, ДЕНЬ), ДЕНЬ) + 1 КАК ВсегоДнейНетрудоспособностиСторно,
| ДанныеУчета.НормаДней,
| ДанныеУчета.ВидПособияСоциальногоСтрахования,
| ЕСТЬNULL(ДанныеУчета.СреднийДневнойЗаработок, 0) КАК СреднийДневнойЗаработок,
| ЕСТЬNULL(РасчетПособийПоУходуЗаПервымРебенком.ДоляПособияНаПервогоРебенка, 0) КАК ДоляПособияНаПервогоРебенка,
| ДанныеУчета.ДатаНачалаСобытия,
| ДанныеУчета.УчитыватьКакНовыйСтраховойСлучай,
| 0 КАК Скидка,
| ДанныеУчета.ПериодДействияНачалоСторно КАК ПериодДействияНачалоСторно,
| ДанныеУчета.ПериодДействияКонецСторно КАК ПериодДействияКонецСторно,
| ЛОЖЬ КАК ЭтоЕдиновременноеПособиеФСС,
| ВЫБОР
| КОГДА ДанныеУчета.ВариантОбработкиЗаписиПриОтраженииВРеглУчете В (ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйТравмаНаПроизводстве), ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.ОтпускПоБеременностиИРодамПоУходуЗаРебенком), ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйОбщееЗаболевание), ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйПрочий))
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоПособияФСС,
| ВЫБОР
| КОГДА ДанныеУчета.ВариантОбработкиЗаписиПриОтраженииВРеглУчете В (ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйТравмаНаПроизводстве), ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.ОтпускПоБеременностиИРодамПоУходуЗаРебенком), ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйОбщееЗаболевание), ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.БольничныйПрочий))
| И ДанныеУчета.ДополнительныйРезультат <> 0
| ТОГДА ЛьготыФизлиц.ВыплатаЗаСчетФедеральногоБюджета
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ВыплатаЗаСчетФедеральногоБюджета
|ИЗ
| ДанныеУчета КАК ДанныеУчета
| ЛЕВОЕ СОЕДИНЕНИЕ База КАК База
| ПО ДанныеУчета.Регистратор = База.Регистратор
| И ДанныеУчета.НомерСтроки = База.НомерСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_БазаСреднегоЗаработка КАК БазаСреднегоЗаработка
| ПО ДанныеУчета.Регистратор = БазаСреднегоЗаработка.Регистратор
| И ДанныеУчета.НомерСтроки = БазаСреднегоЗаработка.НомерСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ ВТСоответствиеКодовЕСНиСтраховыхВзносов КАК СоответствиеКодов
| ПО (ЕСТЬNULL(База.КодДоходаЕСНРазрез, БазаСреднегоЗаработка.КодДоходаЕСНРазрез) = СоответствиеКодов.КодДоходаЕСН)
| ЛЕВОЕ СОЕДИНЕНИЕ РасчетПособийПоУходуЗаПервымРебенком КАК РасчетПособийПоУходуЗаПервымРебенком
| ПО ДанныеУчета.Регистратор = РасчетПособийПоУходуЗаПервымРебенком.Регистратор
| И ДанныеУчета.НомерСтроки = РасчетПособийПоУходуЗаПервымРебенком.НомерСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ ВТЛьготыФизлиц КАК ЛьготыФизлиц
| ПО ДанныеУчета.ФизЛицо = ЛьготыФизлиц.Физлицо
|
|УПОРЯДОЧИТЬ ПО
| СотрудникНаименование,
| Регистратор,
| НомерСтроки,
| КодДоходаЕСНРазрез
|АВТОУПОРЯДОЧИВАНИЕ";

Иначе

// обработка дополнительных начислений
Если Не ЭтоПервичныеНачисления Тогда

//соберем базу для зависимых начислений
БазаТекст =
"ВЫБРАТЬ
| База.Регистратор КАК Регистратор,
| База.НомерСтроки КАК НомерСтроки,
| База.КодДоходаЕСНРазрез,
| СУММА(База.РезультатБаза) КАК РезультатБаза
|ПОМЕСТИТЬ База
|ИЗ
| (ВЫБРАТЬ
| ДополнительныеНачисленияБазаЕСНОсновныеНачисления.Регистратор КАК Регистратор,
| ДополнительныеНачисленияБазаЕСНОсновныеНачисления.НомерСтроки КАК НомерСтроки,
| ДополнительныеНачисленияБазаЕСНОсновныеНачисления.КодДоходаЕСНРазрез КАК КодДоходаЕСНРазрез,
| ДополнительныеНачисленияБазаЕСНОсновныеНачисления.РезультатБаза КАК РезультатБаза
| ИЗ
| РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций.БазаЕСНОсновныеНачисления(
| &парамИзмерения,
| &парамИзмерения,
| &парамРазрезыЕСН,
| Организация = &парамГоловнаяОрганизация
| И НАЧАЛОПЕРИОДА(ПериодРегистрации, МЕСЯЦ) = &парамПериодРегистрации
| И (&парамНеОтбиратьСотрудников
| ИЛИ Сотрудник В
| (ВЫБРАТЬ
| ВТСписокСотрудников.Сотрудник
| ИЗ
| ВТСписокСотрудников КАК ВТСписокСотрудников))
| И (НЕ Сторно)
| И ВидРасчета В (&парамСписокНачислений)
| И (НЕ ВидРасчета.СпособРасчета В (&парамПоСреднемуЗаработку))
| И ВидРасчета.КодДоходаСтраховыеВзносы = ЗНАЧЕНИЕ(Справочник.ДоходыПоСтраховымВзносам.РаспределятьПоБазовымНачислениям)) КАК ДополнительныеНачисленияБазаЕСНОсновныеНачисления
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ДополнительныеНачисленияБазаЕСНДополнительныеНачисления.Регистратор,
| ДополнительныеНачисленияБазаЕСНДополнительныеНачисления.НомерСтроки,
| ДополнительныеНачисленияБазаЕСНДополнительныеНачисления.КодДоходаЕСНРазрез,
| ДополнительныеНачисленияБазаЕСНДополнительныеНачисления.РезультатБаза
| ИЗ
| РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций.БазаЕСНДополнительныеНачисления(
| &парамИзмерения,
| &парамИзмерения,
| &парамРазрезыЕСН,
| Организация = &парамГоловнаяОрганизация
| И НАЧАЛОПЕРИОДА(ПериодРегистрации, МЕСЯЦ) = &парамПериодРегистрации
| И (&парамНеОтбиратьСотрудников
| ИЛИ Сотрудник В
| (ВЫБРАТЬ
| ВТСписокСотрудников.Сотрудник
| ИЗ
| ВТСписокСотрудников КАК ВТСписокСотрудников))
| И (НЕ Сторно)
| И ВидРасчета В (&парамСписокНачислений)
| И (НЕ ВидРасчета.СпособРасчета В (&парамПоСреднемуЗаработку))
| И ВидРасчета.КодДоходаСтраховыеВзносы = ЗНАЧЕНИЕ(Справочник.ДоходыПоСтраховымВзносам.РаспределятьПоБазовымНачислениям)) КАК ДополнительныеНачисленияБазаЕСНДополнительныеНачисления) КАК База
|
|СГРУППИРОВАТЬ ПО
| База.Регистратор,
| База.КодДоходаЕСНРазрез,
| База.НомерСтроки
|
|ИНДЕКСИРОВАТЬ ПО
| Регистратор,
| НомерСтроки";

Иначе

// для первичных начислений не собираем базу
БазаТекст =
"ВЫБРАТЬ
| НЕОПРЕДЕЛЕНО КАК Регистратор,
| 0 КАК НомерСтроки,
| ЗНАЧЕНИЕ(Справочник.ДоходыПоСтраховымВзносам.ПустаяСсылка) КАК КодДоходаЕСНРазрез,
| 0 КАК РезультатБаза
|ПОМЕСТИТЬ База";

КонецЕсли;

Запрос.Текст = БазаТекст;
//временная таблица - База
Запрос.Выполнить();

///////////////////////////////////////////////////////////////////////////////////
// ПОЛУЧЕНИЕ БАЗЫ СРЕДНЕГО ЗАРАБОТКА для прочих начислений

ПолучатьБазу = Ложь;

// ВТ_ПрочиеНачисления
//
Запрос.Текст =
"ВЫБРАТЬ
| ДополнительныеНачисления.Сотрудник,
| ДополнительныеНачисления.Регистратор,
| ДополнительныеНачисления.НомерСтроки,
| ДополнительныеНачисления.ДатаНачалаСобытия,
| ДополнительныеНачисления.ПериодРасчетаСреднегоЗаработкаНачало,
| ДополнительныеНачисления.ПериодРасчетаСреднегоЗаработкаОкончание,
| ДополнительныеНачисления.ВидРасчета.СпособРасчета КАК СпособРасчета
|ПОМЕСТИТЬ ВТ_ПрочиеНачисления
|ИЗ
| РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисления
|ГДЕ
| ДополнительныеНачисления.ВидРасчета.СтратегияОтраженияВУчете = ЗНАЧЕНИЕ(Перечисление.СтратегииОтраженияВРеглУчетеНачислений.КакБазовыеНачисления)
| И НАЧАЛОПЕРИОДА(ДополнительныеНачисления.ПериодРегистрации, МЕСЯЦ) = &парамПериодРегистрации
| И (&парамНеОтбиратьСотрудников
| ИЛИ ДополнительныеНачисления.Сотрудник В
| (ВЫБРАТЬ
| ВТСписокСотрудников.Сотрудник
| ИЗ
| ВТСписокСотрудников КАК ВТСписокСотрудников))
| И ДополнительныеНачисления.ОбособленноеПодразделение = &парамОрганизация
| И ДополнительныеНачисления.ВидРасчета.СпособРасчета В(&парамПоСреднемуЗаработку)
| И ДополнительныеНачисления.ВидРасчета В(&парамСписокНачислений)
| И ДополнительныеНачисления.Результат <> 0
| И (НЕ ДополнительныеНачисления.Сторно)";
Запрос.Выполнить();

// ВТ_СотрудникиПериодыПрочиеНачисления
// условия для виртуальной таблицы
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ДополнительныеНачисления.Сотрудник КАК Сотрудник,
| ДополнительныеНачисления.ДатаНачалаСобытия КАК ДатаНачалаСобытия
|ПОМЕСТИТЬ ВТ_СотрудникиПериодыПрочиеНачисления
|ИЗ
| ВТ_ПрочиеНачисления КАК ДополнительныеНачисления
|
|ИНДЕКСИРОВАТЬ ПО
| Сотрудник,
| ДатаНачалаСобытия";
Результат = Запрос.Выполнить().Выгрузить();
ПолучатьБазу = Результат[0].Количество > 0;

Если ПолучатьБазу Тогда

БазаСреднегоЗаработкаТекст =
"ВЫБРАТЬ
| БазаСреднегоЗаработка.Регистратор КАК Регистратор,
| БазаСреднегоЗаработка.НомерСтроки КАК НомерСтроки,
| БазаСреднегоЗаработка.КодДоходаЕСНРазрез,
| СУММА(БазаСреднегоЗаработка.РезультатБаза) КАК РезультатБаза
|ПОМЕСТИТЬ ВТ_БазаСреднегоЗаработка
|ИЗ
| (ВЫБРАТЬ
| ДополнительныеНачисления.Регистратор КАК Регистратор,
| ДополнительныеНачисления.НомерСтроки КАК НомерСтроки,
| ВЫБОР
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамОсновнойЗаработок)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза * ВЫБОР
| КОГДА БазаСреднегоЗаработка.КоэффициентИндексации < 1
| ТОГДА 1
| ИНАЧЕ БазаСреднегоЗаработка.КоэффициентИндексации
| КОНЕЦ
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамОсновнойЗаработокНеиндексируемый)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза
| КОГДА БазаСреднегоЗаработка.ЧислоМесяцев = 0
| ТОГДА 0
| ИНАЧЕ ВЫБОР
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамПоПремиям)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза * ВЫБОР
| КОГДА БазаСреднегоЗаработка.КоэффициентИндексации < 1
| ТОГДА 1
| ИНАЧЕ БазаСреднегоЗаработка.КоэффициентИндексации
| КОНЕЦ
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамПоФиксПремиям)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза * ВЫБОР
| КОГДА БазаСреднегоЗаработка.КоэффициентИндексации < 1
| ТОГДА 1
| ИНАЧЕ БазаСреднегоЗаработка.КоэффициентИндексации
| КОНЕЦ * ВЫБОР
| КОГДА БазаСреднегоЗаработка.НормаПоПятидневке = 0
| ТОГДА 0
| ИНАЧЕ БазаСреднегоЗаработка.ОтработаноПоПятидневке / БазаСреднегоЗаработка.НормаПоПятидневке
| КОНЕЦ
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамПоФиксПремиямНеИндексируемые)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза * ВЫБОР
| КОГДА БазаСреднегоЗаработка.НормаПоПятидневке = 0
| ТОГДА 0
| ИНАЧЕ БазаСреднегоЗаработка.ОтработаноПоПятидневке / БазаСреднегоЗаработка.НормаПоПятидневке
| КОНЕЦ
| ИНАЧЕ БазаСреднегоЗаработка.РезультатБаза
| КОНЕЦ * ВЫБОР
| КОГДА БазаСреднегоЗаработка.ЧислоМесяцев > БазаСреднегоЗаработка.ПериодРасчетаСреднегоЗаработка
| ТОГДА БазаСреднегоЗаработка.ПериодРасчетаСреднегоЗаработка / БазаСреднегоЗаработка.ЧислоМесяцев
| ИНАЧЕ 1
| КОНЕЦ
| КОНЕЦ КАК РезультатБаза,
| БазаСреднегоЗаработка.КодДоходаЕСНРазрез КАК КодДоходаЕСНРазрез
| ИЗ
| ВТ_ПрочиеНачисления КАК ДополнительныеНачисления
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрРасчета.РасчетСреднегоЗаработка.БазаЕСНОсновныеНачисления(
| &парамИзмерения,
| &парамИзмерения,
| &парамРазрезыЕСН,
| Организация = &парамГоловнаяОрганизация
| И Результат <> 0
| И ПериодРегистрации = &парамПериодРегистрации
| И (Сотрудник, ДатаНачалаСобытия) В
| (ВЫБРАТЬ
| Список.Сотрудник,
| Список.ДатаНачалаСобытия
| ИЗ
| ВТ_СотрудникиПериодыПрочиеНачисления КАК Список)) КАК БазаСреднегоЗаработка
| ПО ДополнительныеНачисления.СпособРасчета = БазаСреднегоЗаработка.СпособРасчета
| И ДополнительныеНачисления.ДатаНачалаСобытия = БазаСреднегоЗаработка.ДатаНачалаСобытия
| И ДополнительныеНачисления.ПериодРасчетаСреднегоЗаработкаНачало = БазаСреднегоЗаработка.ДатаНачалаРасчетногоПериода
| И ДополнительныеНачисления.ПериодРасчетаСреднегоЗаработкаОкончание = БазаСреднегоЗаработка.ДатаОкончанияРасчетногоПериода
| И ДополнительныеНачисления.Сотрудник = БазаСреднегоЗаработка.Сотрудник
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ДополнительныеНачисления.Регистратор,
| ДополнительныеНачисления.НомерСтроки,
| ВЫБОР
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамОсновнойЗаработок)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза * ВЫБОР
| КОГДА БазаСреднегоЗаработка.КоэффициентИндексации < 1
| ТОГДА 1
| ИНАЧЕ БазаСреднегоЗаработка.КоэффициентИндексации
| КОНЕЦ
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамОсновнойЗаработокНеиндексируемый)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза
| КОГДА БазаСреднегоЗаработка.ЧислоМесяцев = 0
| ТОГДА 0
| ИНАЧЕ ВЫБОР
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамПоПремиям)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза * ВЫБОР
| КОГДА БазаСреднегоЗаработка.КоэффициентИндексации < 1
| ТОГДА 1
| ИНАЧЕ БазаСреднегоЗаработка.КоэффициентИндексации
| КОНЕЦ
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамПоФиксПремиям)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза * ВЫБОР
| КОГДА БазаСреднегоЗаработка.КоэффициентИндексации < 1
| ТОГДА 1
| ИНАЧЕ БазаСреднегоЗаработка.КоэффициентИндексации
| КОНЕЦ * ВЫБОР
| КОГДА БазаСреднегоЗаработка.НормаПоПятидневке = 0
| ТОГДА 0
| ИНАЧЕ БазаСреднегоЗаработка.ОтработаноПоПятидневке / БазаСреднегоЗаработка.НормаПоПятидневке
| КОНЕЦ
| КОГДА БазаСреднегоЗаработка.ВидРасчета В (&парамПоФиксПремиямНеИндексируемые)
| ТОГДА БазаСреднегоЗаработка.РезультатБаза * ВЫБОР
| КОГДА БазаСреднегоЗаработка.НормаПоПятидневке = 0
| ТОГДА 0
| ИНАЧЕ БазаСреднегоЗаработка.ОтработаноПоПятидневке / БазаСреднегоЗаработка.НормаПоПятидневке
| КОНЕЦ
| ИНАЧЕ БазаСреднегоЗаработка.РезультатБаза
| КОНЕЦ * ВЫБОР
| КОГДА БазаСреднегоЗаработка.ЧислоМесяцев > БазаСреднегоЗаработка.ПериодРасчетаСреднегоЗаработка
| ТОГДА БазаСреднегоЗаработка.ПериодРасчетаСреднегоЗаработка / БазаСреднегоЗаработка.ЧислоМесяцев
| ИНАЧЕ 1
| КОНЕЦ
| КОНЕЦ,
| БазаСреднегоЗаработка.КодДоходаЕСНРазрез
| ИЗ
| ВТ_ПрочиеНачисления КАК ДополнительныеНачисления
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрРасчета.РасчетСреднегоЗаработка.БазаЕСНДополнительныеНачисления(
| &парамИзмерения,
| &парамИзмерения,
| &парамРазрезыЕСН,
| Организация = &парамГоловнаяОрганизация
| И Результат <> 0
| И ПериодРегистрации = &парамПериодРегистрации
| И (Сотрудник, ДатаНачалаСобытия) В
| (ВЫБРАТЬ
| Список.Сотрудник,
| Список.ДатаНачалаСобытия
| ИЗ
| ВТ_СотрудникиПериодыПрочиеНачисления КАК Список)) КАК БазаСреднегоЗаработка
| ПО ДополнительныеНачисления.ДатаНачалаСобытия = БазаСреднегоЗаработка.ДатаНачалаСобытия
| И ДополнительныеНачисления.Сотрудник = БазаСреднегоЗаработка.Сотрудник) КАК БазаСреднегоЗаработка
|
|СГРУППИРОВАТЬ ПО
| БазаСреднегоЗаработка.Регистратор,
| БазаСреднегоЗаработка.НомерСтроки,
| БазаСреднегоЗаработка.КодДоходаЕСНРазрез
|
|ИНДЕКСИРОВАТЬ ПО
| Регистратор,
| НомерСтроки";

Иначе

БазаСреднегоЗаработкаТекст =
"ВЫБРАТЬ
| НЕОПРЕДЕЛЕНО КАК Регистратор,
| 0 КАК НомерСтроки,
| НЕОПРЕДЕЛЕНО КАК КодДоходаЕСНРазрез,
| 0 КАК РезультатБаза
|ПОМЕСТИТЬ ВТ_БазаСреднегоЗаработка";

КонецЕсли;

Запрос.Текст = БазаСреднегоЗаработкаТекст;
//временная таблица - ВТ_БазаСреднегоЗаработка
Запрос.Выполнить();

// Закончили получение базы среднего заработка для прочих начислений
///////////////////////////////////////////////////////////////////////////////////

ОтражениеВУчетеСторноТекст =
"ВЫБРАТЬ
| ДополнительныеНачисления.Регистратор КАК Регистратор,
| ДополнительныеНачисления.НомерСтроки КАК НомерСтроки,
| ДополнительныеНачисления.Сотрудник КАК Сотрудник,
| ДополнительныеНачисления.ВидРасчета КАК ВидРасчета,
| ДополнительныеНачисления.СторнируемыйДокумент КАК СторнируемыйДокумент
|ПОМЕСТИТЬ ВТ_ДополнительныеНачисленияСторно
|ИЗ
| РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисления
|ГДЕ
| ДополнительныеНачисления.ОбособленноеПодразделение = &парамОрганизация
| И НАЧАЛОПЕРИОДА(ДополнительныеНачисления.ПериодРегистрации, МЕСЯЦ) = &парамПериодРегистрации
| И (&парамНеОтбиратьСотрудников
| ИЛИ ДополнительныеНачисления.Сотрудник В
| (ВЫБРАТЬ
| ВТСписокСотрудников.Сотрудник
| ИЗ
| ВТСписокСотрудников КАК ВТСписокСотрудников))
| И ДополнительныеНачисления.Результат <> 0
| И ДополнительныеНачисления.Сторно
|
|ИНДЕКСИРОВАТЬ ПО
| СторнируемыйДокумент";

Запрос.Текст = ОтражениеВУчетеСторноТекст;
//временная таблица - ВТ_ДополнительныеНачисленияСторно
Результат = Запрос.Выполнить().Выгрузить();
КоличествоСторноЗаписей = Результат[0].Количество;

Если КоличествоСторноЗаписей <> 0 Тогда

Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ДополнительныеНачисленияСторно.Регистратор КАК Регистратор,
| ДополнительныеНачисленияСторно.НомерСтроки КАК НомерСтроки,
| ДополнительныеНачисленияСторно.Сотрудник КАК Сотрудник,
| ДополнительныеНачисленияСторно.ВидРасчета КАК ВидРасчета,
| ДополнительныеНачисленияСторно.СторнируемыйДокумент КАК СторнируемыйДокумент,
| НАЧАЛОПЕРИОДА(ДополнительныеНачисления.ПериодРегистрации, МЕСЯЦ) КАК ПериодРегистрации
|ПОМЕСТИТЬ ВТ_СторноСотрудники
|ИЗ
| ВТ_ДополнительныеНачисленияСторно КАК ДополнительныеНачисленияСторно
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисления
| ПО ДополнительныеНачисленияСторно.СторнируемыйДокумент = ДополнительныеНачисления.Регистратор
|ГДЕ
| ДополнительныеНачисления.ОбособленноеПодразделение = &парамОрганизация
|
|ИНДЕКСИРОВАТЬ ПО
| Сотрудник,
| ВидРасчета,
| ПериодРегистрации,
| СторнируемыйДокумент";

//временная таблица - ВТ_СторноСотрудники
Запрос.Выполнить();

ОтражениеВУчетеСторноТекст =
"ВЫБРАТЬ
| ДополнительныеНачисления.Регистратор КАК Регистратор,
| ДополнительныеНачисления.НомерСтроки КАК НомерСтроки,
| ЕСНДополнительныеНачисления.КодДоходаЕСН,
| ЕСНДополнительныеНачисления.Результат
|ПОМЕСТИТЬ ВТ_ОтражениеВУчетеСторно
|ИЗ
| ВТ_СторноСотрудники КАК ДополнительныеНачисления
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| НАЧАЛОПЕРИОДА(ЕСНДополнительныеНачисления.ПериодРегистрации, МЕСЯЦ) КАК ПериодРегистрации,
| ЕСНДополнительныеНачисления.ВидРасчета КАК ВидРасчета,
| ЕСНДополнительныеНачисления.Сотрудник КАК Сотрудник,
| ЕСНДополнительныеНачисления.Результат КАК Результат,
| СоответствиеКодов.ВидПоСтраховымВзносам КАК КодДоходаЕСН,
| ЕСНДополнительныеНачисления.ДокументОснование КАК ДокументОснование
| ИЗ
| РегистрРасчета.ЕСНДополнительныеНачисления КАК ЕСНДополнительныеНачисления
| ЛЕВОЕ СОЕДИНЕНИЕ ВТСоответствиеКодовЕСНиСтраховыхВзносов КАК СоответствиеКодов
| ПО ЕСНДополнительныеНачисления.КодДоходаЕСН = СоответствиеКодов.КодДоходаЕСН
| ГДЕ
| (ЕСНДополнительныеНачисления.ПериодРегистрации, ЕСНДополнительныеНачисления.Сотрудник, ЕСНДополнительныеНачисления.ВидРасчета) В
| (ВЫБРАТЬ
| Начисления.ПериодРегистрации,
| Начисления.Сотрудник,
| Начисления.ВидРасчета
| ИЗ
| ВТ_СторноСотрудники КАК Начисления)) КАК ЕСНДополнительныеНачисления
| ПО ДополнительныеНачисления.ВидРасчета = ЕСНДополнительныеНачисления.ВидРасчета
| И ДополнительныеНачисления.Сотрудник = ЕСНДополнительныеНачисления.Сотрудник
| И ДополнительныеНачисления.СторнируемыйДокумент = ЕСНДополнительныеНачисления.ДокументОснование
| И ДополнительныеНачисления.ПериодРегистрации = ЕСНДополнительныеНачисления.ПериодРегистрации
|
|ИНДЕКСИРОВАТЬ ПО
| Регистратор,
| НомерСтроки";

Иначе

ОтражениеВУчетеСторноТекст =
"ВЫБРАТЬ
| НЕОПРЕДЕЛЕНО КАК Регистратор,
| НЕОПРЕДЕЛЕНО КАК НомерСтроки,
| НЕОПРЕДЕЛЕНО КАК КодДоходаЕСН,
| 0 КАК Результат
|ПОМЕСТИТЬ ВТ_ОтражениеВУчетеСторно";

КонецЕсли;

Запрос.Текст = ОтражениеВУчетеСторноТекст;
//временная таблица - ВТ_ОтражениеВУчетеСторно
Запрос.Выполнить();


ТекстЗапроса =
"ВЫБРАТЬ
| ДополнительныеНачисления.Регистратор КАК Регистратор,
| ДополнительныеНачисления.НомерСтроки КАК НомерСтроки,
| ДополнительныеНачисления.Сотрудник КАК Сотрудник,
| ДополнительныеНачисления.ФизЛицо КАК ФизЛицо,
| ВЫБОР
| КОГДА ДополнительныеНачисления.Сторно
| ТОГДА ОтражениеВУчетеСторно.КодДоходаЕСН
| ИНАЧЕ ДополнительныеНачисления.ВидРасчета.КодДоходаСтраховыеВзносы
| КОНЕЦ КАК КодДоходаЕСН,
| ОтражениеВУчетеСторно.Результат КАК РезультатСторно,
| ДополнительныеНачисления.ВидРасчета КАК ВидРасчета,
| ДополнительныеНачисления.Организация КАК Организация,
| ДополнительныеНачисления.Результат КАК Результат,
| ДополнительныеНачисления.ВидРасчета.КатегорияРасчета КАК КатегорияРасчета,
| ДополнительныеНачисления.ВидРасчета.СтратегияОтраженияВУчете КАК СтратегияОтраженияВУчете,
| ДополнительныеНачисления.ВидРасчета.ВидПособияСоциальногоСтрахования КАК ВидПособияСоциальногоСтрахования,
| ДополнительныеНачисления.Сторно КАК Сторно,
| ДополнительныеНачисления.ДатаНачалаСобытия КАК ДатаНачалаСобытия,
| ДополнительныеНачисления.ПериодРегистрации КАК ПериодРегистрации,
| ВЫБОР
| КОГДА ДополнительныеНачисления.ДокументОснование.ВидДоговора ЕСТЬ NULL
| ТОГДА ДополнительныеНачисления.СкидкаПриНалогообложении
| КОГДА ДополнительныеНачисления.ДокументОснование.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровСФизЛицами.Авторский)
| ТОГДА ВЫБОР
| КОГДА ДополнительныеНачисления.ДокументОснование.ВидАвторскогоДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыАвторскогоДоговора.АвторскогоЗаказа)
| ТОГДА ДополнительныеНачисления.СкидкаПриНалогообложении
| КОГДА ДополнительныеНачисления.ДокументОснование.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код405)
| ТОГДА ДополнительныеНачисления.Результат
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК Скидка,
| ВЫБОР
| КОГДА ДополнительныеНачисления.ДокументОснование.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровСФизЛицами.Авторский)
| И ДополнительныеНачисления.ДокументОснование.ВидАвторскогоДоговора <> ЗНАЧЕНИЕ(Перечисление.ВидыАвторскогоДоговора.АвторскогоЗаказа)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК СкидкаНеРассчитана,
| ВЫБОР
| КОГДА ДополнительныеНачисления.ВидРасчета.ВидПособияСоциальногоСтрахования В (ЗНАЧЕНИЕ(Перечисление.ВидыПособийСоциальногоСтрахования.ПриПостановкеНаУчетВРанниеСрокиБеременности), ЗНАЧЕНИЕ(Перечисление.ВидыПособийСоциальногоСтрахования.ПриРожденииРебенка), ЗНАЧЕНИЕ(Перечисление.ВидыПособийСоциальногоСтрахования.ПриУсыновленииРебенка), ЗНАЧЕНИЕ(Перечисление.ВидыПособийСоциальногоСтрахования.ВСвязиСоСмертью))
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоЕдиновременноеПособиеФСС,
| ДополнительныеНачисления.Сотрудник.Наименование КАК СотрудникНаименование
|ПОМЕСТИТЬ ВТДанныеУчета
|ИЗ
| РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисления
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ЕСНДополнительныеНачисления КАК ЕСНДополнительныеНачисления
| ПО ДополнительныеНачисления.Сотрудник = ЕСНДополнительныеНачисления.Сотрудник
| И (ЕСНДополнительныеНачисления.ВидРасчета = ДополнительныеНачисления.ВидРасчета)
| И (ЕСНДополнительныеНачисления.ПериодРегистрации = &парамПериодРегистрации)
| И (ЕСНДополнительныеНачисления.ДокументОснование = ДополнительныеНачисления.Регистратор)
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОтражениеВУчетеСторно КАК ОтражениеВУчетеСторно
| ПО ДополнительныеНачисления.Регистратор = ОтражениеВУчетеСторно.Регистратор
| И ДополнительныеНачисления.НомерСтроки = ОтражениеВУчетеСторно.НомерСтроки
|ГДЕ
| ЕСНДополнительныеНачисления.Сотрудник ЕСТЬ NULL
| И ДополнительныеНачисления.ОбособленноеПодразделение = &парамОрганизация
| И (&парамНеОтбиратьСотрудников
| ИЛИ ДополнительныеНачисления.Сотрудник В
| (ВЫБРАТЬ
| ВТСписокСотрудников.Сотрудник
| ИЗ
| ВТСписокСотрудников КАК ВТСписокСотрудников))
| И ДополнительныеНачисления.Результат <> 0
| И ДополнительныеНачисления.ВидРасчета В(&парамСписокНачислений)
| И НАЧАЛОПЕРИОДА(ДополнительныеНачисления.ПериодРегистрации, МЕСЯЦ) = &парамПериодРегистрации
|
|ИНДЕКСИРОВАТЬ ПО
| Регистратор,
| НомерСтроки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДанныеУчета.Регистратор КАК Регистратор,
| ДанныеУчета.Регистратор КАК ДокументОснование,
| ДанныеУчета.НомерСтроки КАК НомерСтроки,
| ДанныеУчета.Сотрудник,
| ДанныеУчета.СотрудникНаименование КАК СотрудникНаименование,
| ДанныеУчета.ФизЛицо,
| ДанныеУчета.КодДоходаЕСН,
| ДанныеУчета.РезультатСторно КАК РезультатСторно,
| ДанныеУчета.ВидРасчета,
| ДанныеУчета.Результат КАК Результат,
| 0 КАК ДополнительныйРезультат,
| ДанныеУчета.СтратегияОтраженияВУчете,
| ДанныеУчета.ВидПособияСоциальногоСтрахования,
| ДанныеУчета.ПериодРегистрации,
| ДанныеУчета.ДатаНачалаСобытия КАК ДатаНачалаСобытия,
| ЗНАЧЕНИЕ(Перечисление.ВариантыОбработкиЗаписиПриОтраженииВРеглУчете.ПустаяСсылка) КАК ВариантОбработкиЗаписиПриОтраженииВРеглУчете,
| СоответствиеКодов.ВидПоСтраховымВзносам КАК КодДоходаЕСНРазрез,
| ВЫБОР
| КОГДА База.РезультатБаза ЕСТЬ НЕ NULL
| ТОГДА База.РезультатБаза
| ИНАЧЕ БазаСреднегоЗаработка.РезультатБаза
| КОНЕЦ КАК РезультатБаза,
| ДанныеУчета.Сторно КАК Сторно,
| ИСТИНА КАК УчитыватьКакНовыйСтраховойСлучай,
| ВЫБОР
| КОГДА ДанныеУчета.КодДоходаЕСН В (&ДоходыАвторские)
| ТОГДА ДанныеУчета.Скидка * ВЫБОР
| КОГДА ДанныеУчета.СкидкаНеРассчитана
| ТОГДА ЕСТЬNULL(СтраховыеВзносыСкидкиКДоходамСрезПоследних.НормативЗатрат / 100, 0)
| ИНАЧЕ 1
| КОНЕЦ
| КОГДА ДанныеУчета.КодДоходаЕСН = ЗНАЧЕНИЕ(Справочник.ДоходыПоСтраховымВзносам.МатпомощьПриРожденииРебенка)
| ТОГДА ДанныеУчета.Скидка
| ИНАЧЕ 0
| КОНЕЦ КАК Скидка,
| ДанныеУчета.ЭтоЕдиновременноеПособиеФСС КАК ЭтоЕдиновременноеПособиеФСС,
| ЛОЖЬ КАК ЭтоПособияФСС
|ИЗ
| ВТДанныеУчета КАК ДанныеУчета
| ЛЕВОЕ СОЕДИНЕНИЕ База КАК База
| ПО ДанныеУчета.Регистратор = База.Регистратор
| И ДанныеУчета.НомерСтроки = База.НомерСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_БазаСреднегоЗаработка КАК БазаСреднегоЗаработка
| ПО ДанныеУчета.Регистратор = БазаСреднегоЗаработка.Регистратор
| И ДанныеУчета.НомерСтроки = БазаСреднегоЗаработка.НомерСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ ВТСоответствиеКодовЕСНиСтраховыхВзносов КАК СоответствиеКодов
| ПО (ЕСТЬNULL(База.КодДоходаЕСНРазрез, БазаСреднегоЗаработка.КодДоходаЕСНРазрез) = СоответствиеКодов.КодДоходаЕСН)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтраховыеВзносыСкидкиКДоходам.СрезПоследних(&парамПериодРегистрации, ВидДохода В (&ДоходыАвторские)) КАК СтраховыеВзносыСкидкиКДоходамСрезПоследних
| ПО ДанныеУчета.КодДоходаЕСН = СтраховыеВзносыСкидкиКДоходамСрезПоследних.ВидДохода
|
|УПОРЯДОЧИТЬ ПО
| СотрудникНаименование,
| Регистратор,
| НомерСтроки,
| КодДоходаЕСНРазрез
|АВТОУПОРЯДОЧИВАНИЕ";

КонецЕсли;

Запрос.Текст = ТекстЗапроса;
РезультатЗапроса = Запрос.Выполнить();

Возврат РезультатЗапроса;

КонецФункции // ПолучитьДанныеУчета2011()
 
  Исправлено в релизе: 2.5.32  
 
  Код ошибки: 10073213  
  Дата публикации: 08.02.2011 16:04:10  
  Дата последнего изменения: 08.02.2011 0:00:00  
  Описание: При предоставлении имущественного вычета в 2011 году, стандартные вычеты предоставляются к доходам прошлых месяцев, отчего появлялся возврат налога.  
  Исправлено в релизе: 2.5.32  
 
  Код ошибки: 10073248  
  Дата публикации: 08.02.2011 16:03:21  
  Дата последнего изменения: 08.02.2011 0:00:00  
  Описание: Если сотрудник в 2010 году имел доходы по нескольким кодам ОКАТО и в ИБ имеется проведенный документ "Справка 2-НДФЛ для передачи в ИФНС" ежегодной отчетности по этому сотруднику за 2010 год по одному из его кодов ОКАТО, то при попытке заполнить документ "Справка 2-НДФЛ для передачи в ИФНС" по другому коду ОКАТО, сотрудник в него не попадает.  
  Способ исправления: Процедуру Автозаполнение() модуля документа заменить следующим фрагментом:

Процедура Автозаполнение() Экспорт

// Рассчитаем номер первой справки о доходах
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаДокумента",Дата);
Запрос.УстановитьПараметр("НалоговыйПериод",НалоговыйПериод);
Запрос.УстановитьПараметр("Организация",Организация);
Запрос.Текст =
"ВЫБРАТЬ
| КОЛИЧЕСТВО(СведенияОДоходахФизлицРаботникиОрганизации.НомерСтроки) КАК КоличествоСформированныхСправок
|ИЗ
| Документ.СправкаПоНДФЛВНалоговыйОрган.СотрудникиОрганизации КАК СведенияОДоходахФизлицРаботникиОрганизации
|ГДЕ
| СведенияОДоходахФизлицРаботникиОрганизации.Ссылка.Дата < &ДатаДокумента
| И СведенияОДоходахФизлицРаботникиОрганизации.Ссылка.Проведен
| И СведенияОДоходахФизлицРаботникиОрганизации.Ссылка.Организация = &Организация
| И СведенияОДоходахФизлицРаботникиОрганизации.Ссылка.НалоговыйПериод = &НалоговыйПериод";

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() тогда
НомерПервойСправки = ?(Выборка.КоличествоСформированныхСправок = NULL, 0, Выборка.КоличествоСформированныхСправок) + 1;
Иначе
НомерПервойСправки = 1;
КонецЕсли;

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаДокумента",Дата);
Запрос.УстановитьПараметр("Организация",Организация);
Запрос.УстановитьПараметр("Ссылка",Ссылка);
Запрос.УстановитьПараметр("ГодНП",НалоговыйПериод);
Запрос.УстановитьПараметр("КонецНП",КонецГода(Дата(НалоговыйПериод,1,1)));
Запрос.УстановитьПараметр("ДатаПодачиСведений", НачалоМесяца(Дата));
Запрос.УстановитьПараметр("КодПоОКАТО", СправкиПоНДФЛ.КодОКАТОизСуммыОКАТОиКПП(ОКАТО_КПП));
Запрос.УстановитьПараметр("КПП", СправкиПоНДФЛ.КППизСуммыОКАТОиКПП(ОКАТО_КПП));
Запрос.УстановитьПараметр("ОКАТО_КПП", ОКАТО_КПП);
Запрос.УстановитьПараметр("ПустойКодПоОКАТО","");
Запрос.УстановитьПараметр("ПустойКПП","");

Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| НДФЛСведенияОДоходах.ФизЛицо,
| НДФЛСведенияОДоходах.КодДохода
|ПОМЕСТИТЬ ВТДоходы
|ИЗ
| РегистрНакопления.НДФЛСведенияОДоходах КАК НДФЛСведенияОДоходах
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.СправкаПоНДФЛВНалоговыйОрган.СотрудникиОрганизации КАК СправкаПоНДФЛВНалоговыйОрганСотрудникиОрганизации
| ПО НДФЛСведенияОДоходах.ФизЛицо = СправкаПоНДФЛВНалоговыйОрганСотрудникиОрганизации.Сотрудник
| И (СправкаПоНДФЛВНалоговыйОрганСотрудникиОрганизации.Ссылка.Дата < &ДатаДокумента)
| И (СправкаПоНДФЛВНалоговыйОрганСотрудникиОрганизации.Ссылка.Проведен)
| И (СправкаПоНДФЛВНалоговыйОрганСотрудникиОрганизации.Ссылка.Организация = &Организация)
| И (СправкаПоНДФЛВНалоговыйОрганСотрудникиОрганизации.Ссылка.НалоговыйПериод = &ГодНП)
| И (СправкаПоНДФЛВНалоговыйОрганСотрудникиОрганизации.Ссылка.ОКАТО_КПП = &ОКАТО_КПП)
| И (СправкаПоНДФЛВНалоговыйОрганСотрудникиОрганизации.Ссылка <> &Ссылка)
| И (СправкаПоНДФЛВНалоговыйОрганСотрудникиОрганизации.Ссылка.ОснованиеДляПредставленияСправок = ЗНАЧЕНИЕ(Перечисление.ОснованияДляПредставленияСправок2НДФЛ.ЕжегоднаяОтчетность))
|ГДЕ
| НДФЛСведенияОДоходах.ОбособленноеПодразделение = &Организация
| И ГОД(НДФЛСведенияОДоходах.Период) = &ГодНП
| И НДФЛСведенияОДоходах.ПериодРегистрации < &ДатаПодачиСведений
| И ВЫБОР
| КОГДА НДФЛСведенияОДоходах.КодПоОКАТО <> &ПустойКодПоОКАТО
| ТОГДА НДФЛСведенияОДоходах.КодПоОКАТО
| КОГДА ЕСТЬNULL(НДФЛСведенияОДоходах.ПодразделениеОрганизации.КодПоОКАТО, &ПустойКодПоОКАТО) <> &ПустойКодПоОКАТО
| ТОГДА НДФЛСведенияОДоходах.ПодразделениеОрганизации.КодПоОКАТО
| ИНАЧЕ ЕСТЬNULL(НДФЛСведенияОДоходах.ОбособленноеПодразделение.КодПоОКАТО, &ПустойКодПоОКАТО)
| КОНЕЦ = &КодПоОКАТО
| И ВЫБОР
| КОГДА НДФЛСведенияОДоходах.КПП <> &ПустойКПП
| ТОГДА НДФЛСведенияОДоходах.КПП
| КОГДА ЕСТЬNULL(НДФЛСведенияОДоходах.ПодразделениеОрганизации.КПП, &ПустойКПП) <> &ПустойКПП
| ТОГДА НДФЛСведенияОДоходах.ПодразделениеОрганизации.КПП
| ИНАЧЕ ЕСТЬNULL(НДФЛСведенияОДоходах.ОбособленноеПодразделение.КПП, &ПустойКПП)
| КОНЕЦ = &КПП
| И СправкаПоНДФЛВНалоговыйОрганСотрудникиОрганизации.Сотрудник ЕСТЬ NULL
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Статусы.ФизЛицо,
| Статусы.Статус
|ПОМЕСТИТЬ ВТСтатусы
|ИЗ
| РегистрСведений.СтатусФизЛицКакНалогоплательщиковНДФЛ.СрезПоследних(
| &КонецНП,
| ФизЛицо В
| (ВЫБРАТЬ
| ФизическиеЛица.ФизЛицо
| ИЗ
| ВТДоходы КАК ФизическиеЛица)) КАК Статусы
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 3000
| НДФЛСведенияОДоходах.ФизЛицо КАК Сотрудник,
| ВЫБОР
| КОГДА Статусы.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыНалогоплательщиковПоНДФЛ.НеРезидент)
| ТОГДА ВЫБОР
| КОГДА НДФЛСведенияОДоходах.КодДохода = ЗНАЧЕНИЕ(Справочник.ДоходыНДФЛ.Код1010)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.НДФЛСтавки.Ставка15)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.НДФЛСтавки.Ставка30)
| КОНЕЦ
| КОГДА НДФЛСведенияОДоходах.КодДохода.СтавкаНалогообложенияРезидента = ЗНАЧЕНИЕ(Перечисление.НДФЛСтавкиНалогообложенияРезидента.Ставка13)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.НДФЛСтавки.Ставка13)
| КОГДА НДФЛСведенияОДоходах.КодДохода.СтавкаНалогообложенияРезидента = ЗНАЧЕНИЕ(Перечисление.НДФЛСтавкиНалогообложенияРезидента.Ставка09)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.НДФЛСтавки.Ставка09)
| КОГДА НДФЛСведенияОДоходах.КодДохода.СтавкаНалогообложенияРезидента = ЗНАЧЕНИЕ(Перечисление.НДФЛСтавкиНалогообложенияРезидента.Ставка35)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.НДФЛСтавки.Ставка35)
| ИНАЧЕ """"
| КОНЕЦ КАК Ставка
|ИЗ
| ВТДоходы КАК НДФЛСведенияОДоходах
| ЛЕВОЕ СОЕДИНЕНИЕ ВТСтатусы КАК Статусы
| ПО НДФЛСведенияОДоходах.ФизЛицо = Статусы.ФизЛицо
|
|УПОРЯДОЧИТЬ ПО
| НДФЛСведенияОДоходах.ФизЛицо.Наименование";

СотрудникиОрганизации.Загрузить(СправкиПоНДФЛ.ДанныеСотрудников(Запрос.Выполнить().Выгрузить(), Дата));
Для каждого СтрокаТЧ Из СотрудникиОрганизации Цикл
СтрокаТЧ.НомерСправки = НомерПервойСправки + СотрудникиОрганизации.Индекс(СтрокаТЧ)
КонецЦикла;
СтруктураДанных = СправкиПоНДФЛ.ДанныеОДоходах(СотрудникиОрганизации.Выгрузить(), НалоговыйПериод, Организация, ОбщегоНазначения.ГоловнаяОрганизация(Организация), ОКАТО_КПП, НачалоМесяца(Дата));
СведенияОДоходах.Загрузить(СтруктураДанных.Доходы);
СведенияОВычетах.Загрузить(СтруктураДанных.Вычеты);
ТаблицаИтогов = СтруктураДанных.Итоги;
Для каждого СтрокаТЧ Из СотрудникиОрганизации Цикл
ЗаполнитьЗначенияСвойств(СтрокаТЧ, ТаблицаИтогов.Найти(СтрокаТЧ.НомерСправки, "НомерСправки"));
КонецЦикла;

КонецПроцедуры // Автозаполнение()
 
  Способ обхода: Сначала создать и автоматически заполнить все документы по нужным кодам ОКАТО, а затем их проводить.  
  Исправлено в релизе: 2.5.32  
 
  Код ошибки: 10073257  
  Дата публикации: 08.02.2011 16:01:35  
  Дата последнего изменения: 08.02.2011 0:00:00  
  Описание: При переносе данных из ЗУП в ЗБУ, если на этапе выгрузки данных возникают ошибки, они не отображаются пользователю.  
  Планируется исправить в релизе: 2.5.32  
 
  Код ошибки: 10073239  
  Дата публикации: 08.02.2011 16:01:11  
  Дата последнего изменения: 08.02.2011 0:00:00  
  Описание: При переносе квази-предопределенных элементов из ЗУП в ЗБУ возникает сообщение об ошибке.  
  Планируется исправить в релизе: 2.5.32  
 
  Код ошибки: 10073265  
  Дата публикации: 04.02.2011 17:36:08  
  Дата последнего изменения: 04.02.2011 0:00:00  
  Описание: В формуле вида расчета запрещается запрашивать показатель, даже если он запрашивается в виде расчета другого вида учета.  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10073118  
  Дата публикации: 04.02.2011 17:35:22  
  Дата последнего изменения: 04.02.2011 0:00:00  
  Описание: При расчете пособий по уходу за ребенком в 2011 году по отпускам, начавшимся в 2010, не применялось ограничение среднего заработка максимальным размером.  
  Способ исправления: Заменить функцию РассчитатьРесурсыПоАлгоритму() о.м. ПроведениеРасчетов следующим фрагментом:

Функция РассчитатьРесурсыПоАлгоритму(ИмяАлгоритма = "", КомментироватьРасчет = Ложь, Знач КомментарийВидаРасчета = Неопределено, СтрокаДвижений = Неопределено, ИсходныеДанные = Неопределено) Экспорт

Если ИмяАлгоритма = "ПоСреднемуЗаработкуФСС2011" Тогда

ДатаЗакона = ПроведениеРасчетов.ДатаНачалаРеформыСоцСтрахования();

Если СтрокаДвижений.ПериодРегистрации < ДатаЗакона Или СтрокаДвижений.ПериодДействияНачало < ДатаЗакона Тогда
Возврат Ложь
КонецЕсли;

ОплачиваемоеВремя = ИсходныеДанные.КалендарныхДней;

Если Не ЗначениеЗаполнено(ОплачиваемоеВремя) Тогда
ОбщегоНазначенияЗК.ОшибкаРасчета(ИсходныеДанные.СотрудникНаименование + "; " + ИсходныеДанные.ВидРасчетаНаименование + ": Нет оплачиваемых дней в заданном периоде");
СтрокаДвижений.Результат = 0;
СтрокаДвижений.ДополнительныйРезультат = 0;
Возврат Истина;
КонецЕсли;

ЭтоПереходныйПериод = СтрокаДвижений.ДатаНачалаСобытия < ДатаЗакона И СтрокаДвижений.ПериодДействияНачало >= ДатаЗакона;

Если ЭтоПереходныйПериод Тогда
РезультатПоПравилам2010Года = 0;
ДополнительныйРезультатПоПравилам2010Года = 0;
ЗаработокЗаЕдиницуВремени2010Года = 0;
Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Пособие по страховому случаю, произошедшему до " + ДатаЗакона + ", за период после " + ДатаЗакона + " выплачивается по правилам 2011 года в том случае, если полученный результат превышает пособие, положенное по правилам 2010 года.", КомментарийВидаРасчета);
КомментарийСтарогоПорядка = ОбщегоНазначенияЗК.КомментарийРасчета("Расчет по правилам 2010 года", КомментарийВидаРасчета);
КонецЕсли;
Если РассчитатьРесурсыПоАлгоритму("ПоСреднемуЗаработкуФСС213ФЗ", КомментироватьРасчет, КомментарийСтарогоПорядка, СтрокаДвижений, ИсходныеДанные) Тогда
РезультатПоПравилам2010Года = СтрокаДвижений.Результат;
ДополнительныйРезультатПоПравилам2010Года = СтрокаДвижений.ДополнительныйРезультат;
ЗаработокЗаЕдиницуВремени2010Года = СтрокаДвижений.ДополнительныеДанные;
СтрокаДвижений.Результат = 0;
СтрокаДвижений.ДополнительныйРезультат = 0;
КонецЕсли;
Если КомментироватьРасчет Тогда
КомментарийВидаРасчета = ОбщегоНазначенияЗК.КомментарийРасчета("Расчет по правилам 2011 года", КомментарийВидаРасчета);
КонецЕсли;
КонецЕсли;

ПроцентОплаты = СтрокаДвижений.Показатель1;
ПроцентОплатыБезЛьгот = СтрокаДвижений.Показатель2;

Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Процент оплаты от среднего заработка: " + ПроцентОплаты, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Оплачивается " + ОплачиваемоеВремя + " " + ОбщегоНазначения.ФормаМножественногоЧисла("день", "дня", "дней", ОплачиваемоеВремя), КомментарийВидаРасчета);
КонецЕсли;

// Рассчитаем заработок за день
// для строк сторно заработок возьмем из реквизита "ДополнительныеДанные" записи начислений
Если НЕ СтрокаДвижений.Сторно Тогда

Если ИсходныеДанные.ВариантАлгоритмаРасчета = Перечисления.ВариантыАлгоритмовРасчета.БольничныйБезОграничений Тогда
ЗаработокЗаЕдиницуВремени = Окр(ИсходныеДанные.СреднийЗаработокПособий2011БезОграничений / 730,2);
Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Пособие начисляется без ограничений", КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Среднедневной заработок: " + ЗаработокЗаЕдиницуВремени, КомментарийВидаРасчета);
КонецЕсли;
Иначе
ЗаработокЗаЕдиницуВремени = Окр(ИсходныеДанные.СреднийЗаработокПособий2011 / 730,2);
Если КомментироватьРасчет Тогда
Если ЗначениеЗаполнено(ИсходныеДанные.СреднийЗаработокПособий2011) И ИсходныеДанные.ВариантАлгоритмаРасчета <> Перечисления.ВариантыАлгоритмовРасчета.БольничныйСОграничениемВРазмереММОТ Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Заработок за каждый из расчетных лет ограничен предельной величиной облагаемой базы по страховым взносам в ФСС", КомментарийВидаРасчета);
КонецЕсли;
ОбщегоНазначенияЗК.КомментарийРасчета("Среднедневной заработок: " + ЗаработокЗаЕдиницуВремени, КомментарийВидаРасчета);
КонецЕсли;
КонецЕсли;

// сохраним заработок за единицу времени для возможных расчетов сторно записей в будущем
СтрокаДвижений.ДополнительныеДанные = ЗаработокЗаЕдиницуВремени;

Иначе
ЗаработокЗаЕдиницуВремени = СтрокаДвижений.ДополнительныеДанные;
Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Среднедневной заработок: " + ЗаработокЗаЕдиницуВремени, КомментарийВидаРасчета);
КонецЕсли;
КонецЕсли;

НормаВремени = День(КонецМесяца(ИсходныеДанные.ПериодДействияНачало));

РазмерОграниченияСнизу = ИсходныеДанные.РазмерММОТ * Мин(ИсходныеДанные.ДоляММОТ, 1);
Если ЗаработокЗаЕдиницуВремени < РазмерОграниченияСнизу * 24 / 730 Тогда
ЗаработокЗаЕдиницуВремени = Окр(РазмерОграниченияСнизу * 24 / 730 * Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1), 2);
Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Минимальный размер среднеднего заработка рассчитан из МРОТ в сумме " + ИсходныеДанные.РазмерММОТ + ?(Мин(ИсходныеДанные.ДоляММОТ, 1) = 1,"", " с учетом коэффициента неполного рабочего времени в размере " + Мин(ИсходныеДанные.ДоляММОТ, 1)), КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("В качестве среднеднего заработка за месяц принята сумма: " + РазмерОграниченияСнизу + "; размер дневного пособия" + ?(ИсходныеДанные.РайонныйКоэффициентРФОрганизации <= 1, "", " с учетом РК " + ИсходныеДанные.РайонныйКоэффициентРФОрганизации) + " составил: " + Окр(ЗаработокЗаЕдиницуВремени * ПроцентОплаты / 100,2), КомментарийВидаРасчета);
КонецЕсли;
КонецЕсли;

Если ИсходныеДанные.ВариантАлгоритмаРасчета = Перечисления.ВариантыАлгоритмовРасчета.БольничныйСОграничениемВРазмереММОТ Тогда
РазмерОграниченияСверху = ИсходныеДанные.РазмерММОТ * Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1);
Если ОплачиваемоеВремя < НормаВремени Тогда
ОграничениеПособия = Окр(РазмерОграниченияСверху / НормаВремени,2);
Результат = ОплачиваемоеВремя * Мин(Окр(ЗаработокЗаЕдиницуВремени * ПроцентОплаты / 100,2), ОграничениеПособия);
Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Максимальный размер пособия рассчитан из МРОТ в сумме " + ИсходныеДанные.РазмерММОТ + ?(Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1) = 1,"", " с учетом районного коэффициента в размере " + Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1)), КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Максимальный размер за оплачиваемый период составляет: " + ОплачиваемоеВремя * ОграничениеПособия, КомментарийВидаРасчета);
КонецЕсли;
Иначе
ОграничениеПособия = Окр(РазмерОграниченияСверху,2);
Результат = Мин(ОплачиваемоеВремя * Окр(ЗаработокЗаЕдиницуВремени * ПроцентОплаты / 100,2), ОграничениеПособия);
Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Максимальный размер пособия рассчитан из МРОТ в сумме " + ИсходныеДанные.РазмерММОТ + ?(Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1) = 1,"", " с учетом районного коэффициента в размере " + Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1)), КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Максимальный размер за месяц составляет: " + ОграничениеПособия, КомментарийВидаРасчета);
КонецЕсли;
КонецЕсли;
Иначе
РазмерОграниченияСверху = 0;
Результат = ОплачиваемоеВремя * Окр(ЗаработокЗаЕдиницуВремени * ПроцентОплаты / 100,2);
КонецЕсли;

СтрокаДвижений.ОплаченоДнейЧасов = ОплачиваемоеВремя * ?(СтрокаДвижений.Сторно,-1,1);
СтрокаДвижений.Результат = Результат;

// часть пособия, финансируемая федеральным бюджетом
Если ЗначениеЗаполнено(ПроцентОплатыБезЛьгот) И ЗначениеЗаполнено(ИсходныеДанные.ВидПособияСоциальногоСтрахования) Тогда

Если ИсходныеДанные.ВариантАлгоритмаРасчета = Перечисления.ВариантыАлгоритмовРасчета.БольничныйСОбщимОграничениемИВРазмереММОТС2010года Тогда
РазмерОграниченияСверху = ИсходныеДанные.РазмерММОТ * Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1)
КонецЕсли;

Результат = 0;
Если РазмерОграниченияСверху = 0 Тогда
Результат = ОплачиваемоеВремя * Окр(ЗаработокЗаЕдиницуВремени * ПроцентОплатыБезЛьгот / 100,2);
ИначеЕсли ОплачиваемоеВремя < НормаВремени Тогда
ОграничениеПособия = Окр(РазмерОграниченияСверху / НормаВремени,2);
Результат = ОплачиваемоеВремя * Мин(Окр(ЗаработокЗаЕдиницуВремени * ПроцентОплатыБезЛьгот / 100,2), ОграничениеПособия);
Иначе
ОграничениеПособия = Окр(РазмерОграниченияСверху,2);
Результат = Мин(ОплачиваемоеВремя * Окр(ЗаработокЗаЕдиницуВремени * ПроцентОплатыБезЛьгот / 100,2), ОграничениеПособия);
КонецЕсли;

Если Результат < СтрокаДвижений.Результат Тогда
СтрокаДвижений.ДополнительныйРезультат = (СтрокаДвижений.Результат - Результат) * ?(СтрокаДвижений.Сторно,-1,1);
Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Часть пособия, финансируемая Федеральным бюджетом, составляет: " + (СтрокаДвижений.Результат - Результат), КомментарийВидаРасчета);
КонецЕсли;
Иначе
СтрокаДвижений.ДополнительныйРезультат = 0
КонецЕсли;
КонецЕсли;

Если ЭтоПереходныйПериод Тогда
Если КомментироватьРасчет Тогда
КомментарийВидаРасчета = КомментарийВидаРасчета.Родитель;
КонецЕсли;
Если СтрокаДвижений.Сторно Или СтрокаДвижений.Результат < РезультатПоПравилам2010Года Тогда
Если Не СтрокаДвижений.Сторно Тогда
СтрокаДвижений.ДополнительныеДанные = ЗаработокЗаЕдиницуВремени2010Года;
Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Пособие начислено по правилам 2010 года", КомментарийВидаРасчета);
КонецЕсли;
КонецЕсли;
СтрокаДвижений.Результат = РезультатПоПравилам2010Года;
СтрокаДвижений.ДополнительныйРезультат = ДополнительныйРезультатПоПравилам2010Года;
ИначеЕсли Не СтрокаДвижений.Сторно И КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Пособие начислено по правилам 2011 года", КомментарийВидаРасчета);
КонецЕсли;
КонецЕсли;

Возврат Истина

КонецЕсли;

Если ИмяАлгоритма = "ПоСреднемуЗаработкуФСС213ФЗ" Тогда

ДатаЗакона213ФЗ = ПроведениеРасчетов.ДатаЗаменыЕСНСтраховымиВзносами();

Если СтрокаДвижений.ПериодРегистрации < ДатаЗакона213ФЗ Или СтрокаДвижений.ПериодДействияНачало < ДатаЗакона213ФЗ Тогда
Возврат Ложь
КонецЕсли;

Если НЕ СтрокаДвижений.Сторно Тогда
Если Не ЗначениеЗаполнено(ИсходныеДанные.СреднийЗаработокПособий2010) Тогда
ОбщегоНазначенияЗК.ОшибкаРасчета(ИсходныеДанные.СотрудникНаименование + "; " + ИсходныеДанные.ВидРасчетаНаименование + ": Нет данных для расчета среднего заработка");
СтрокаДвижений.Результат = 0;
СтрокаДвижений.ДополнительныйРезультат = 0;
Возврат Истина;
ИначеЕсли Не ЗначениеЗаполнено(ИсходныеДанные.ОтработаноДнейПособий2010) Тогда
ОбщегоНазначенияЗК.ОшибкаРасчета(ИсходныеДанные.СотрудникНаименование + "; " + ИсходныеДанные.ВидРасчетаНаименование + ": Нет оплачиваемых дней в заданном периоде");
СтрокаДвижений.Результат = 0;
СтрокаДвижений.ДополнительныйРезультат = 0;
Возврат Истина;
КонецЕсли;
КонецЕсли;

ПроцентОплаты = СтрокаДвижений.Показатель1;
ПроцентОплатыБезЛьгот = СтрокаДвижений.Показатель2;

ОплачиваемоеВремя = ?(ИсходныеДанные.КалендарныхДней = Null, 0,ИсходныеДанные.КалендарныхДней);

// Рассчитаем заработок за день
// для строк сторно заработок возьмем из реквизита "ДополнительныеДанные" записи начислений
Если НЕ СтрокаДвижений.Сторно Тогда

ЗаработокЗаЕдиницуВремени = Окр(ИсходныеДанные.СреднийЗаработокПособий2010 / ИсходныеДанные.ОтработаноДнейПособий2010,2);

// сохраним заработок за единицу времени для возможных расчетов сторно записей в будущем
СтрокаДвижений.ДополнительныеДанные = ЗаработокЗаЕдиницуВремени;

Иначе
ЗаработокЗаЕдиницуВремени = СтрокаДвижений.ДополнительныеДанные;
КонецЕсли;

НормаВремени = День(КонецМесяца(ИсходныеДанные.ПериодДействияНачало));

Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Процент оплаты: " + ПроцентОплаты, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Оплачивается " + ОплачиваемоеВремя + " " + ОбщегоНазначения.ФормаМножественногоЧисла("день", "дня", "дней", ОплачиваемоеВремя), КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Среднедневной заработок: " + ЗаработокЗаЕдиницуВремени, КомментарийВидаРасчета);
КонецЕсли;

Если ИсходныеДанные.ВариантАлгоритмаРасчета = Перечисления.ВариантыАлгоритмовРасчета.БольничныйСОбщимОграничениемС2010года Тогда
РазмерОграничения = ИсходныеДанные.РазмерОбщегоОграничения2010 / 365
ИначеЕсли ИсходныеДанные.ВариантАлгоритмаРасчета = Перечисления.ВариантыАлгоритмовРасчета.БольничныйСОбщимОграничениемИВРазмереММОТС2010года Тогда
РазмерОграничения = ИсходныеДанные.РазмерОбщегоОграничения2010 / 365
ИначеЕсли ИсходныеДанные.ВариантАлгоритмаРасчета = Перечисления.ВариантыАлгоритмовРасчета.БольничныйСОбщимОграничением Тогда
РазмерОграничения = ИсходныеДанные.РазмерОбщегоОграничения * Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1)
ИначеЕсли ИсходныеДанные.ВариантАлгоритмаРасчета = Перечисления.ВариантыАлгоритмовРасчета.БольничныйСОграничениемПоБеременности Тогда
РазмерОграничения = ИсходныеДанные.РазмерПоБеременности * Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1)
ИначеЕсли ИсходныеДанные.ВариантАлгоритмаРасчета = Перечисления.ВариантыАлгоритмовРасчета.БольничныйСОграничениемВРазмереММОТ Тогда
РазмерОграничения = ИсходныеДанные.РазмерММОТ * Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1)
ИначеЕсли ИсходныеДанные.ВариантАлгоритмаРасчета = Перечисления.ВариантыАлгоритмовРасчета.БольничныйСОграничениемВРазмереММОТбезРК Тогда
РазмерОграничения = ИсходныеДанные.РазмерММОТ
Иначе
РазмерОграничения = 0;
КонецЕсли;

Если РазмерОграничения = 0 Тогда
Результат = ОплачиваемоеВремя * Окр(ЗаработокЗаЕдиницуВремени * ПроцентОплаты / 100,2);
Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Пособие начисляется без ограничений", КомментарийВидаРасчета);
КонецЕсли;
ИначеЕсли ИсходныеДанные.ВариантАлгоритмаРасчета = Перечисления.ВариантыАлгоритмовРасчета.БольничныйСОбщимОграничениемС2010года
Или ИсходныеДанные.ВариантАлгоритмаРасчета = Перечисления.ВариантыАлгоритмовРасчета.БольничныйСОбщимОграничениемИВРазмереММОТС2010года Тогда
ОграничениеПособия = Окр(РазмерОграничения,2);
Результат = ОплачиваемоеВремя * Окр(Мин(ЗаработокЗаЕдиницуВремени, ОграничениеПособия) * ПроцентОплаты / 100,2);
Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Ограничение среднего заработка: " + ОграничениеПособия, КомментарийВидаРасчета);
КонецЕсли;
ИначеЕсли ОплачиваемоеВремя = 0 Тогда
ОбщегоНазначенияЗК.ОшибкаРасчета(ИсходныеДанные.СотрудникНаименование + "; " + ИсходныеДанные.ВидРасчетаНаименование + ": Нет оплачиваемых дней в заданном периоде");
Иначе
Если ОплачиваемоеВремя < НормаВремени Тогда
ОграничениеПособия = Окр(РазмерОграничения / НормаВремени,2);
Результат = ОплачиваемоеВремя * Мин(Окр(ЗаработокЗаЕдиницуВремени * ПроцентОплаты / 100,2), ОграничениеПособия);
Иначе
ОграничениеПособия = Окр(РазмерОграничения,2);
Результат = Мин(ОплачиваемоеВремя * Окр(ЗаработокЗаЕдиницуВремени * ПроцентОплаты / 100,2), ОграничениеПособия);
КонецЕсли;
Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Ограничение пособия: " + ОграничениеПособия, КомментарийВидаРасчета);
КонецЕсли;
КонецЕсли;

СтрокаДвижений.ОплаченоДнейЧасов = ОплачиваемоеВремя * ?(СтрокаДвижений.Сторно,-1,1);
СтрокаДвижений.Результат = Результат;

Если ИсходныеДанные.ВариантАлгоритмаРасчета = Перечисления.ВариантыАлгоритмовРасчета.БольничныйСОбщимОграничениемИВРазмереММОТС2010года Тогда
РазмерОграничения = ИсходныеДанные.РазмерММОТ * Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1)
КонецЕсли;

Если ЗначениеЗаполнено(ПроцентОплатыБезЛьгот) И ЗначениеЗаполнено(ИсходныеДанные.ВидПособияСоциальногоСтрахования) Тогда
Результат = 0;
Если РазмерОграничения = 0 Тогда
Результат = ОплачиваемоеВремя * Окр(ЗаработокЗаЕдиницуВремени * ПроцентОплатыБезЛьгот / 100,2);
ИначеЕсли ИсходныеДанные.ВариантАлгоритмаРасчета = Перечисления.ВариантыАлгоритмовРасчета.БольничныйСОбщимОграничениемС2010года Тогда
ОграничениеПособия = Окр(РазмерОграничения,2);
Результат = ОплачиваемоеВремя * Окр(Мин(ЗаработокЗаЕдиницуВремени, ОграничениеПособия) * ПроцентОплатыБезЛьгот / 100,2);
ИначеЕсли ОплачиваемоеВремя <> 0 Тогда
Если ОплачиваемоеВремя < НормаВремени Тогда
ОграничениеПособия = Окр(РазмерОграничения / НормаВремени,2);
Результат = ОплачиваемоеВремя * Мин(Окр(ЗаработокЗаЕдиницуВремени * ПроцентОплатыБезЛьгот / 100,2), ОграничениеПособия);
Иначе
ОграничениеПособия = Окр(РазмерОграничения,2);
Результат = Мин(ОплачиваемоеВремя * Окр(ЗаработокЗаЕдиницуВремени * ПроцентОплатыБезЛьгот / 100,2), ОграничениеПособия);
КонецЕсли;
КонецЕсли;

Если Результат < СтрокаДвижений.Результат Тогда
СтрокаДвижений.ДополнительныйРезультат = (СтрокаДвижений.Результат - Результат) * ?(СтрокаДвижений.Сторно,-1,1);
Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Часть пособия, финансируемая Федеральным бюджетом, составляет: " + (СтрокаДвижений.Результат - Результат), КомментарийВидаРасчета);
КонецЕсли;
Иначе
СтрокаДвижений.ДополнительныйРезультат = 0
КонецЕсли;
КонецЕсли;

Возврат Истина

КонецЕсли;

Если ИмяАлгоритма = "ПособиеПоУходуЗаРебенком213ФЗ" Тогда

ДатаЗакона213ФЗ = ПроведениеРасчетов.ДатаЗаменыЕСНСтраховымиВзносами();
ДатаЗакона343ФЗ = ПроведениеРасчетов.ДатаНачалаРеформыСоцСтрахования();

КалендарныхДнейВМесяце = День(КонецМесяца(ИсходныеДанные.ПериодДействияНачало));

Если СтрокаДвижений.Показатель2 = 0 Тогда
ОбщегоНазначенияЗК.ОшибкаРасчета(ИсходныеДанные.СотрудникНаименование + "; " + ИсходныеДанные.ВидРасчетаНаименование + ": Не указано количество детей, за которыми производится уход ");
СтрокаДвижений.Результат = 0;
Возврат Истина;
КонецЕсли;

ОплачиваемыеДни = ИсходныеДанные.КалендарныхДней; // календарных дней за фактический период действия
КоличествоДетейВсего = СтрокаДвижений.Показатель2;
КоличествоПервыхДетей = СтрокаДвижений.Показатель3;

Если ИсходныеДанные.ПериодДействияНачало < ДатаЗакона213ФЗ Тогда

// часть 4 ст. 15 Федерального закона от 19 мая 1995 года № 81-ФЗ «О государственных пособиях гражданам, имеющим детей»:
// "В случае ухода за двумя и более детьми до достижения ими возраста полутора лет размер пособия, исчисленный в
// соответствии с частями первой и второй настоящей статьи, суммируется. При этом суммированный размер пособия,
// исчисленный исходя из среднего заработка (дохода, денежного довольствия), не может превышать 100 процентов
// размера указанного заработка (дохода, денежного довольствия)."
ПроцентОплаты = Мин(40 * КоличествоДетейВсего,100);

// части 3 и 4 ст. 15 Федерального закона от 19 мая 1995 года № 81-ФЗ «О государственных пособиях гражданам, имеющим детей»:
// "В районах и местностях, в которых в установленном порядке применяются районные коэффициенты к заработной плате,
// минимальный и максимальный размеры указанного пособия определяются с учетом этих коэффициентов."

// "...суммированный размер пособия ... не может быть менее суммированного минимального размера пособия"

ОграничениеПособияСнизу = (ИсходныеДанные.МинимумПособияПоУходуЗаПервымРебенкомДоПолутораЛет * КоличествоПервыхДетей
+ ИсходныеДанные.МинимумПособияПоУходуЗаПоследующимРебенкомДоПолутораЛет * (КоличествоДетейВсего - КоличествоПервыхДетей)) * Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1);
ОграничениеПособияСверху = ИсходныеДанные.МаксимумПособияПоУходуЗаРебенкомДоПолутораЛет * КоличествоДетейВсего * Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1);

// определяем среднемесячный заработок путем умножения среднего дневного заработка на среднемесячное число календарных дней
// согласно п.5 Разъяснения о порядке назначения и выплаты ежемесячного пособия по уходу за ребенком, утв. приказом
// Минздравсоцразвития РФ N 270, ФСС РФ N 106 от 13.04.2007

РазмерПособия = Окр(СтрокаДвижений.Показатель1 * ПроцентОплаты / 100 * ?(ДеньГода(КонецГода(ИсходныеДанные.ПериодДействияНачало)) = 365,30.4,30.5), 2);

// пособие за месяц с учетом ограничений
ОрганиченныйРазмер = Макс(Мин(РазмерПособия, ОграничениеПособияСверху), ОграничениеПособияСнизу);

Если ОплачиваемыеДни < КалендарныхДнейВМесяце Тогда
Результат = Окр(ОрганиченныйРазмер / КалендарныхДнейВМесяце * ОплачиваемыеДни, 2);
Иначе
Результат = ОрганиченныйРазмер;
КонецЕсли;

Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Размер пособия в процентах от среднего заработка: " + ПроцентОплаты, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Размер пособия за месяц исходя из среднего заработка: " + РазмерПособия, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Учтенный районный коэффициент: " + Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1), КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Минимальный размер пособия: " + ОграничениеПособияСнизу, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Максимальный размер пособия: " + ОграничениеПособияСверху, КомментарийВидаРасчета);
Если ОрганиченныйРазмер = РазмерПособия Тогда
ТекстСообщения = "Расчет производится исходя из среднего заработка";
ИначеЕсли ОрганиченныйРазмер = ОграничениеПособияСверху Тогда
ТекстСообщения = "Расчет производится исходя из максимального размера пособия";
Иначе
ТекстСообщения = "Расчет производится исходя из минимального размера пособия";
КонецЕсли;
ОбщегоНазначенияЗК.КомментарийРасчета(ТекстСообщения, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Календарных дней в месяце: " + КалендарныхДнейВМесяце, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Оплачиваемые дни отпуска: " + ОплачиваемыеДни, КомментарийВидаРасчета);
КонецЕсли;

ИначеЕсли ИсходныеДанные.ПериодДействияНачало < ДатаЗакона343ФЗ Или СтрокаДвижений.ДатаНачалаСобытия < ДатаЗакона343ФЗ Тогда

// для расчетов используется максимальный среднедневной заработок (из исчисленных по "старым" и по "новым" правилам)
СреднедневнойЗаработок = Макс(СтрокаДвижений.Показатель1, СтрокаДвижений.Показатель6);

// льготы предусмотрены статьей 18 Закона РФ от 15.05.1991 № 1244-1 «О социальной
// защите граждан, подвергшихся воздействию радиации вследствие катастрофы на
// Чернобыльской АЭС», дополнительные суммы пособия при этом финансируются
// федеральным бюджетом
КоэффициентЛьготы = Макс(СтрокаДвижений.Показатель4, 1); // если льгота не применяется, коэффициент будет равен 1
КоэффициентФедеральногоБюджета = Мин(СтрокаДвижений.Показатель5, 1);

// часть 4 ст. 15 Федерального закона от 19 мая 1995 года № 81-ФЗ «О государственных пособиях гражданам, имеющим детей»:
// "В случае ухода за двумя и более детьми до достижения ими возраста полутора лет размер пособия, исчисленный в
// соответствии с частями первой и второй настоящей статьи, суммируется. При этом суммированный размер пособия,
// исчисленный исходя из среднего заработка (дохода, денежного довольствия), не может превышать 100 процентов
// размера указанного заработка (дохода, денежного довольствия)."
ПроцентОплаты = Мин(40 * КоличествоДетейВсего * КоэффициентЛьготы,100);

// части 3 и 4 ст. 15 Федерального закона от 19 мая 1995 года № 81-ФЗ «О государственных пособиях гражданам, имеющим детей»:
// "В районах и местностях, в которых в установленном порядке применяются районные коэффициенты к заработной плате,
// минимальный размер указанного пособия определяются с учетом этих коэффициентов."

// "...суммированный размер пособия ... не может быть менее суммированного минимального размера пособия"

ОграничениеПособияСнизу = (ИсходныеДанные.МинимумПособияПоУходуЗаПервымРебенкомДоПолутораЛет * КоличествоПервыхДетей
+ ИсходныеДанные.МинимумПособияПоУходуЗаПоследующимРебенкомДоПолутораЛет * (КоличествоДетейВсего - КоличествоПервыхДетей)) * Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1) * КоэффициентЛьготы;

// В соответствии с частью 5.1 статьи 14 Федеральный закон от 29 декабря 2006 года № 255-ФЗ «Об обязательном социальном
// страховании на случай временной нетрудоспособности и в связи с материнством»
// определяем среднемесячный заработок путем умножения среднего дневного заработка на 30.4

СреднийЗаработок = Окр(СреднедневнойЗаработок * 30.4, 2);

// Средний заработок, из которого исчисляется ежемесячное пособие по уходу за ребенком, не может превышать
// средний заработок, определяемый путем деления предельной величины базы для начисления страховых взносов
// в Фонд социального страхования Российской Федерации, установленной Федеральным законом "О страховых взносах
// в Пенсионный фонд Российской Федерации, Фонд социального страхования Российской Федерации, Федеральный фонд
// обязательного медицинского страхования и территориальные фонды обязательного медицинского страхования" на день
// наступления страхового случая, на 12.

РазмерОграничения = Окр(ИсходныеДанные.РазмерОбщегоОграничения2010 / 12, 2);
РазмерПособия = Окр(Мин(СреднийЗаработок,РазмерОграничения) * ПроцентОплаты / 100, 2);

// пособие за месяц с учетом ограничений
ОрганиченныйРазмер = Макс(РазмерПособия, ОграничениеПособияСнизу);

Если ОплачиваемыеДни < КалендарныхДнейВМесяце Тогда
Результат = Окр(ОрганиченныйРазмер / КалендарныхДнейВМесяце * ОплачиваемыеДни, 2);
Иначе
Результат = ОрганиченныйРазмер;
КонецЕсли;

Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Максимальный размер среднего заработка: " + РазмерОграничения, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Учтенный районный коэффициент: " + Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1), КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Средний заработок, из которого исчисляется пособие: " + СреднийЗаработок, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Размер пособия в процентах от среднего заработка: " + ПроцентОплаты, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Размер пособия за месяц исходя из среднего заработка: " + РазмерПособия, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Минимальный размер пособия: " + ОграничениеПособияСнизу, КомментарийВидаРасчета);
Если ОрганиченныйРазмер = РазмерПособия Тогда
ТекстСообщения = "Расчет производится исходя из среднего заработка";
Иначе
ТекстСообщения = "Расчет производится исходя из минимального размера пособия";
КонецЕсли;
ОбщегоНазначенияЗК.КомментарийРасчета(ТекстСообщения, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Календарных дней в месяце: " + КалендарныхДнейВМесяце, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Оплачиваемые дни отпуска: " + ОплачиваемыеДни, КомментарийВидаРасчета);
КонецЕсли;

Если КоэффициентФедеральногоБюджета = 1 Тогда // пособие целиком за счет федерального бюджета
СтрокаДвижений.ДополнительныйРезультат = Результат * ?(СтрокаДвижений.Сторно,-1,1);
ИначеЕсли КоэффициентФедеральногоБюджета = 0.5 Тогда // пособие за счет федерального бюджета выплачивается частично

ОрганиченныйРазмер = Макс(Окр(Мин(СреднийЗаработок,РазмерОграничения) * Мин(40 * КоличествоДетейВсего,100) / 100, 2), ОграничениеПособияСнизу);
Если ОплачиваемыеДни < КалендарныхДнейВМесяце Тогда
ДопРезультат = Окр(ОрганиченныйРазмер / КалендарныхДнейВМесяце * ОплачиваемыеДни, 2);
Иначе
ДопРезультат = ОрганиченныйРазмер;
КонецЕсли;

СтрокаДвижений.ДополнительныйРезультат = Макс(Результат - ДопРезультат, 0) * ?(СтрокаДвижений.Сторно,-1,1);

КонецЕсли;

Иначе

// для расчетов используется максимальный среднедневной заработок (из исчисленных по "старым" и по "новым" правилам)
СреднедневнойЗаработок = Макс(СтрокаДвижений.Показатель1, СтрокаДвижений.Показатель6);

// льготы предусмотрены статьей 18 Закона РФ от 15.05.1991 № 1244-1 «О социальной
// защите граждан, подвергшихся воздействию радиации вследствие катастрофы на
// Чернобыльской АЭС», дополнительные суммы пособия при этом финансируются
// федеральным бюджетом
КоэффициентЛьготы = Макс(СтрокаДвижений.Показатель4, 1); // если льгота не применяется, коэффициент будет равен 1
КоэффициентФедеральногоБюджета = Мин(СтрокаДвижений.Показатель5, 1);

// часть 4 ст. 15 Федерального закона от 19 мая 1995 года № 81-ФЗ «О государственных пособиях гражданам, имеющим детей»:
// "В случае ухода за двумя и более детьми до достижения ими возраста полутора лет размер пособия, исчисленный в
// соответствии с частями первой и второй настоящей статьи, суммируется. При этом суммированный размер пособия,
// исчисленный исходя из среднего заработка (дохода, денежного довольствия), не может превышать 100 процентов
// размера указанного заработка (дохода, денежного довольствия)."
ПроцентОплаты = Мин(40 * КоличествоДетейВсего * КоэффициентЛьготы,100);

// части 3 и 4 ст. 15 Федерального закона от 19 мая 1995 года № 81-ФЗ «О государственных пособиях гражданам, имеющим детей»:
// "В районах и местностях, в которых в установленном порядке применяются районные коэффициенты к заработной плате,
// минимальный размер указанного пособия определяются с учетом этих коэффициентов."

// "...суммированный размер пособия ... не может быть менее суммированного минимального размера пособия"

ОграничениеПособияСнизу = (ИсходныеДанные.МинимумПособияПоУходуЗаПервымРебенкомДоПолутораЛет * КоличествоПервыхДетей
+ ИсходныеДанные.МинимумПособияПоУходуЗаПоследующимРебенкомДоПолутораЛет * (КоличествоДетейВсего - КоличествоПервыхДетей)) * Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1) * КоэффициентЛьготы;

// В соответствии с частью 5.1 статьи 14 Федеральный закон от 29 декабря 2006 года № 255-ФЗ «Об обязательном социальном
// страховании на случай временной нетрудоспособности и в связи с материнством»
// определяем среднемесячный заработок путем умножения среднего дневного заработка на 30.4

СреднийЗаработок = Окр(СреднедневнойЗаработок * 30.4, 2);

РазмерПособия = Окр(СреднийЗаработок * ПроцентОплаты / 100, 2);

// пособие за месяц с учетом ограничений
ОрганиченныйРазмер = Макс(РазмерПособия, ОграничениеПособияСнизу);

Если ОплачиваемыеДни < КалендарныхДнейВМесяце Тогда
Результат = Окр(ОрганиченныйРазмер / КалендарныхДнейВМесяце * ОплачиваемыеДни, 2);
Иначе
Результат = ОрганиченныйРазмер;
КонецЕсли;

Если КомментироватьРасчет Тогда
Если Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1) > 1 Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Учтенный районный коэффициент: " + Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1), КомментарийВидаРасчета);
КонецЕсли;
ОбщегоНазначенияЗК.КомментарийРасчета("Средний заработок, из которого исчисляется пособие: " + СреднийЗаработок, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Размер пособия в процентах от среднего заработка: " + ПроцентОплаты, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Размер пособия за месяц исходя из среднего заработка: " + РазмерПособия, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Минимальный размер пособия: " + ОграничениеПособияСнизу, КомментарийВидаРасчета);
Если ОрганиченныйРазмер = РазмерПособия Тогда
ТекстСообщения = "Расчет производится исходя из среднего заработка";
Иначе
ТекстСообщения = "Расчет производится исходя из минимального размера пособия";
КонецЕсли;
ОбщегоНазначенияЗК.КомментарийРасчета(ТекстСообщения, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Календарных дней в месяце: " + КалендарныхДнейВМесяце, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Оплачиваемые дни отпуска: " + ОплачиваемыеДни, КомментарийВидаРасчета);
КонецЕсли;

Если КоэффициентФедеральногоБюджета = 1 Тогда // пособие целиком за счет федерального бюджета
СтрокаДвижений.ДополнительныйРезультат = Результат * ?(СтрокаДвижений.Сторно,-1,1);
ИначеЕсли КоэффициентФедеральногоБюджета = 0.5 Тогда // пособие за счет федерального бюджета выплачивается частично

ОрганиченныйРазмер = Макс(Окр(СреднийЗаработок * Мин(40 * КоличествоДетейВсего,100) / 100, 2), ОграничениеПособияСнизу);
Если ОплачиваемыеДни < КалендарныхДнейВМесяце Тогда
ДопРезультат = Окр(ОрганиченныйРазмер / КалендарныхДнейВМесяце * ОплачиваемыеДни, 2);
Иначе
ДопРезультат = ОрганиченныйРазмер;
КонецЕсли;

СтрокаДвижений.ДополнительныйРезультат = Макс(Результат - ДопРезультат, 0) * ?(СтрокаДвижений.Сторно,-1,1);

КонецЕсли;

КонецЕсли;

СтрокаДвижений.Результат = Результат;
СтрокаДвижений.ОплаченоДнейЧасов = ОплачиваемыеДни * ?(СтрокаДвижений.Сторно,-1,1);

Возврат Истина

КонецЕсли;

Если ИмяАлгоритма = "ДоплатаДоСреднегоЗаработкаФСС2011" Тогда

ДатаЗакона = ПроведениеРасчетов.ДатаНачалаРеформыСоцСтрахования();

Если СтрокаДвижений.ПериодРегистрации < ДатаЗакона Или СтрокаДвижений.ПериодДействияНачало < ДатаЗакона Тогда
Возврат Ложь
КонецЕсли;

ОплачиваемоеВремя = ИсходныеДанные.КалендарныхДней;

ЭтоПереходныйПериод = СтрокаДвижений.ДатаНачалаСобытия < ДатаЗакона И СтрокаДвижений.ПериодДействияНачало >= ДатаЗакона;

РезультатПоПравилам2010Года = 0; ЗаработокЗаЕдиницуВремени2010Года = 0;
Если ЭтоПереходныйПериод Тогда

// Рассчитаем заработок за день
// для строк сторно заработок возьмем из реквизита "ДополнительныеДанные" записи начислений
Если СтрокаДвижений.Сторно Тогда
ЗаработокЗаЕдиницуВремени = СтрокаДвижений.ДополнительныеДанные;
ИначеЕсли Не ЗначениеЗаполнено(ИсходныеДанные.СреднийЗаработокПособий2010) Или Не ЗначениеЗаполнено(ИсходныеДанные.ОтработаноДнейПособий2010) Тогда
ЗаработокЗаЕдиницуВремени = 0;
Иначе
ЗаработокЗаЕдиницуВремени = Окр(ИсходныеДанные.СреднийЗаработокПособий2010 / ИсходныеДанные.ОтработаноДнейПособий2010,2);
КонецЕсли;

РезультатПоПравилам2010Года = ОплачиваемоеВремя * ЗаработокЗаЕдиницуВремени;
ЗаработокЗаЕдиницуВремени2010Года = ЗаработокЗаЕдиницуВремени;

Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Расчет по правилам 2010 года", КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Среднедневной заработок: " + ЗаработокЗаЕдиницуВремени, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Расчет по правилам 2011 года", КомментарийВидаРасчета);
КонецЕсли;
КонецЕсли;

// Рассчитаем заработок за день
// для строк сторно заработок возьмем из реквизита "ДополнительныеДанные" записи начислений
Если НЕ СтрокаДвижений.Сторно Тогда

ЗаработокЗаЕдиницуВремени = Окр(ИсходныеДанные.СреднийЗаработокПособий2011БезОграничений / 730,2);
Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Среднедневной заработок: " + ЗаработокЗаЕдиницуВремени, КомментарийВидаРасчета);
КонецЕсли;

// сохраним заработок за единицу времени для возможных расчетов сторно записей в будущем
СтрокаДвижений.ДополнительныеДанные = ЗаработокЗаЕдиницуВремени;

Иначе
ЗаработокЗаЕдиницуВремени = СтрокаДвижений.ДополнительныеДанные;
Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Среднедневной заработок: " + ЗаработокЗаЕдиницуВремени, КомментарийВидаРасчета);
КонецЕсли;
КонецЕсли;

РазмерОграниченияСнизу = ИсходныеДанные.РазмерММОТ * Мин(ИсходныеДанные.ДоляММОТ, 1);
Если ЗаработокЗаЕдиницуВремени < РазмерОграниченияСнизу * 24 / 730 Тогда
ЗаработокЗаЕдиницуВремени = Окр(РазмерОграниченияСнизу * 24 / 730 * Макс(ИсходныеДанные.РайонныйКоэффициентРФОрганизации, 1), 2);
Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Минимальный размер среднеднего заработка рассчитан из МРОТ в сумме " + ИсходныеДанные.РазмерММОТ + ?(Мин(ИсходныеДанные.ДоляММОТ, 1) = 1,"", " с учетом коэффициента неполного рабочего времени в размере " + Мин(ИсходныеДанные.ДоляММОТ, 1)), КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("В качестве среднеднего заработка за месяц принята сумма: " + РазмерОграниченияСнизу + "; размер среднедневного заработка" + ?(ИсходныеДанные.РайонныйКоэффициентРФОрганизации <= 1, "", " с учетом РК " + ИсходныеДанные.РайонныйКоэффициентРФОрганизации) + " составил: " + ЗаработокЗаЕдиницуВремени, КомментарийВидаРасчета);
КонецЕсли;
КонецЕсли;

Результат = ОплачиваемоеВремя * ЗаработокЗаЕдиницуВремени;

Если ЭтоПереходныйПериод Тогда
Если СтрокаДвижений.Сторно Или Результат < РезультатПоПравилам2010Года Тогда
Если Не СтрокаДвижений.Сторно Тогда
СтрокаДвижений.ДополнительныеДанные = ЗаработокЗаЕдиницуВремени2010Года;
Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Средний заработок рассчитан по правилам 2010 года", КомментарийВидаРасчета);
КонецЕсли;
КонецЕсли;
Результат = РезультатПоПравилам2010Года;
ИначеЕсли Не СтрокаДвижений.Сторно И КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Средний заработок рассчитан по правилам 2011 года", КомментарийВидаРасчета);
КонецЕсли;
КонецЕсли;

Если СтрокаДвижений.Сторно И Не СтрокаДвижений.РасчетнаяБазаЗаЕдиницуНормыВремени = 0 Тогда
// при расчете сторно получаем "отнормированную" базу из реквизита записи регистра
// и учтем отработанное время; для записей которые были рассчитаны ранее, этот реквизит пуст,
// поэтому для них получим базу прежним способом
ОтработанноеВремя = ?(ИсходныеДанные.ВидУчетаВремени = Перечисления.ВидыУчетаВремени.ПоДням, ИсходныеДанные.ОтработаноДней, ИсходныеДанные.ОтработаноЧасов);
РезультатБаза = СтрокаДвижений.РасчетнаяБазаЗаЕдиницуНормыВремени * ОтработанноеВремя;
Иначе
РезультатБаза = ИсходныеДанные.РезультатБаза;
КонецЕсли;

СреднийЗаработок = Результат;
Результат = Макс(СреднийЗаработок - ?(РезультатБаза = NULL, 0, РезультатБаза), 0);

Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Оплачиваемое время: " + ОплачиваемоеВремя, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Средний заработок: " + СреднийЗаработок, КомментарийВидаРасчета);
КомментарийБазы = ОбщегоНазначенияЗК.КомментарийРасчета("Вычитаемые начисления составили всего: " + РезультатБаза, КомментарийВидаРасчета,,,, Ложь);
РасшифровкаБазы = ИсходныеДанные.Выбрать();
Пока РасшифровкаБазы.Следующий() Цикл
Если ЗначениеЗаполнено(РасшифровкаБазы.РезультатБаза) Тогда
ОбщегоНазначенияЗК.КомментарийРасчета(РасшифровкаБазы.ВидРасчетаРазрезНаименование + ": " + РасшифровкаБазы.РезультатБаза, КомментарийБазы);
КонецЕсли;
КонецЦикла;
КонецЕсли;

СтрокаДвижений.ОплаченоДнейЧасов = ОплачиваемоеВремя * ?(СтрокаДвижений.Сторно,-1,1);
СтрокаДвижений.Результат = Результат;

Возврат Истина

КонецЕсли;

Если ИмяАлгоритма = "ДоплатаДоСреднегоЗаработкаФСС" Тогда

Если ПроведениеРасчетов.РассчитатьРесурсыПоАлгоритму("ДоплатаДоСреднегоЗаработкаФСС2011", КомментироватьРасчет, КомментарийВидаРасчета, СтрокаДвижений, ИсходныеДанные) Тогда
Возврат Истина
КонецЕсли;

ДатаЗакона213ФЗ = ПроведениеРасчетов.ДатаЗаменыЕСНСтраховымиВзносами();

ЭтоПорядок2010 = СтрокаДвижений.ПериодРегистрации >= ДатаЗакона213ФЗ И СтрокаДвижений.ПериодДействияНачало >= ДатаЗакона213ФЗ;

Если НЕ СтрокаДвижений.Сторно Тогда
Если ЭтоПорядок2010 Тогда
Если Не ЗначениеЗаполнено(ИсходныеДанные.СреднийЗаработокПособий2010) Тогда
ОбщегоНазначенияЗК.ОшибкаРасчета(ИсходныеДанные.СотрудникНаименование + "; " + ИсходныеДанные.ВидРасчетаНаименование + ": Нет данных для расчета среднего заработка");
СтрокаДвижений.Результат = 0;
Возврат Истина;
ИначеЕсли Не ЗначениеЗаполнено(ИсходныеДанные.ОтработаноДнейПособий2010) Тогда
ОбщегоНазначенияЗК.ОшибкаРасчета(ИсходныеДанные.СотрудникНаименование + "; " + ИсходныеДанные.ВидРасчетаНаименование + ": Нет оплачиваемых дней в заданном периоде");
СтрокаДвижений.Результат = 0;
Возврат Истина;
КонецЕсли;
ИначеЕсли Не ЗначениеЗаполнено(ИсходныеДанные.СреднийЗаработокПособий) Тогда
ОбщегоНазначенияЗК.ОшибкаРасчета(ИсходныеДанные.СотрудникНаименование + "; " + ИсходныеДанные.ВидРасчетаНаименование + ": Нет данных для расчета среднего заработка");
СтрокаДвижений.Результат = 0;
Возврат Истина;
ИначеЕсли Не ЗначениеЗаполнено(ИсходныеДанные.ОтработаноДнейПособий) Тогда
ОбщегоНазначенияЗК.ОшибкаРасчета(ИсходныеДанные.СотрудникНаименование + "; " + ИсходныеДанные.ВидРасчетаНаименование + ": Нет оплачиваемых дней в заданном периоде");
СтрокаДвижений.Результат = 0;
Возврат Истина;
КонецЕсли;
КонецЕсли;

// Рассчитаем заработок за день
// для строк сторно заработок возьмем из реквизита "ДополнительныеДанные" записи начислений
Если НЕ СтрокаДвижений.Сторно Тогда

Если ЭтоПорядок2010 Тогда
ЗаработокЗаЕдиницуВремени = Окр(ИсходныеДанные.СреднийЗаработокПособий2010 / ИсходныеДанные.ОтработаноДнейПособий2010,2);
Иначе
ЗаработокЗаЕдиницуВремени = Окр(ИсходныеДанные.СреднийЗаработокПособий / ИсходныеДанные.ОтработаноДнейПособий,2);
КонецЕсли;

// сохраним заработок за единицу времени для возможных расчетов сторно записей в будущем
СтрокаДвижений.ДополнительныеДанные = ЗаработокЗаЕдиницуВремени;

Иначе
ЗаработокЗаЕдиницуВремени = СтрокаДвижений.ДополнительныеДанные;
КонецЕсли;

Если СтрокаДвижений.Сторно И НЕ СтрокаДвижений.РасчетнаяБазаЗаЕдиницуНормыВремени = 0 Тогда
// при расчете сторно получаем "отнормированную" базу из реквизита записи регистра
// и учтем отработанное время; для записей которые были рассчитаны ранее, этот реквизит пуст,
// поэтому для них получим базу прежним способом
ОтработанноеВремя = ?(ИсходныеДанные.ВидУчетаВремени = Перечисления.ВидыУчетаВремени.ПоДням, ИсходныеДанные.ОтработаноДней, ИсходныеДанные.ОтработаноЧасов);
РезультатБаза = СтрокаДвижений.РасчетнаяБазаЗаЕдиницуНормыВремени * ОтработанноеВремя;
Иначе
РезультатБаза = ИсходныеДанные.РезультатБаза;
КонецЕсли;

ОплачиваемоеВремя = ?(ИсходныеДанные.КалендарныхДней = Null, 0,ИсходныеДанные.КалендарныхДней);
СреднийЗаработок = ОплачиваемоеВремя * ЗаработокЗаЕдиницуВремени;

Результат = Макс(СреднийЗаработок - ?(РезультатБаза = NULL, 0, РезультатБаза), 0);

Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Среднедневной заработок: " + ЗаработокЗаЕдиницуВремени, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Оплачиваемое время: " + ОплачиваемоеВремя, КомментарийВидаРасчета);
ОбщегоНазначенияЗК.КомментарийРасчета("Средний заработок: " + СреднийЗаработок, КомментарийВидаРасчета);
КомментарийБазы = ОбщегоНазначенияЗК.КомментарийРасчета("Вычитаемые начисления составили всего: " + РезультатБаза, КомментарийВидаРасчета,,,, Ложь);
РасшифровкаБазы = ИсходныеДанные.Выбрать();
Пока РасшифровкаБазы.Следующий() Цикл
Если ЗначениеЗаполнено(РасшифровкаБазы.РезультатБаза) Тогда
ОбщегоНазначенияЗК.КомментарийРасчета(РасшифровкаБазы.ВидРасчетаРазрезНаименование + ": " + РасшифровкаБазы.РезультатБаза, КомментарийБазы);
КонецЕсли;
КонецЦикла;
КонецЕсли;

СтрокаДвижений.ОплаченоДнейЧасов = ОплачиваемоеВремя * ?(СтрокаДвижений.Сторно,-1,1);
СтрокаДвижений.Результат = Результат;

Возврат Истина

КонецЕсли;

Если ИмяАлгоритма = "ПочтовыеПереводы" Тогда

Если ИсходныеДанные.ПоТарифу Тогда
Если ИсходныеДанные.СуммаАлиментов > 500000 Тогда
ОбщегоНазначенияЗК.ОшибкаРасчета(ИсходныеДанные.СотрудникНаименование + "; " + ИсходныеДанные.ВидРасчетаНаименование + ": превышена максимальная сумма почтового перевода - 500000 рублей");
Иначе
СтрокаДвижений.Результат = ИсходныеДанные.РазмерПочтовогоПеревода;
КонецЕсли;
Иначе
СтрокаДвижений.Результат = СтрокаДвижений["Показатель1"] / 100 * ОбщегоНазначения.ЦелМаксимальное(ИсходныеДанные.РазмерПочтовогоПеревода);
КонецЕсли;

Возврат Истина

КонецЕсли;

Возврат Ложь

КонецФункции
 
  Планируется исправить в релизе: 2.5.32  
 
  Код ошибки: 10073064  
  Дата публикации: 04.02.2011 17:32:02  
  Дата последнего изменения: 04.02.2011 0:00:00  
  Описание: Неверно исчисляется НДФЛ при использовании не соответствующей Налоговому кодексу настройки применения стандартных вычетов "В пределах месячного дохода налогоплательщика".  
  Способ исправления: Заменить функцию ПолучитьДанныеНДФЛПоРегистратору() о.м. ПроведениеРасчетов следующим фрагментом:

Функция ПолучитьДанныеНДФЛПоРегистратору(Знач ПервыйМесяцНалоговогоПериода,
Знач ПоследнийМесяцНалоговогоПериода,
ПериодРегистрации,
ОбособленноеПодразделение,
Организация,
Регистратор,
Знач СписокФизЛицТекст,
ДополнительныеПараметрыЗапроса = Неопределено,
ЭтоПерерасчет = Ложь,
КомментироватьРасчет = Ложь,
ВозвращатьДанныеРасчетовБезПодразделений = Ложь) Экспорт

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Регистратор", Регистратор);
Запрос.УстановитьПараметр("ГоловнаяОрганизация", Организация);
Запрос.УстановитьПараметр("НачалоМесяцаРасчета",НачалоМесяца(ПериодРегистрации));
Запрос.УстановитьПараметр("КонецМесяцаРасчета",КонецМесяца(ПериодРегистрации));
Запрос.УстановитьПараметр("НачалоГодаРасчета",НачалоГода(ПериодРегистрации));

// установим дополнительные параметры
Если ДополнительныеПараметрыЗапроса <> Неопределено Тогда
Для каждого Поле Из ДополнительныеПараметрыЗапроса Цикл
Запрос.УстановитьПараметр(Поле.Ключ, Поле.Значение);
КонецЦикла;
КонецЕсли;

Запрос.Текст =
"ВЫБРАТЬ Физлицо
|ПОМЕСТИТЬ ВТСписокФизЛиц
|ИЗ (" + СписокФизЛицТекст + ") СписокФизЛиц
|ИНДЕКСИРОВАТЬ ПО Физлицо";
Запрос.УстановитьПараметр("парамРегистратор", Регистратор);
Запрос.Выполнить();

Если ПоследнийМесяцНалоговогоПериода = Неопределено Тогда

// получим ПоследнийМесяцНалоговогоПериода
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| НДФЛСведенияОДоходах.Период КАК Период
|ИЗ
| РегистрНакопления.НДФЛСведенияОДоходах КАК НДФЛСведенияОДоходах
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСписокФизЛиц КАК Работники
| ПО (Работники.Физлицо = НДФЛСведенияОДоходах.ФизЛицо)
|ГДЕ
| НДФЛСведенияОДоходах.Организация = &ГоловнаяОрганизация
| И НАЧАЛОПЕРИОДА(НДФЛСведенияОДоходах.ПериодРегистрации, МЕСЯЦ) = &НачалоМесяцаРасчета
|
|УПОРЯДОЧИТЬ ПО
| Период УБЫВ";
Результат = Запрос.Выполнить();

Если Результат.Пустой() Тогда
ПоследнийМесяцНалоговогоПериода = КонецМесяца(ПериодРегистрации);

Иначе
Выборка = Результат.Выбрать();
Выборка.Следующий();
ПоследнийМесяцНалоговогоПериода = КонецМесяца(Выборка.Период);

КонецЕсли;

КонецЕсли;

Если ПервыйМесяцНалоговогоПериода = Неопределено Тогда
// получим самый ранний месяц налогового периода
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| НДФЛСведенияОДоходах.Период КАК Период
|ИЗ
| РегистрНакопления.НДФЛСведенияОДоходах КАК НДФЛСведенияОДоходах
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСписокФизЛиц КАК Работники
| ПО (Работники.Физлицо = НДФЛСведенияОДоходах.ФизЛицо)
|ГДЕ
| НДФЛСведенияОДоходах.Организация = &ГоловнаяОрганизация
| И НАЧАЛОПЕРИОДА(НДФЛСведенияОДоходах.ПериодРегистрации, МЕСЯЦ) = &НачалоМесяцаРасчета
|
|УПОРЯДОЧИТЬ ПО
| Период";
Результат = Запрос.Выполнить();

Если Результат.Пустой() Тогда
ПервыйМесяцНалоговогоПериода = ПериодРегистрации;

Иначе
Выборка = Результат.Выбрать();
Выборка.Следующий();
ПервыйМесяцНалоговогоПериода = НачалоМесяца(Выборка.Период);

КонецЕсли;

КонецЕсли;

ДатаЗакона229ФЗ = ПроведениеРасчетов.ДатаЗакона229ФЗ();
Запрос.УстановитьПараметр("ДатаЗакона229ФЗ", ДатаЗакона229ФЗ);
Запрос.УстановитьПараметр("КонецПериодаРасчета", КонецМесяца(ПоследнийМесяцНалоговогоПериода));
Запрос.УстановитьПараметр("НачалоГодаПериодаРасчета", НачалоГода(ПервыйМесяцНалоговогоПериода));
Запрос.УстановитьПараметр("КонецГодаПериодаРасчета", КонецГода(ПоследнийМесяцНалоговогоПериода));

// Таблица ВТДатыПоМесяцам: список дат налоговых периодов, в которых рассчитывается налог
// Поля:
// Период

НачМесяца = НачалоГода(ПервыйМесяцНалоговогоПериода);
ДатыПоМесяцамТекст = "ВЫБРАТЬ ДАТАВРЕМЯ(" + Формат(НачМесяца,"ДФ=гггг,М,д,Ч,м,с") + ") КАК Период";
ДатыПоМесяцамТекст = ДатыПоМесяцамТекст + "
|ПОМЕСТИТЬ ВТДатыПоМесяцам";
Пока НачМесяца < НачалоМесяца(ПоследнийМесяцНалоговогоПериода) Цикл
НачМесяца = НачалоМесяца(КонецМесяца(НачМесяца) + 1);
ДатыПоМесяцамТекст = ДатыПоМесяцамТекст +"
|ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(" + Формат(НачМесяца,"ДФ=гггг,М,д,Ч,м,с") + ")";
КонецЦикла;
Запрос.Текст = ДатыПоМесяцамТекст;
Запрос.Выполнить();

// первый год
НачалоГода = НачалоГода(ПоследнийМесяцНалоговогоПериода);
ПериодыТекстПоГодам = "ВЫБРАТЬ ДАТАВРЕМЯ(" + Формат(НачалоГода,"ДФ=гггг,М,д,Ч,м,с") + ") КАК НачалоНалоговогоПериода";
ПериодыТекстПоГодам = ПериодыТекстПоГодам + "
|ПОМЕСТИТЬ ВТПериодыПоГодам";
Для Сч = Год(ПервыйМесяцНалоговогоПериода)+ 1 По Год(ПоследнийМесяцНалоговогоПериода) Цикл
НачалоГода = НачалоГода(НачалоГода - 1);
ПериодыТекстПоГодам = ПериодыТекстПоГодам +" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(" + Формат(НачалоГода,"ДФ=гггг,М,д,Ч,м,с") + ")";
КонецЦикла;
Запрос.Текст = ПериодыТекстПоГодам;
Запрос.Выполнить();

// Периоды
// Таблица ВТПериоды: список периодов-физлиц по которым необходимо выполнить расчет налога
// Поля:
// Период
// Физлицо

Если ЭтоПерерасчет Тогда

Запрос.Текст =
"ВЫБРАТЬ
| Работники.Физлицо КАК Физлицо,
| Месяцы.Период КАК Период,
| НАЧАЛОПЕРИОДА(Месяцы.Период, МЕСЯЦ) КАК МесяцНалоговогоПериода,
| НАЧАЛОПЕРИОДА(Месяцы.Период, ГОД) КАК НачалоГодаНалоговогоПериода,
| КОНЕЦПЕРИОДА(Месяцы.Период, ГОД) КАК КонецГодаНалоговогоПериода
|ПОМЕСТИТЬ ВТПериодыНалогаНаДоходы
|ИЗ
| ВТСписокФизЛиц КАК Работники
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТДатыПоМесяцам КАК Месяцы
| ПО (ИСТИНА)
|
|ИНДЕКСИРОВАТЬ ПО
| Физлицо,
| Период";
Иначе

Запрос.Текст =
"ВЫБРАТЬ
| ПериодыДохода.ФизЛицо КАК ФизЛицо,
| Месяцы.Период КАК Период,
| НАЧАЛОПЕРИОДА(Месяцы.Период, МЕСЯЦ) КАК МесяцНалоговогоПериода,
| НАЧАЛОПЕРИОДА(Месяцы.Период, ГОД) КАК НачалоГодаНалоговогоПериода,
| КОНЕЦПЕРИОДА(Месяцы.Период, ГОД) КАК КонецГодаНалоговогоПериода
|ПОМЕСТИТЬ ВТПериодыНалогаНаДоходы
|ИЗ
| (ВЫБРАТЬ
| НДФЛСведенияОДоходах.ФизЛицо КАК ФизЛицо,
| МАКСИМУМ(НАЧАЛОПЕРИОДА(НДФЛСведенияОДоходах.Период, МЕСЯЦ)) КАК ПериодМакс,
| МИНИМУМ(ВЫБОР
| КОГДА НАЧАЛОПЕРИОДА(НДФЛСведенияОДоходах.ПериодРегистрации, МЕСЯЦ) = &НачалоМесяцаРасчета
| ТОГДА НАЧАЛОПЕРИОДА(НДФЛСведенияОДоходах.Период, ГОД)
| ИНАЧЕ &НачалоГодаРасчета
| КОНЕЦ) КАК ПериодМин
| ИЗ
| РегистрНакопления.НДФЛСведенияОДоходах КАК НДФЛСведенияОДоходах
| ГДЕ
| НАЧАЛОПЕРИОДА(НДФЛСведенияОДоходах.ПериодРегистрации, МЕСЯЦ) МЕЖДУ &НачалоГодаРасчета И &НачалоМесяцаРасчета
| И НДФЛСведенияОДоходах.Организация = &ГоловнаяОрганизация
| И НДФЛСведенияОДоходах.ФизЛицо В
| (ВЫБРАТЬ
| Работники.Физлицо
| ИЗ
| ВТСписокФизЛиц КАК Работники)
|
| СГРУППИРОВАТЬ ПО
| НДФЛСведенияОДоходах.ФизЛицо) КАК ПериодыДохода
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТДатыПоМесяцам КАК Месяцы
| ПО (Месяцы.Период МЕЖДУ ПериодыДохода.ПериодМин И ПериодыДохода.ПериодМакс)
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо,
| Период";
КонецЕсли;
Запрос.Выполнить();

Запрос.Текст =
"ВЫБРАТЬ
| ЗНАЧЕНИЕ(Перечисление.НДФЛСтавки.Ставка13) КАК СтавкаНалогообложения,
| 0.13 КАК Размер
|ПОМЕСТИТЬ ВТСтавкиНалогаВПроцентах
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(Перечисление.НДФЛСтавки.Ставка09),
| 0.09
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(Перечисление.НДФЛСтавки.Ставка35),
| 0.35
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(Перечисление.НДФЛСтавки.Ставка30),
| 0.3
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(Перечисление.НДФЛСтавки.Ставка15),
| 0.15
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДатыРегистра.НачалоНалоговогоПериода КАК НачалоНалоговогоПериода,
| УчетнаяПолитикаПоНДФЛ.ОсобенностиИсчисленияНДФЛ
|ПОМЕСТИТЬ ВТПолитикаПримененияВычетов
|ИЗ
| (ВЫБРАТЬ
| Периоды.НачалоНалоговогоПериода КАК НачалоНалоговогоПериода,
| МАКСИМУМ(УчетнаяПолитикаПоНДФЛ.Период) КАК ПериодРегистра
| ИЗ
| ВТПериодыПоГодам КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаПоНДФЛ КАК УчетнаяПолитикаПоНДФЛ
| ПО Периоды.НачалоНалоговогоПериода >= УчетнаяПолитикаПоНДФЛ.Период
| ГДЕ
| УчетнаяПолитикаПоНДФЛ.Организация = &ГоловнаяОрганизация
|
| СГРУППИРОВАТЬ ПО
| Периоды.НачалоНалоговогоПериода) КАК ДатыРегистра
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаПоНДФЛ КАК УчетнаяПолитикаПоНДФЛ
| ПО ДатыРегистра.ПериодРегистра = УчетнаяПолитикаПоНДФЛ.Период
|ГДЕ
| УчетнаяПолитикаПоНДФЛ.Организация = &ГоловнаяОрганизация
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПериодыРегистра.ФизЛицо КАК ФизЛицо,
| ПериодыРегистра.МесяцНалоговогоПериода,
| ВЫБОР
| КОГДА ЕСТЬNULL(СтатусНалогоплательщика.Статус, ЗНАЧЕНИЕ(Перечисление.СтатусыНалогоплательщиковПоНДФЛ.Резидент)) <> ЗНАЧЕНИЕ(Перечисление.СтатусыНалогоплательщиковПоНДФЛ.Нерезидент)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК РезидентРФ
|ПОМЕСТИТЬ ВТРезидентствоФизлицНаКонецГода
|ИЗ
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| Физлица.ФизЛицо КАК ФизЛицо,
| Физлица.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| МАКСИМУМ(СтатусНалогоплательщика.Период) КАК Период
| ИЗ
| ВТПериодыНалогаНаДоходы КАК Физлица
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусФизЛицКакНалогоплательщиковНДФЛ КАК СтатусНалогоплательщика
| ПО Физлица.ФизЛицо = СтатусНалогоплательщика.ФизЛицо
| И (СтатусНалогоплательщика.Период <= ВЫБОР
| КОГДА Физлица.КонецГодаНалоговогоПериода > &КонецМесяцаРасчета
| ТОГДА &КонецМесяцаРасчета
| ИНАЧЕ Физлица.КонецГодаНалоговогоПериода
| КОНЕЦ)
|
| СГРУППИРОВАТЬ ПО
| Физлица.ФизЛицо,
| Физлица.МесяцНалоговогоПериода) КАК ПериодыРегистра
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусФизЛицКакНалогоплательщиковНДФЛ КАК СтатусНалогоплательщика
| ПО ПериодыРегистра.ФизЛицо = СтатусНалогоплательщика.ФизЛицо
| И ПериодыРегистра.Период = СтатусНалогоплательщика.Период
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПериодыРегистра.ФизЛицо КАК ФизЛицо,
| ПериодыРегистра.МесяцНалоговогоПериода,
| ВЫБОР
| КОГДА ЕСТЬNULL(СтатусНалогоплательщика.Статус, ЗНАЧЕНИЕ(Перечисление.СтатусыНалогоплательщиковПоНДФЛ.Резидент)) <> ЗНАЧЕНИЕ(Перечисление.СтатусыНалогоплательщиковПоНДФЛ.Нерезидент)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК РезидентРФ
|ПОМЕСТИТЬ ВТРезидентствоФизлицНаКонецМесяца
|ИЗ
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| Физлица.ФизЛицо КАК ФизЛицо,
| Физлица.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| МАКСИМУМ(СтатусНалогоплательщика.Период) КАК Период
| ИЗ
| ВТПериодыНалогаНаДоходы КАК Физлица
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусФизЛицКакНалогоплательщиковНДФЛ КАК СтатусНалогоплательщика
| ПО Физлица.ФизЛицо = СтатусНалогоплательщика.ФизЛицо
| И (СтатусНалогоплательщика.Период <= ВЫБОР
| КОГДА Физлица.МесяцНалоговогоПериода > &КонецМесяцаРасчета
| ТОГДА &КонецМесяцаРасчета
| ИНАЧЕ Физлица.МесяцНалоговогоПериода
| КОНЕЦ)
|
| СГРУППИРОВАТЬ ПО
| Физлица.ФизЛицо,
| Физлица.МесяцНалоговогоПериода) КАК ПериодыРегистра
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусФизЛицКакНалогоплательщиковНДФЛ КАК СтатусНалогоплательщика
| ПО ПериодыРегистра.ФизЛицо = СтатусНалогоплательщика.ФизЛицо
| И ПериодыРегистра.Период = СтатусНалогоплательщика.Период
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Периоды.ФизЛицо,
| Периоды.ФизЛицо.Наименование КАК Порядок,
| Периоды.МесяцНалоговогоПериода,
| Периоды.НачалоГодаНалоговогоПериода,
| Периоды.КонецГодаНалоговогоПериода,
| ВЫБОР
| КОГДА Периоды.НачалоГодаНалоговогоПериода < &ДатаЗакона229ФЗ
| ТОГДА РезидентствоФизлицНаКонецГода.РезидентРФ
| ИНАЧЕ РезидентствоФизлицНаКонецМесяца.РезидентРФ
| И РезидентствоФизлицНаКонецГода.РезидентРФ
| КОНЕЦ КАК Резидент
|ПОМЕСТИТЬ ВТПериодыФизлиц
|ИЗ
| ВТПериодыНалогаНаДоходы КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ ВТРезидентствоФизлицНаКонецМесяца КАК РезидентствоФизлицНаКонецМесяца
| ПО Периоды.ФизЛицо = РезидентствоФизлицНаКонецМесяца.ФизЛицо
| И Периоды.МесяцНалоговогоПериода = РезидентствоФизлицНаКонецМесяца.МесяцНалоговогоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ ВТРезидентствоФизлицНаКонецГода КАК РезидентствоФизлицНаКонецГода
| ПО Периоды.ФизЛицо = РезидентствоФизлицНаКонецГода.ФизЛицо
| И Периоды.МесяцНалоговогоПериода = РезидентствоФизлицНаКонецГода.МесяцНалоговогоПериода
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДатыРегистра.НачалоНалоговогоПериода КАК НачалоНалоговогоПериода,
| ДатыРегистра.КодВычета КАК КодВычета,
| ЕСТЬNULL(РазмерВычетов.Размер, 0) КАК Размер,
| ЕСТЬNULL(РазмерВычетов.ОграничениеПоДоходам, 0) КАК ОграничениеПоДоходам
|ПОМЕСТИТЬ ВТРазмерыСтандартныхВычетов
|ИЗ
| (ВЫБРАТЬ
| Периоды.НачалоНалоговогоПериода КАК НачалоНалоговогоПериода,
| ВидыВычетов.Ссылка КАК КодВычета,
| МАКСИМУМ(РазмерВычетов.Период) КАК ПериодРегистра
| ИЗ
| ВТПериодыПоГодам КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВычетыНДФЛ КАК ВидыВычетов
| ПО (ИСТИНА)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НДФЛРазмерВычетов КАК РазмерВычетов
| ПО (ВидыВычетов.Ссылка = РазмерВычетов.КодВычета)
| И Периоды.НачалоНалоговогоПериода >= РазмерВычетов.Период
| ГДЕ
| ВидыВычетов.ГруппаВычета В (ЗНАЧЕНИЕ(Перечисление.ГруппыВычетовПоНДФЛ.Стандартные), ЗНАЧЕНИЕ(Перечисление.ГруппыВычетовПоНДФЛ.СтандартныеНаДетей))
|
| СГРУППИРОВАТЬ ПО
| Периоды.НачалоНалоговогоПериода,
| ВидыВычетов.Ссылка) КАК ДатыРегистра
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НДФЛРазмерВычетов КАК РазмерВычетов
| ПО ДатыРегистра.ПериодРегистра = РазмерВычетов.Период
| И ДатыРегистра.КодВычета = РазмерВычетов.КодВычета
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДатыРегистра.ФизЛицо КАК ФизЛицо,
| ДатыРегистра.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| ВЫБОР
| КОГДА ПрименениеВычетов.Организация = &ГоловнаяОрганизация
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПрименятьВычеты
|ПОМЕСТИТЬ ВТПрименениеСтандартныхВычетов
|ИЗ
| (ВЫБРАТЬ
| МАКСИМУМ(ПрименениеВычетов.Период) КАК ПериодСреза,
| Периоды.ФизЛицо КАК ФизЛицо,
| Периоды.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода
| ИЗ
| ВТПериодыФизлиц КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НДФЛПрименениеВычетов КАК ПрименениеВычетов
| ПО Периоды.МесяцНалоговогоПериода >= ПрименениеВычетов.Период
| И Периоды.ФизЛицо = ПрименениеВычетов.Физлицо
|
| СГРУППИРОВАТЬ ПО
| Периоды.ФизЛицо,
| Периоды.МесяцНалоговогоПериода) КАК ДатыРегистра
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НДФЛПрименениеВычетов КАК ПрименениеВычетов
| ПО ДатыРегистра.ПериодСреза = ПрименениеВычетов.Период
| И ДатыРегистра.ФизЛицо = ПрименениеВычетов.Физлицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДатыРегистра.ФизЛицо КАК ФизЛицо,
| ДатыРегистра.МесяцНалоговогоПериода,
| ДатыРегистра.НачалоГодаНалоговогоПериода,
| ЕСТЬNULL(ДатыРегистра.КодВычета, ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.ПустаяСсылка)) КАК КодВычета,
| ЕСТЬNULL(ВЫБОР
| КОГДА ВычетыНаДетей.ПериодЗавершения <= ДатыРегистра.МесяцНалоговогоПериода
| И ВычетыНаДетей.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| ТОГДА ВычетыНаДетей.КоличествоДетейЗавершения
| ИНАЧЕ ВычетыНаДетей.КоличествоДетей
| КОНЕЦ, 0) КАК КоличествоДетей
|ПОМЕСТИТЬ ВТПраваНаВычетыНаДетей
|ИЗ
| (ВЫБРАТЬ
| Периоды.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| Периоды.ФизЛицо КАК ФизЛицо,
| ВычетыНаДетей.КодВычета КАК КодВычета,
| МАКСИМУМ(ВычетыНаДетей.Период) КАК ПериодРегистра,
| Периоды.НачалоГодаНалоговогоПериода КАК НачалоГодаНалоговогоПериода
| ИЗ
| ВТПериодыФизлиц КАК Периоды
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НДФЛСтандартныеВычетыНаДетей КАК ВычетыНаДетей
| ПО Периоды.МесяцНалоговогоПериода >= ВычетыНаДетей.Период
| И Периоды.ФизЛицо = ВычетыНаДетей.Физлицо
|
| СГРУППИРОВАТЬ ПО
| Периоды.ФизЛицо,
| ВычетыНаДетей.КодВычета,
| Периоды.МесяцНалоговогоПериода,
| Периоды.НачалоГодаНалоговогоПериода) КАК ДатыРегистра
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НДФЛСтандартныеВычетыНаДетей КАК ВычетыНаДетей
| ПО ДатыРегистра.ПериодРегистра = ВычетыНаДетей.Период
| И ДатыРегистра.ФизЛицо = ВычетыНаДетей.Физлицо
| И ДатыРегистра.КодВычета = ВычетыНаДетей.КодВычета
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДатыРегистра.ФизЛицо,
| ДатыРегистра.МесяцНалоговогоПериода,
| ДатыРегистра.НачалоГодаНалоговогоПериода,
| ЕСТЬNULL(ВычетыФизлиц.КодВычетаЛичный, ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.ПустаяСсылка)) КАК КодВычета
|ПОМЕСТИТЬ ВТПраваНаЛичныеВычеты
|ИЗ
| (ВЫБРАТЬ
| МАКСИМУМ(ВычетыФизлиц.Период) КАК ПериодСреза,
| Периоды.ФизЛицо КАК ФизЛицо,
| Периоды.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| Периоды.НачалоГодаНалоговогоПериода КАК НачалоГодаНалоговогоПериода
| ИЗ
| ВТПериодыФизлиц КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НДФЛСтандартныеВычетыФизлиц КАК ВычетыФизлиц
| ПО Периоды.МесяцНалоговогоПериода >= ВычетыФизлиц.Период
| И Периоды.ФизЛицо = ВычетыФизлиц.Физлицо
|
| СГРУППИРОВАТЬ ПО
| Периоды.ФизЛицо,
| Периоды.МесяцНалоговогоПериода,
| Периоды.НачалоГодаНалоговогоПериода) КАК ДатыРегистра
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НДФЛСтандартныеВычетыФизлиц КАК ВычетыФизлиц
| ПО ДатыРегистра.ПериодСреза = ВычетыФизлиц.Период
| И ДатыРегистра.ФизЛицо = ВычетыФизлиц.Физлицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Вычеты.ФизЛицо,
| ВЫБОР
| КОГДА Вычеты.МесяцНалоговогоПериода < &ДатаЗакона229ФЗ
| ТОГДА НАЧАЛОПЕРИОДА(Вычеты.МесяцНалоговогоПериода, ГОД)
| ИНАЧЕ Вычеты.МесяцНалоговогоПериода
| КОНЕЦ КАК МесяцНалоговогоПериода,
| Вычеты.КодВычета,
| Вычеты.НалоговыйПериод,
| СУММА(Вычеты.Размер) КАК Размер
|ПОМЕСТИТЬ ВТПравоНаИмущественныеВычеты
|ИЗ
| (ВЫБРАТЬ
| Обороты.ФизЛицо КАК ФизЛицо,
| НАЧАЛОПЕРИОДА(Обороты.Период, МЕСЯЦ) КАК МесяцНалоговогоПериода,
| Обороты.КодВычетаИмущественный КАК КодВычета,
| Обороты.Год КАК НалоговыйПериод,
| Обороты.РазмерПриход КАК Размер
| ИЗ
| РегистрНакопления.НДФЛИмущественныеВычетыФизлиц.Обороты(
| &НачалоГодаПериодаРасчета,
| &КонецПериодаРасчета,
| Месяц,
| ФизЛицо В
| (ВЫБРАТЬ
| ФизЛица.ФизЛицо
| ИЗ
| ВТСписокФизЛиц КАК ФизЛица)
| И Организация = &ГоловнаяОрганизация) КАК Обороты
| ГДЕ
| Обороты.Год = ГОД(Обороты.Период)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ДвиженияРегистратора.ФизЛицо,
| НАЧАЛОПЕРИОДА(ДвиженияРегистратора.Период, МЕСЯЦ),
| ДвиженияРегистратора.КодВычетаИмущественный,
| ДвиженияРегистратора.Год,
| ВЫБОР
| КОГДА ДвиженияРегистратора.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА -ДвиженияРегистратора.Размер
| ИНАЧЕ 0
| КОНЕЦ
| ИЗ
| РегистрНакопления.НДФЛИмущественныеВычетыФизлиц КАК ДвиженияРегистратора
| ГДЕ
| ДвиженияРегистратора.Регистратор = &Регистратор
| И ДвиженияРегистратора.ФизЛицо В
| (ВЫБРАТЬ
| ФизЛица.ФизЛицо
| ИЗ
| ВТСписокФизЛиц КАК ФизЛица)
| И ДвиженияРегистратора.Год = ГОД(ДвиженияРегистратора.Период)) КАК Вычеты
|
|СГРУППИРОВАТЬ ПО
| Вычеты.ФизЛицо,
| ВЫБОР
| КОГДА Вычеты.МесяцНалоговогоПериода < &ДатаЗакона229ФЗ
| ТОГДА НАЧАЛОПЕРИОДА(Вычеты.МесяцНалоговогоПериода, ГОД)
| ИНАЧЕ Вычеты.МесяцНалоговогоПериода
| КОНЕЦ,
| Вычеты.КодВычета,
| Вычеты.НалоговыйПериод
|
|ИМЕЮЩИЕ
| СУММА(Вычеты.Размер) > 0
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Обороты.ФизЛицо,
| НАЧАЛОПЕРИОДА(Обороты.Период, МЕСЯЦ) КАК МесяцНалоговогоПериода,
| Обороты.КодВычета,
| Обороты.СуммаДохода КАК СуммаДоходаОборот,
| Обороты.СуммаВычета КАК СуммаВычетаОборот
|ПОМЕСТИТЬ ВТДоходыФизлиц
|ИЗ
| РегистрНакопления.НДФЛСведенияОДоходах КАК Обороты
|ГДЕ
| Обороты.Организация = &ГоловнаяОрганизация
| И Обороты.КодДохода.СтавкаНалогообложенияРезидента = ЗНАЧЕНИЕ(Перечисление.НДФЛСтавкиНалогообложенияРезидента.Ставка13)
| И (НЕ Обороты.КодДохода.НеОблагаетсяУНалоговогоАгента)
| И Обороты.Период МЕЖДУ &НачалоГодаПериодаРасчета И &КонецПериодаРасчета
| И Обороты.ПериодРегистрации <= &КонецМесяцаРасчета
| И Обороты.ФизЛицо В
| (ВЫБРАТЬ
| СписокСотрудников.ФизЛицо
| ИЗ
| ВТСписокФизЛиц КАК СписокСотрудников)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПредоставленныеСтандартныеИСоциальныеВычетыНДФЛ.ФизЛицо,
| НАЧАЛОПЕРИОДА(ПредоставленныеСтандартныеИСоциальныеВычетыНДФЛ.МесяцНалоговогоПериода, МЕСЯЦ) КАК МесяцНалоговогоПериода,
| ПредоставленныеСтандартныеИСоциальныеВычетыНДФЛ.КодВычета,
| ПредоставленныеСтандартныеИСоциальныеВычетыНДФЛ.ПодразделениеОрганизации КАК Подразделение,
| СУММА(ПредоставленныеСтандартныеИСоциальныеВычетыНДФЛ.ПримененныйВычет) КАК СуммаОборот
|ПОМЕСТИТЬ ВТПредоставленныеСтандартныеИСоциальныеВычеты
|ИЗ
| РегистрНакопления.НДФЛПредоставленныеСтандартныеВычетыФизЛиц КАК ПредоставленныеСтандартныеИСоциальныеВычетыНДФЛ
|ГДЕ
| ПредоставленныеСтандартныеИСоциальныеВычетыНДФЛ.Организация = &ГоловнаяОрганизация
| И ПредоставленныеСтандартныеИСоциальныеВычетыНДФЛ.ФизЛицо В
| (ВЫБРАТЬ
| СписокСотрудников.ФизЛицо
| ИЗ
| ВТСписокФизЛиц КАК СписокСотрудников)
| И ПредоставленныеСтандартныеИСоциальныеВычетыНДФЛ.Регистратор <> &Регистратор
| И ПредоставленныеСтандартныеИСоциальныеВычетыНДФЛ.МесяцНалоговогоПериода МЕЖДУ &НачалоГодаПериодаРасчета И &КонецПериодаРасчета
| И ПредоставленныеСтандартныеИСоциальныеВычетыНДФЛ.Период <= &КонецМесяцаРасчета
|
|СГРУППИРОВАТЬ ПО
| ПредоставленныеСтандартныеИСоциальныеВычетыНДФЛ.ФизЛицо,
| НАЧАЛОПЕРИОДА(ПредоставленныеСтандартныеИСоциальныеВычетыНДФЛ.МесяцНалоговогоПериода, МЕСЯЦ),
| ПредоставленныеСтандартныеИСоциальныеВычетыНДФЛ.КодВычета,
| ПредоставленныеСтандартныеИСоциальныеВычетыНДФЛ.ПодразделениеОрганизации
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДвиженияРегистратора.ФизЛицо КАК ФизЛицо,
| НАЧАЛОПЕРИОДА(ДвиженияРегистратора.Период, МЕСЯЦ) КАК МесяцНалоговогоПериода,
| ДвиженияРегистратора.КодВычетаИмущественный КАК КодВычета,
| СУММА(ДвиженияРегистратора.Размер) КАК Сумма,
| ДвиженияРегистратора.ПодразделениеОрганизации КАК Подразделение
|ПОМЕСТИТЬ ВТПредоставленоИмущественныхВычетов
|ИЗ
| РегистрНакопления.НДФЛИмущественныеВычетыФизлиц КАК ДвиженияРегистратора
|ГДЕ
| ДвиженияРегистратора.Организация = &ГоловнаяОрганизация
| И ДвиженияРегистратора.Период МЕЖДУ &НачалоГодаПериодаРасчета И &КонецПериодаРасчета
| И ДвиженияРегистратора.Регистратор <> &Регистратор
| И ДвиженияРегистратора.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И ДвиженияРегистратора.ФизЛицо В
| (ВЫБРАТЬ
| ФизЛица.ФизЛицо
| ИЗ
| ВТСписокФизЛиц КАК ФизЛица)
|
|СГРУППИРОВАТЬ ПО
| ДвиженияРегистратора.ПодразделениеОрганизации,
| ДвиженияРегистратора.ФизЛицо,
| НАЧАЛОПЕРИОДА(ДвиженияРегистратора.Период, МЕСЯЦ),
| ДвиженияРегистратора.КодВычетаИмущественный
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Периоды.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| Периоды.ФизЛицо КАК ФизЛицо,
| ВЫБОР
| КОГДА Периоды.Резидент
| ТОГДА ЕСТЬNULL(ПредоставленныеВычетыФизЛиц.СуммаОборот, 0)
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаОборот
|ПОМЕСТИТЬ ВТСоциальныеВычетыПомесячно
|ИЗ
| ВТПериодыФизлиц КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПредоставленныеСтандартныеИСоциальныеВычеты КАК ПредоставленныеВычетыФизЛиц
| ПО Периоды.ФизЛицо = ПредоставленныеВычетыФизЛиц.ФизЛицо
| И (ПредоставленныеВычетыФизЛиц.КодВычета.ГруппаВычета = ЗНАЧЕНИЕ(Перечисление.ГруппыВычетовПоНДФЛ.Социальные))
| И Периоды.МесяцНалоговогоПериода = ПредоставленныеВычетыФизЛиц.МесяцНалоговогоПериода
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Периоды.ФизЛицо КАК ФизЛицо,
| Периоды.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| Периоды.Резидент,
| ВЫБОР
| КОГДА Периоды.Резидент
| ТОГДА ЗНАЧЕНИЕ(Перечисление.НДФЛСтавки.Ставка13)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.НДФЛСтавки.Ставка30)
| КОНЕЦ КАК СтавкаНалогообложенияНеРезидента,
| ЕСТЬNULL(Обороты.СуммаДоходаОборот, 0) - ВЫБОР
| КОГДА Периоды.Резидент
| ТОГДА ЕСТЬNULL(Обороты.СуммаВычетаОборот, 0)
| КОГДА Обороты.КодВычета.НеПредоставляетсяНерезидентам
| ТОГДА 0
| ИНАЧЕ ЕСТЬNULL(Обороты.СуммаВычетаОборот, 0)
| КОНЕЦ КАК ДоходыБезВычетов
|ПОМЕСТИТЬ ВТДоходыСУчетомВычетовКДоходам
|ИЗ
| ВТПериодыФизлиц КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДоходыФизлиц КАК Обороты
| ПО Периоды.ФизЛицо = Обороты.ФизЛицо
| И Периоды.МесяцНалоговогоПериода = Обороты.МесяцНалоговогоПериода
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Периоды.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| Периоды.ФизЛицо КАК ФизЛицо,
| ЕСТЬNULL(СУММА(Доходы.ДоходыБезВычетов), 0) КАК ОблагаемыйДоход
|ПОМЕСТИТЬ ВТДоходыРезидентовПоМесяцам
|ИЗ
| ВТПериодыФизлиц КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДоходыСУчетомВычетовКДоходам КАК Доходы
| ПО Периоды.МесяцНалоговогоПериода = Доходы.МесяцНалоговогоПериода
| И Периоды.ФизЛицо = Доходы.ФизЛицо
| И (Доходы.Резидент)
|
|СГРУППИРОВАТЬ ПО
| Периоды.МесяцНалоговогоПериода,
| Периоды.ФизЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Периоды.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| Периоды.ФизЛицо КАК ФизЛицо,
| ЕСТЬNULL(СУММА(Доходы.ДоходыБезВычетов), 0) КАК ОблагаемыйДоходЗаГод
|ПОМЕСТИТЬ ВТДоходыРезидентовНарастающимЗаГод
|ИЗ
| ВТПериодыФизлиц КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДоходыСУчетомВычетовКДоходам КАК Доходы
| ПО (Доходы.МесяцНалоговогоПериода МЕЖДУ Периоды.НачалоГодаНалоговогоПериода И Периоды.МесяцНалоговогоПериода)
| И Периоды.ФизЛицо = Доходы.ФизЛицо
| И (Доходы.Резидент)
|
|СГРУППИРОВАТЬ ПО
| Периоды.МесяцНалоговогоПериода,
| Периоды.ФизЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Периоды.ФизЛицо КАК ФизЛицо,
| Периоды.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| ВычетыЛичные.КодВычета КАК КодВычетаЛичный,
| ВЫБОР
| КОГДА ПрименениеВычетов.ПрименятьВычеты
| И Периоды.Резидент
| И (ДоходыНарастающимИтогом.ОблагаемыйДоходЗаГод + ЕСТЬNULL(ДоходыСПредыдущегоМестаРаботы.Размер, 0) <= ЕСТЬNULL(РазмерВычетовЛичный.ОграничениеПоДоходам, 0)
| ИЛИ ЕСТЬNULL(РазмерВычетовЛичный.ОграничениеПоДоходам, 0) = 0)
| ТОГДА ЕСТЬNULL(РазмерВычетовЛичный.Размер, 0)
| ИНАЧЕ 0
| КОНЕЦ КАК СтандартныеВычетыЛичные,
| ВЫБОР
| КОГДА ПрименениеВычетов.ПрименятьВычеты
| И Периоды.Резидент
| И (ДоходыНарастающимИтогом.ОблагаемыйДоходЗаГод + ЕСТЬNULL(ДоходыСПредыдущегоМестаРаботы.Размер, 0) <= РазмерВычетовНаДетей.ОграничениеПоДоходам
| ИЛИ РазмерВычетовНаДетей.ОграничениеПоДоходам = 0)
| ТОГДА ЕСТЬNULL(РазмерВычетовНаДетей.Размер, 0) * ЕСТЬNULL(ВычетыНаДетей.КоличествоДетей, 0)
| ИНАЧЕ 0
| КОНЕЦ КАК СтандартныеВычетыДетские,
| ВЫБОР
| КОГДА ПрименениеВычетов.ПрименятьВычеты
| И Периоды.Резидент
| И (ДоходыНарастающимИтогом.ОблагаемыйДоходЗаГод + ЕСТЬNULL(ДоходыСПредыдущегоМестаРаботы.Размер, 0) <= РазмерВычетовНаДетей.ОграничениеПоДоходам
| ИЛИ РазмерВычетовНаДетей.ОграничениеПоДоходам = 0)
| ТОГДА ЕСТЬNULL(РазмерВычетовНаДетейДвойные.Размер, 0) * ЕСТЬNULL(ВычетыНаДетейДвойные.КоличествоДетей, 0)
| ИНАЧЕ 0
| КОНЕЦ КАК СтандартныеВычетыДетскиеДвойные,
| ВЫБОР
| КОГДА ПрименениеВычетов.ПрименятьВычеты
| И Периоды.Резидент
| И (ДоходыНарастающимИтогом.ОблагаемыйДоходЗаГод + ЕСТЬNULL(ДоходыСПредыдущегоМестаРаботы.Размер, 0) <= РазмерВычетовНаДетей.ОграничениеПоДоходам
| ИЛИ РазмерВычетовНаДетей.ОграничениеПоДоходам = 0)
| ТОГДА ЕСТЬNULL(РазмерВычетовНаДетейДвойныеВторые.Размер, 0) * ЕСТЬNULL(ВычетыНаДетейДвойныеВторые.КоличествоДетей, 0)
| ИНАЧЕ 0
| КОНЕЦ КАК СтандартныеВычетыДетскиеДвойныеВторые,
| ВЫБОР
| КОГДА ПрименениеВычетов.ПрименятьВычеты
| И Периоды.Резидент
| И (ДоходыНарастающимИтогом.ОблагаемыйДоходЗаГод + ЕСТЬNULL(ДоходыСПредыдущегоМестаРаботы.Размер, 0) <= РазмерВычетовНаДетей.ОграничениеПоДоходам
| ИЛИ РазмерВычетовНаДетей.ОграничениеПоДоходам = 0)
| ТОГДА ЕСТЬNULL(РазмерВычетовНаДетейИнвалидов.Размер, 0) * ЕСТЬNULL(ВычетыНаДетейИнвалидов.КоличествоДетей, 0)
| ИНАЧЕ 0
| КОНЕЦ КАК СтандартныеВычетыДетскиеИнвалидов,
| ВЫБОР
| КОГДА ПрименениеВычетов.ПрименятьВычеты
| И Периоды.Резидент
| И (ДоходыНарастающимИтогом.ОблагаемыйДоходЗаГод + ЕСТЬNULL(ДоходыСПредыдущегоМестаРаботы.Размер, 0) <= РазмерВычетовНаДетей.ОграничениеПоДоходам
| ИЛИ РазмерВычетовНаДетей.ОграничениеПоДоходам = 0)
| ТОГДА ЕСТЬNULL(РазмерВычетовНаДетейИнвалидовДвойные.Размер, 0) * ЕСТЬNULL(ВычетыНаДетейИнвалидовДвойные.КоличествоДетей, 0)
| ИНАЧЕ 0
| КОНЕЦ КАК СтандартныеВычетыДетскиеИнвалидовДвойные,
| ВЫБОР
| КОГДА ПрименениеВычетов.ПрименятьВычеты
| И Периоды.Резидент
| И (ДоходыНарастающимИтогом.ОблагаемыйДоходЗаГод + ЕСТЬNULL(ДоходыСПредыдущегоМестаРаботы.Размер, 0) <= РазмерВычетовНаДетей.ОграничениеПоДоходам
| ИЛИ РазмерВычетовНаДетей.ОграничениеПоДоходам = 0)
| ТОГДА ЕСТЬNULL(РазмерВычетовНаДетейИнвалидовДвойныеВторые.Размер, 0) * ЕСТЬNULL(ВычетыНаДетейИнвалидовДвойныеВторые.КоличествоДетей, 0)
| ИНАЧЕ 0
| КОНЕЦ КАК СтандартныеВычетыДетскиеИнвалидовДвойныеВторые,
| РазмерВычетовЛичный.ОграничениеПоДоходам КАК ОграничениеПоДоходамЛичные,
| РазмерВычетовНаДетей.ОграничениеПоДоходам КАК ОграничениеПоДоходамНаДетей
|ПОМЕСТИТЬ ВТПраваНаСтандартныеВычетыПоМесяцам
|ИЗ
| ВТПериодыФизлиц КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПрименениеСтандартныхВычетов КАК ПрименениеВычетов
| ПО Периоды.ФизЛицо = ПрименениеВычетов.ФизЛицо
| И Периоды.МесяцНалоговогоПериода = ПрименениеВычетов.МесяцНалоговогоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ ВТРазмерыСтандартныхВычетов КАК РазмерВычетовНаДетей
| ПО (РазмерВычетовНаДетей.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код101))
| И Периоды.НачалоГодаНалоговогоПериода = РазмерВычетовНаДетей.НачалоНалоговогоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПраваНаЛичныеВычеты КАК ВычетыЛичные
| ЛЕВОЕ СОЕДИНЕНИЕ ВТРазмерыСтандартныхВычетов КАК РазмерВычетовЛичный
| ПО ВычетыЛичные.КодВычета = РазмерВычетовЛичный.КодВычета
| И ВычетыЛичные.НачалоГодаНалоговогоПериода = РазмерВычетовЛичный.НачалоНалоговогоПериода
| ПО Периоды.МесяцНалоговогоПериода = ВычетыЛичные.МесяцНалоговогоПериода
| И Периоды.ФизЛицо = ВычетыЛичные.ФизЛицо
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПраваНаВычетыНаДетей КАК ВычетыНаДетей
| ПО (ВычетыНаДетей.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код101))
| И Периоды.ФизЛицо = ВычетыНаДетей.ФизЛицо
| И Периоды.МесяцНалоговогоПериода = ВычетыНаДетей.МесяцНалоговогоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПраваНаВычетыНаДетей КАК ВычетыНаДетейДвойные
| ЛЕВОЕ СОЕДИНЕНИЕ ВТРазмерыСтандартныхВычетов КАК РазмерВычетовНаДетейДвойные
| ПО ВычетыНаДетейДвойные.КодВычета = РазмерВычетовНаДетейДвойные.КодВычета
| И ВычетыНаДетейДвойные.НачалоГодаНалоговогоПериода = РазмерВычетовНаДетейДвойные.НачалоНалоговогоПериода
| ПО (ВычетыНаДетейДвойные.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код102))
| И Периоды.ФизЛицо = ВычетыНаДетейДвойные.ФизЛицо
| И Периоды.МесяцНалоговогоПериода = ВычетыНаДетейДвойные.МесяцНалоговогоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПраваНаВычетыНаДетей КАК ВычетыНаДетейДвойныеВторые
| ЛЕВОЕ СОЕДИНЕНИЕ ВТРазмерыСтандартныхВычетов КАК РазмерВычетовНаДетейДвойныеВторые
| ПО ВычетыНаДетейДвойныеВторые.КодВычета = РазмерВычетовНаДетейДвойныеВторые.КодВычета
| И ВычетыНаДетейДвойныеВторые.НачалоГодаНалоговогоПериода = РазмерВычетовНаДетейДвойныеВторые.НачалоНалоговогоПериода
| ПО (ВычетыНаДетейДвойныеВторые.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код111))
| И Периоды.ФизЛицо = ВычетыНаДетейДвойныеВторые.ФизЛицо
| И Периоды.МесяцНалоговогоПериода = ВычетыНаДетейДвойныеВторые.МесяцНалоговогоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПраваНаВычетыНаДетей КАК ВычетыНаДетейИнвалидов
| ЛЕВОЕ СОЕДИНЕНИЕ ВТРазмерыСтандартныхВычетов КАК РазмерВычетовНаДетейИнвалидов
| ПО ВычетыНаДетейИнвалидов.КодВычета = РазмерВычетовНаДетейИнвалидов.КодВычета
| И ВычетыНаДетейИнвалидов.НачалоГодаНалоговогоПериода = РазмерВычетовНаДетейИнвалидов.НачалоНалоговогоПериода
| ПО (ВычетыНаДетейИнвалидов.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код106))
| И Периоды.ФизЛицо = ВычетыНаДетейИнвалидов.ФизЛицо
| И Периоды.МесяцНалоговогоПериода = ВычетыНаДетейИнвалидов.МесяцНалоговогоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПраваНаВычетыНаДетей КАК ВычетыНаДетейИнвалидовДвойные
| ЛЕВОЕ СОЕДИНЕНИЕ ВТРазмерыСтандартныхВычетов КАК РазмерВычетовНаДетейИнвалидовДвойные
| ПО ВычетыНаДетейИнвалидовДвойные.КодВычета = РазмерВычетовНаДетейИнвалидовДвойные.КодВычета
| И ВычетыНаДетейИнвалидовДвойные.НачалоГодаНалоговогоПериода = РазмерВычетовНаДетейИнвалидовДвойные.НачалоНалоговогоПериода
| ПО (ВычетыНаДетейИнвалидовДвойные.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код107))
| И Периоды.ФизЛицо = ВычетыНаДетейИнвалидовДвойные.ФизЛицо
| И Периоды.МесяцНалоговогоПериода = ВычетыНаДетейИнвалидовДвойные.МесяцНалоговогоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПраваНаВычетыНаДетей КАК ВычетыНаДетейИнвалидовДвойныеВторые
| ЛЕВОЕ СОЕДИНЕНИЕ ВТРазмерыСтандартныхВычетов КАК РазмерВычетовНаДетейИнвалидовДвойныеВторые
| ПО ВычетыНаДетейИнвалидовДвойныеВторые.КодВычета = РазмерВычетовНаДетейИнвалидовДвойныеВторые.КодВычета
| И ВычетыНаДетейИнвалидовДвойныеВторые.НачалоГодаНалоговогоПериода = РазмерВычетовНаДетейИнвалидовДвойныеВторые.НачалоНалоговогоПериода
| ПО (ВычетыНаДетейИнвалидовДвойныеВторые.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код113))
| И Периоды.ФизЛицо = ВычетыНаДетейИнвалидовДвойныеВторые.ФизЛицо
| И Периоды.МесяцНалоговогоПериода = ВычетыНаДетейИнвалидовДвойныеВторые.МесяцНалоговогоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НДФЛДоходыПредыдущегоМестаРаботы КАК ДоходыСПредыдущегоМестаРаботы
| ПО Периоды.МесяцНалоговогоПериода = ДоходыСПредыдущегоМестаРаботы.МесяцНалоговогоПериода
| И Периоды.ФизЛицо = ДоходыСПредыдущегоМестаРаботы.ФизЛицо
| И (ДоходыСПредыдущегоМестаРаботы.Организация = &ГоловнаяОрганизация)
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДоходыРезидентовНарастающимЗаГод КАК ДоходыНарастающимИтогом
| ПО Периоды.МесяцНалоговогоПериода = ДоходыНарастающимИтогом.МесяцНалоговогоПериода
| И Периоды.ФизЛицо = ДоходыНарастающимИтогом.ФизЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Доходы.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| Доходы.ФизЛицо КАК ФизЛицо,
| СУММА(ВЫРАЗИТЬ(ВЫБОР
| КОГДА Доходы.Резидент
| ТОГДА 0
| ИНАЧЕ Доходы.ДоходыБезВычетов
| КОНЕЦ * СтавкиНалогаВПроцентах.Размер КАК ЧИСЛО(13, 0))) КАК НалогНерезидента
|ПОМЕСТИТЬ ВТНалогНерезидентов
|ИЗ
| ВТДоходыСУчетомВычетовКДоходам КАК Доходы
| ЛЕВОЕ СОЕДИНЕНИЕ ВТСтавкиНалогаВПроцентах КАК СтавкиНалогаВПроцентах
| ПО Доходы.СтавкаНалогообложенияНеРезидента = СтавкиНалогаВПроцентах.СтавкаНалогообложения
|
|СГРУППИРОВАТЬ ПО
| Доходы.ФизЛицо,
| Доходы.МесяцНалоговогоПериода
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Периоды.ФизЛицо КАК ФизЛицо,
| Периоды.Порядок КАК Порядок,
| Периоды.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| Периоды.Резидент,
| ДоходыРезидентовПоМесяцам.ОблагаемыйДоход КАК ОблагаемыйДоходЗаМесяц,
| ДоходыРезидентовНарастающимЗаГод.ОблагаемыйДоходЗаГод КАК ОблагаемыйДоходНарастающимИтогом,
| СоциальныеВычеты.СуммаОборот КАК СоциальныйВычет,
| ВЫБОР
| КОГДА Периоды.Резидент
| ТОГДА 0
| ИНАЧЕ ЕСТЬNULL(НалогНерезидентов.НалогНерезидента, 0)
| КОНЕЦ КАК НалогЗаМесяц,
| СтавкиНалогаВПроцентах.Размер КАК СтавкаДляРезидента,
| ПравоНаСтандартныеВычеты.КодВычетаЛичный,
| ПравоНаСтандартныеВычеты.СтандартныеВычетыЛичные,
| ПравоНаСтандартныеВычеты.СтандартныеВычетыДетские,
| ПравоНаСтандартныеВычеты.СтандартныеВычетыДетскиеДвойные,
| ПравоНаСтандартныеВычеты.СтандартныеВычетыДетскиеДвойныеВторые,
| ПравоНаСтандартныеВычеты.СтандартныеВычетыДетскиеИнвалидов,
| ПравоНаСтандартныеВычеты.СтандартныеВычетыДетскиеИнвалидовДвойные,
| ПравоНаСтандартныеВычеты.СтандартныеВычетыДетскиеИнвалидовДвойныеВторые,
| ЕСТЬNULL(ПолитикаПримененияВычетов.ОсобенностиИсчисленияНДФЛ, ЗНАЧЕНИЕ(Перечисление.ОсобенностиИсчисленияНДФЛ.СтандартныеВычетыНарастающимИтогом)) КАК ОсобенностиУчетаВычетов,
| ГОД(Периоды.МесяцНалоговогоПериода) КАК НалоговыйПериод,
| ПравоНаСтандартныеВычеты.ОграничениеПоДоходамЛичные,
| ПравоНаСтандартныеВычеты.ОграничениеПоДоходамНаДетей
|ИЗ
| ВТПериодыФизлиц КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ ВТНалогНерезидентов КАК НалогНерезидентов
| ПО Периоды.ФизЛицо = НалогНерезидентов.ФизЛицо
| И Периоды.МесяцНалоговогоПериода = НалогНерезидентов.МесяцНалоговогоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПраваНаСтандартныеВычетыПоМесяцам КАК ПравоНаСтандартныеВычеты
| ПО Периоды.ФизЛицо = ПравоНаСтандартныеВычеты.ФизЛицо
| И Периоды.МесяцНалоговогоПериода = ПравоНаСтандартныеВычеты.МесяцНалоговогоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДоходыРезидентовНарастающимЗаГод КАК ДоходыРезидентовНарастающимЗаГод
| ПО Периоды.ФизЛицо = ДоходыРезидентовНарастающимЗаГод.ФизЛицо
| И Периоды.МесяцНалоговогоПериода = ДоходыРезидентовНарастающимЗаГод.МесяцНалоговогоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДоходыРезидентовПоМесяцам КАК ДоходыРезидентовПоМесяцам
| ПО Периоды.ФизЛицо = ДоходыРезидентовПоМесяцам.ФизЛицо
| И Периоды.МесяцНалоговогоПериода = ДоходыРезидентовПоМесяцам.МесяцНалоговогоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ ВТСоциальныеВычетыПомесячно КАК СоциальныеВычеты
| ПО Периоды.ФизЛицо = СоциальныеВычеты.ФизЛицо
| И Периоды.МесяцНалоговогоПериода = СоциальныеВычеты.МесяцНалоговогоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ ВТСтавкиНалогаВПроцентах КАК СтавкиНалогаВПроцентах
| ПО (СтавкиНалогаВПроцентах.СтавкаНалогообложения = ЗНАЧЕНИЕ(Перечисление.НДФЛСтавки.Ставка13))
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПолитикаПримененияВычетов КАК ПолитикаПримененияВычетов
| ПО Периоды.НачалоГодаНалоговогоПериода = ПолитикаПримененияВычетов.НачалоНалоговогоПериода
|
|УПОРЯДОЧИТЬ ПО
| Порядок,
| ФизЛицо,
| НалоговыйПериод,
| МесяцНалоговогоПериода
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Периоды.ФизЛицо КАК ФизЛицо,
| Периоды.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| СУММА(ВЫБОР
| КОГДА ПравоНаИмущественныеВычеты.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код311)
| ТОГДА ПравоНаИмущественныеВычеты.Размер
| ИНАЧЕ 0
| КОНЕЦ) КАК ВычетИмущественныйРасходы,
| СУММА(ВЫБОР
| КОГДА ПравоНаИмущественныеВычеты.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код312)
| ТОГДА ПравоНаИмущественныеВычеты.Размер
| ИНАЧЕ 0
| КОНЕЦ) КАК ВычетИмущественныйПроцентыПоКредитам,
| СУММА(ВЫБОР
| КОГДА ПравоНаИмущественныеВычеты.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код318)
| ТОГДА ПравоНаИмущественныеВычеты.Размер
| ИНАЧЕ 0
| КОНЕЦ) КАК ВычетИмущественныйПроцентыПриПерекредитовании
|ИЗ
| ВТПериодыФизлиц КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПравоНаИмущественныеВычеты КАК ПравоНаИмущественныеВычеты
| ПО Периоды.ФизЛицо = ПравоНаИмущественныеВычеты.ФизЛицо
| И Периоды.МесяцНалоговогоПериода = ПравоНаИмущественныеВычеты.МесяцНалоговогоПериода
|
|СГРУППИРОВАТЬ ПО
| Периоды.ФизЛицо,
| Периоды.МесяцНалоговогоПериода
|
|УПОРЯДОЧИТЬ ПО
| ФизЛицо,
| МесяцНалоговогоПериода
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Доходы.ФизЛицо КАК ФизЛицо,
| Доходы.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| Доходы.Подразделение КАК Подразделение,
| СУММА(Доходы.СуммаДохода) КАК СуммаДохода
|ИЗ
| (ВЫБРАТЬ
| ПериодыФизлиц.ФизЛицо КАК ФизЛицо,
| НАЧАЛОПЕРИОДА(ПериодыФизлиц.МесяцНалоговогоПериода, МЕСЯЦ) КАК МесяцНалоговогоПериода,
| СведенияОДоходахНДФЛ.ПодразделениеОрганизации КАК Подразделение,
| ЕСТЬNULL(СведенияОДоходахНДФЛ.СуммаДохода, 0) - ВЫБОР
| КОГДА ПериодыФизлиц.Резидент
| ТОГДА ЕСТЬNULL(СведенияОДоходахНДФЛ.СуммаВычета, 0)
| КОГДА СведенияОДоходахНДФЛ.КодВычета.НеПредоставляетсяНерезидентам
| ТОГДА 0
| ИНАЧЕ ЕСТЬNULL(СведенияОДоходахНДФЛ.СуммаВычета, 0)
| КОНЕЦ КАК СуммаДохода
| ИЗ
| ВТПериодыФизлиц КАК ПериодыФизлиц
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НДФЛСведенияОДоходах КАК СведенияОДоходахНДФЛ
| ПО ПериодыФизлиц.ФизЛицо = СведенияОДоходахНДФЛ.ФизЛицо
| И (ПериодыФизлиц.МесяцНалоговогоПериода = НАЧАЛОПЕРИОДА(СведенияОДоходахНДФЛ.Период, МЕСЯЦ))
| И (СведенияОДоходахНДФЛ.Организация = &ГоловнаяОрганизация)
| И (СведенияОДоходахНДФЛ.КодДохода.СтавкаНалогообложенияРезидента = ЗНАЧЕНИЕ(Перечисление.НДФЛСтавкиНалогообложенияРезидента.Ставка13))
| И ((НЕ СведенияОДоходахНДФЛ.КодДохода.НеОблагаетсяУНалоговогоАгента))
| И (СведенияОДоходахНДФЛ.ПериодРегистрации <= &КонецМесяцаРасчета)) КАК Доходы
|
|СГРУППИРОВАТЬ ПО
| Доходы.ФизЛицо,
| Доходы.МесяцНалоговогоПериода,
| Доходы.Подразделение
|
|УПОРЯДОЧИТЬ ПО
| ФизЛицо,
| МесяцНалоговогоПериода,
| Подразделение
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ФизЛицо КАК ФизЛицо,
| НАЧАЛОПЕРИОДА(РасчетыНалогоплательщиковСБюджетомПоНДФЛ.МесяцНалоговогоПериода, МЕСЯЦ) КАК МесяцНалоговогоПериода,
| РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ПодразделениеОрганизации КАК Подразделение,
| -СУММА(РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Налог) КАК Налог
|ИЗ
| РегистрНакопления.НДФЛРасчетыСБюджетом КАК РасчетыНалогоплательщиковСБюджетомПоНДФЛ
|ГДЕ
| РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Регистратор <> &Регистратор
| И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ВидСтроки = ЗНАЧЕНИЕ(Перечисление.НДФЛРасчетыСБюджетомВидСтроки.Начисление)
| И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.МесяцНалоговогоПериода МЕЖДУ &НачалоГодаПериодаРасчета И &КонецПериодаРасчета
| И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.СтавкаНалогообложенияРезидента = ЗНАЧЕНИЕ(Перечисление.НДФЛСтавкиНалогообложенияРезидента.Ставка13)
| И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Организация = &ГоловнаяОрганизация
| И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ФизЛицо В
| (ВЫБРАТЬ
| СписокСотрудников.ФизЛицо
| ИЗ
| ВТСписокФизЛиц КАК СписокСотрудников)
| И РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Период <= &КонецМесяцаРасчета
|
|СГРУППИРОВАТЬ ПО
| РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ПодразделениеОрганизации,
| РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ФизЛицо,
| РасчетыНалогоплательщиковСБюджетомПоНДФЛ.МесяцНалоговогоПериода
|
|УПОРЯДОЧИТЬ ПО
| ФизЛицо,
| МесяцНалоговогоПериода,
| Подразделение
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| НДФЛПредоставленныеСтандартныеВычеты.ФизЛицо КАК ФизЛицо,
| НДФЛПредоставленныеСтандартныеВычеты.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| НДФЛПредоставленныеСтандартныеВычеты.Подразделение КАК Подразделение,
| МАКСИМУМ(ВЫБОР
| КОГДА НДФЛПредоставленныеСтандартныеВычеты.КодВычета В (ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код103), ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код104), ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код105))
| ТОГДА НДФЛПредоставленныеСтандартныеВычеты.КодВычета
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.ПустаяСсылка)
| КОНЕЦ) КАК КодВычетаЛичный,
| СУММА(ВЫБОР
| КОГДА НДФЛПредоставленныеСтандартныеВычеты.КодВычета В (ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код103), ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код104), ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код105))
| ТОГДА -НДФЛПредоставленныеСтандартныеВычеты.СуммаОборот
| ИНАЧЕ 0
| КОНЕЦ) КАК ПримененныйВычетЛичный,
| СУММА(ВЫБОР
| КОГДА НДФЛПредоставленныеСтандартныеВычеты.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код101)
| ТОГДА -НДФЛПредоставленныеСтандартныеВычеты.СуммаОборот
| ИНАЧЕ 0
| КОНЕЦ) КАК ПримененныйВычетНаДетей,
| СУММА(ВЫБОР
| КОГДА НДФЛПредоставленныеСтандартныеВычеты.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код102)
| ТОГДА -НДФЛПредоставленныеСтандартныеВычеты.СуммаОборот
| ИНАЧЕ 0
| КОНЕЦ) КАК ПримененныйВычетНаДетейДвойной,
| СУММА(ВЫБОР
| КОГДА НДФЛПредоставленныеСтандартныеВычеты.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код111)
| ТОГДА -НДФЛПредоставленныеСтандартныеВычеты.СуммаОборот
| ИНАЧЕ 0
| КОНЕЦ) КАК ПримененныйВычетНаДетейДвойнойВторой,
| СУММА(ВЫБОР
| КОГДА НДФЛПредоставленныеСтандартныеВычеты.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код106)
| ТОГДА -НДФЛПредоставленныеСтандартныеВычеты.СуммаОборот
| ИНАЧЕ 0
| КОНЕЦ) КАК ПримененныйВычетНаДетейИнвалидов,
| СУММА(ВЫБОР
| КОГДА НДФЛПредоставленныеСтандартныеВычеты.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код107)
| ТОГДА -НДФЛПредоставленныеСтандартныеВычеты.СуммаОборот
| ИНАЧЕ 0
| КОНЕЦ) КАК ПримененныйВычетНаДетейИнвалидовДвойной,
| СУММА(ВЫБОР
| КОГДА НДФЛПредоставленныеСтандартныеВычеты.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код113)
| ТОГДА -НДФЛПредоставленныеСтандартныеВычеты.СуммаОборот
| ИНАЧЕ 0
| КОНЕЦ) КАК ПримененныйВычетНаДетейИнвалидовДвойнойВторой
|ИЗ
| ВТПредоставленныеСтандартныеИСоциальныеВычеты КАК НДФЛПредоставленныеСтандартныеВычеты
|
|СГРУППИРОВАТЬ ПО
| НДФЛПредоставленныеСтандартныеВычеты.Подразделение,
| НДФЛПредоставленныеСтандартныеВычеты.МесяцНалоговогоПериода,
| НДФЛПредоставленныеСтандартныеВычеты.ФизЛицо
|
|УПОРЯДОЧИТЬ ПО
| ФизЛицо,
| МесяцНалоговогоПериода,
| Подразделение
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Периоды.ФизЛицо КАК ФизЛицо,
| Периоды.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| ИмущественныеВычеты.Подразделение КАК Подразделение,
| СУММА(ВЫБОР
| КОГДА ИмущественныеВычеты.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код311)
| ТОГДА -ИмущественныеВычеты.Сумма
| ИНАЧЕ 0
| КОНЕЦ) КАК ПримененныйВычетИмущественныйРасход,
| СУММА(ВЫБОР
| КОГДА ИмущественныеВычеты.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код312)
| ТОГДА -ИмущественныеВычеты.Сумма
| ИНАЧЕ 0
| КОНЕЦ) КАК ПримененныйВычетИмущественныйПроцентыПоКредитам,
| СУММА(ВЫБОР
| КОГДА ИмущественныеВычеты.КодВычета = ЗНАЧЕНИЕ(Справочник.ВычетыНДФЛ.Код318)
| ТОГДА -ИмущественныеВычеты.Сумма
| ИНАЧЕ 0
| КОНЕЦ) КАК ПримененныйВычетИмущественныйПроцентыПриПерекредитовании
|ИЗ
| ВТПериодыФизлиц КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПредоставленоИмущественныхВычетов КАК ИмущественныеВычеты
| ПО Периоды.ФизЛицо = ИмущественныеВычеты.ФизЛицо
| И Периоды.МесяцНалоговогоПериода = ИмущественныеВычеты.МесяцНалоговогоПериода
|ГДЕ
| ИмущественныеВычеты.Подразделение ЕСТЬ НЕ NULL
|
|СГРУППИРОВАТЬ ПО
| ИмущественныеВычеты.Подразделение,
| Периоды.МесяцНалоговогоПериода,
| Периоды.ФизЛицо
|
|УПОРЯДОЧИТЬ ПО
| ФизЛицо,
| МесяцНалоговогоПериода,
| Подразделение";
Результат = Запрос.ВыполнитьПакет();

ВсегоРезультатов = Результат.Количество();
ВыборкаРасчетов = Результат[ВсегоРезультатов - 6].Выбрать();

ПравоНаИмущественныеВычеты = Результат[ВсегоРезультатов - 5].Выгрузить();
ПравоНаИмущественныеВычеты.Индексы.Добавить("ФизЛицо, МесяцНалоговогоПериода");

РаспределениеДоходовПоПодразделениям = Результат[ВсегоРезультатов - 4].Выгрузить();
РаспределениеДоходовПоПодразделениям.Индексы.Добавить("ФизЛицо, МесяцНалоговогоПериода");

ИсчисленоРанее = Результат[ВсегоРезультатов - 3].Выгрузить();
СтандартныхВычетовРанее = Результат[ВсегоРезультатов - 2].Выгрузить();
ИмущественныхВычетовРанее = Результат[ВсегоРезультатов - 1].Выгрузить();

РаспределятьПоПодразделениям = Не ВозвращатьДанныеРасчетовБезПодразделений;

ТипНалог = Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(13,0));
ТипВычет = Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15,2));
РезультатыРасчетов = СтандартныхВычетовРанее.СкопироватьКолонки();
РезультатыРасчетов.Колонки.Добавить("Налог",ТипНалог);
РезультатыРасчетов.Колонки.Добавить("ПримененныйВычетИмущественныйРасход",ТипВычет);
РезультатыРасчетов.Колонки.Добавить("ПримененныйВычетИмущественныйПроцентыПоКредитам",ТипВычет);
РезультатыРасчетов.Колонки.Добавить("ПримененныйВычетИмущественныйПроцентыПриПерекредитовании",ТипВычет);

Если ВозвращатьДанныеРасчетовБезПодразделений Тогда
РезультатыРасчетов.Колонки.Добавить("Резидент", Новый ОписаниеТипов("Булево"));
РезультатыРасчетов.Колонки.Добавить("ОблагаемыйДоходНарастающимИтогом",ТипВычет);
РезультатыРасчетов.Колонки.Добавить("ОграничениеПоДоходамЛичные",ТипВычет);
РезультатыРасчетов.Колонки.Добавить("ОграничениеПоДоходамНаДетей",ТипВычет);
РезультатыРасчетов.Колонки.Добавить("ВычетЛичныйЗаМесяц",ТипВычет);
РезультатыРасчетов.Колонки.Добавить("ВычетНаДетейИнвалидовДвойнойВторойЗаМесяц",ТипВычет);
РезультатыРасчетов.Колонки.Добавить("ВычетНаДетейИнвалидовДвойнойЗаМесяц",ТипВычет);
РезультатыРасчетов.Колонки.Добавить("ВычетНаДетейИнвалидовЗаМесяц",ТипВычет);
РезультатыРасчетов.Колонки.Добавить("ВычетНаДетейДвойнойВторойЗаМесяц",ТипВычет);
РезультатыРасчетов.Колонки.Добавить("ВычетНаДетейДвойнойЗаМесяц",ТипВычет);
РезультатыРасчетов.Колонки.Добавить("ВычетНаДетейЗаМесяц",ТипВычет);
РезультатыРасчетов.Колонки.Добавить("ВычетИмущественныйРасходыОстаток",ТипВычет);
РезультатыРасчетов.Колонки.Добавить("ВычетИмущественныйПроцентыПриПерекредитованииОстаток",ТипВычет);
РезультатыРасчетов.Колонки.Добавить("ВычетИмущественныйПроцентыПоКредитамОстаток",ТипВычет);
РезультатыРасчетов.Колонки.Добавить("НалогЗаМесяц",ТипВычет);
КонецЕсли;

Если РаспределятьПоПодразделениям Тогда
ВспомогательнаяТаблица = РезультатыРасчетов.СкопироватьКолонки();
СтрокаРесурсов = "Налог,ПримененныйВычетЛичный,ПримененныйВычетНаДетей,ПримененныйВычетНаДетейДвойной,ПримененныйВычетНаДетейДвойнойВторой,ПримененныйВычетНаДетейИнвалидов,ПримененныйВычетНаДетейИнвалидовДвойной,ПримененныйВычетНаДетейИнвалидовДвойнойВторой,ПримененныйВычетИмущественныйРасход,ПримененныйВычетИмущественныйПроцентыПоКредитам,ПримененныйВычетИмущественныйПроцентыПриПерекредитовании";
МассивРесурсов = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(СтрокаРесурсов);
КонецЕсли;

Если КомментироватьРасчет Тогда
КомментарийНДФЛ = ОбщегоНазначенияЗК.КомментарийРасчета("Расчет НДФЛ");
КонецЕсли;

СтруктураПоиска = Новый Структура("ФизЛицо, МесяцНалоговогоПериода");

Пока ВыборкаРасчетов.СледующийПоЗначениюПоля("Порядок") Цикл
Пока ВыборкаРасчетов.СледующийПоЗначениюПоля("ФизЛицо") Цикл

Если РаспределятьПоПодразделениям Тогда
СтруктураПоиска.ФизЛицо = ВыборкаРасчетов.ФизЛицо;
СтруктураПоиска.МесяцНалоговогоПериода = НачалоМесяца(ПериодРегистрации);
ДоходыМесяцаРасчета = РаспределениеДоходовПоПодразделениям.НайтиСтроки(СтруктураПоиска);
КоэффициентыПодразделенийМесяцаРасчета = ВыделитьКоэффициентыРаспределенияИзКоллекцииСтрок(ДоходыМесяцаРасчета, "СуммаДохода");
КонецЕсли;

Пока ВыборкаРасчетов.СледующийПоЗначениюПоля("НалоговыйПериод") Цикл

ВычетЛичныйОстаток = 0;
ВычетНаДетейОстаток = 0;
ВычетНаДетейДвойнойОстаток = 0;
ВычетНаДетейДвойнойВторойОстаток = 0;
ВычетНаДетейИнвалидовОстаток = 0;
ВычетНаДетейИнвалидовДвойнойОстаток = 0;
ВычетНаДетейИнвалидовДвойнойВторойОстаток = 0;
ВычетИмущественныйРасходыОстаток = 0;
ВычетИмущественныйПроцентыПоКредитамОстаток = 0;
ВычетИмущественныйПроцентыПриПерекредитованииОстаток = 0;
ВычетСоциальныйОстаток = 0;
ОблагаемыйДоход = 0;
ДоходЗаМесяцОстаток = 0;
НалогИсчисленный = 0;

Пока ВыборкаРасчетов.Следующий() Цикл

ЗаполнитьЗначенияСвойств(СтруктураПоиска,ВыборкаРасчетов);

Если РаспределятьПоПодразделениям Тогда
ВспомогательнаяТаблица.Очистить();
Доходы = РаспределениеДоходовПоПодразделениям.НайтиСтроки(СтруктураПоиска);
БазаРаспределения = 0;
Для каждого СтрокаРаспределения Из Доходы Цикл
БазаРаспределения = БазаРаспределения + СтрокаРаспределения.СуммаДохода;
КонецЦикла;
Если БазаРаспределения = 0 Тогда
// если доходов за прошлый месяц нет - будем использовать текущее распределение
Доходы = ДоходыМесяцаРасчета;
КоэффициентыПодразделений = КоэффициентыПодразделенийМесяцаРасчета;
Иначе
КоэффициентыПодразделений = ВыделитьКоэффициентыРаспределенияИзКоллекцииСтрок(Доходы, "СуммаДохода");
КонецЕсли;
ВписатьВРезультатЗарегистрированныеВУчетеДанныеНДФЛ(ВспомогательнаяТаблица, ИсчисленоРанее.НайтиСтроки(СтруктураПоиска), "Налог");
ВписатьВРезультатЗарегистрированныеВУчетеДанныеНДФЛ(ВспомогательнаяТаблица, СтандартныхВычетовРанее.НайтиСтроки(СтруктураПоиска), "ПримененныйВычетЛичный,ПримененныйВычетНаДетей,ПримененныйВычетНаДетейДвойной,ПримененныйВычетНаДетейДвойнойВторой,ПримененныйВычетНаДетейИнвалидов,ПримененныйВычетНаДетейИнвалидовДвойной,ПримененныйВычетНаДетейИнвалидовДвойнойВторой");
ВписатьВРезультатЗарегистрированныеВУчетеДанныеНДФЛ(ВспомогательнаяТаблица, ИмущественныхВычетовРанее.НайтиСтроки(СтруктураПоиска), "ПримененныйВычетИмущественныйРасход,ПримененныйВычетИмущественныйПроцентыПоКредитам,ПримененныйВычетИмущественныйПроцентыПриПерекредитовании");
КонецЕсли;

Если КомментироватьРасчет Тогда
КомментарийМесяца = ОбщегоНазначенияЗК.КомментарийРасчета("Расчет за " + Формат(ВыборкаРасчетов.МесяцНалоговогоПериода, "ДФ=ММММ"), КомментарийНДФЛ);
Если ВыборкаРасчетов.Резидент Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Статус: резидент РФ (или высококвалифицированный иностранный специалист)", КомментарийМесяца);
Иначе
ОбщегоНазначенияЗК.КомментарийРасчета("Статус: не является резидентом РФ", КомментарийМесяца,,, Перечисления.ВидыСообщений.ВажнаяИнформация);
КонецЕсли;
ОбщегоНазначенияЗК.КомментарийРасчета("Доход за период, всего: " + ВыборкаРасчетов.ОблагаемыйДоходЗаМесяц, КомментарийМесяца,,,, Ложь);
КонецЕсли;

Если ВыборкаРасчетов.Резидент Тогда

Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Облагаемый доход нарастающим итогом за год: " + ВыборкаРасчетов.ОблагаемыйДоходНарастающимИтогом, КомментарийМесяца);
КонецЕсли;

// Расчет сумм примененных вычетов и налога

ВычетЛичныйЗаМесяц = 0;
ВычетНаДетейЗаМесяц = 0;
ВычетНаДетейДвойнойЗаМесяц = 0;
ВычетНаДетейДвойнойВторойЗаМесяц = 0;
ВычетНаДетейИнвалидовЗаМесяц = 0;
ВычетНаДетейИнвалидовДвойнойЗаМесяц = 0;
ВычетНаДетейИнвалидовДвойнойВторойЗаМесяц = 0;
ВычетИмущественныйРасходыЗаМесяц = 0;
ВычетИмущественныйПроцентыПоКредитамЗаМесяц = 0;
ВычетИмущественныйПроцентыПриПерекредитованииЗаМесяц = 0;

ВычетСоциальныйОстаток = ВычетСоциальныйОстаток + ВыборкаРасчетов.СоциальныйВычет;
СтрокиПравНаИмущественныеВычеты = ПравоНаИмущественныеВычеты.НайтиСтроки(СтруктураПоиска);
Если СтрокиПравНаИмущественныеВычеты.Количество() > 0 Тогда
ВычетИмущественныйРасходыОстаток = ВычетИмущественныйРасходыОстаток + СтрокиПравНаИмущественныеВычеты[0].ВычетИмущественныйРасходы;
ВычетИмущественныйПроцентыПоКредитамОстаток = ВычетИмущественныйПроцентыПоКредитамОстаток + СтрокиПравНаИмущественныеВычеты[0].ВычетИмущественныйПроцентыПоКредитам;
ВычетИмущественныйПроцентыПриПерекредитованииОстаток = ВычетИмущественныйПроцентыПриПерекредитованииОстаток + СтрокиПравНаИмущественныеВычеты[0].ВычетИмущественныйПроцентыПриПерекредитовании;
КонецЕсли;
Если ВыборкаРасчетов.ОсобенностиУчетаВычетов = Перечисления.ОсобенностиИсчисленияНДФЛ.СтандартныеВычетыНарастающимИтогом Тогда
ДоходЗаМесяцОстаток = ДоходЗаМесяцОстаток + ВыборкаРасчетов.ОблагаемыйДоходЗаМесяц;
ВычетЛичныйОстаток = ВычетЛичныйОстаток + ВыборкаРасчетов.СтандартныеВычетыЛичные;
ВычетНаДетейОстаток = ВычетНаДетейОстаток + ВыборкаРасчетов.СтандартныеВычетыДетские;
ВычетНаДетейДвойнойОстаток = ВычетНаДетейДвойнойОстаток + ВыборкаРасчетов.СтандартныеВычетыДетскиеДвойные;
ВычетНаДетейДвойнойВторойОстаток = ВычетНаДетейДвойнойВторойОстаток + ВыборкаРасчетов.СтандартныеВычетыДетскиеДвойныеВторые;
ВычетНаДетейИнвалидовОстаток = ВычетНаДетейИнвалидовОстаток + ВыборкаРасчетов.СтандартныеВычетыДетскиеИнвалидов;
ВычетНаДетейИнвалидовДвойнойОстаток = ВычетНаДетейИнвалидовДвойнойОстаток + ВыборкаРасчетов.СтандартныеВычетыДетскиеИнвалидовДвойные;
ВычетНаДетейИнвалидовДвойнойВторойОстаток = ВычетНаДетейИнвалидовДвойнойВторойОстаток + ВыборкаРасчетов.СтандартныеВычетыДетскиеИнвалидовДвойныеВторые;
Иначе
ДоходЗаМесяцОстаток = ВыборкаРасчетов.ОблагаемыйДоходЗаМесяц;
Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Стандартные вычеты: применяются в пределах месячного дохода", КомментарийМесяца,,,, Ложь);
Если ДоходЗаМесяцОстаток = 0 Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Вычеты не применялись", КомментарийМесяца,,, Перечисления.ВидыСообщений.ВажнаяИнформация);
КонецЕсли;
КонецЕсли;
ВычетЛичныйОстаток = ВыборкаРасчетов.СтандартныеВычетыЛичные;
ВычетНаДетейОстаток = ВыборкаРасчетов.СтандартныеВычетыДетские;
ВычетНаДетейДвойнойОстаток = ВыборкаРасчетов.СтандартныеВычетыДетскиеДвойные;
ВычетНаДетейДвойнойВторойОстаток = ВыборкаРасчетов.СтандартныеВычетыДетскиеДвойныеВторые;
ВычетНаДетейИнвалидовОстаток = ВыборкаРасчетов.СтандартныеВычетыДетскиеИнвалидов;
ВычетНаДетейИнвалидовДвойнойОстаток = ВыборкаРасчетов.СтандартныеВычетыДетскиеИнвалидовДвойные;
ВычетНаДетейИнвалидовДвойнойВторойОстаток = ВыборкаРасчетов.СтандартныеВычетыДетскиеИнвалидовДвойныеВторые;
КонецЕсли;

Если ДоходЗаМесяцОстаток > 0 Тогда

ВычетСоциальныйЗаМесяц = Мин(ДоходЗаМесяцОстаток,ВычетСоциальныйОстаток);
ВычетСоциальныйОстаток = ВычетСоциальныйОстаток - ВычетСоциальныйЗаМесяц;
ДоходЗаМесяцОстаток = ДоходЗаМесяцОстаток - ВычетСоциальныйЗаМесяц;

Если ВыборкаРасчетов.КодВычетаЛичный = Справочники.ВычетыНДФЛ.Код103 Тогда
ВычетЛичныйЗаМесяц = Мин(ДоходЗаМесяцОстаток,ВычетЛичныйОстаток);
ВычетЛичныйОстаток = ВычетЛичныйОстаток - ВычетЛичныйЗаМесяц;
ДоходЗаМесяцОстаток = ДоходЗаМесяцОстаток - ВычетЛичныйЗаМесяц;
КонецЕсли;

ВычетНаДетейЗаМесяц = Мин(ДоходЗаМесяцОстаток,ВычетНаДетейОстаток);
ВычетНаДетейОстаток = ВычетНаДетейОстаток - ВычетНаДетейЗаМесяц;
ДоходЗаМесяцОстаток = ДоходЗаМесяцОстаток - ВычетНаДетейЗаМесяц;

ВычетНаДетейДвойнойЗаМесяц = Мин(ДоходЗаМесяцОстаток,ВычетНаДетейДвойнойОстаток);
ВычетНаДетейДвойнойОстаток = ВычетНаДетейДвойнойОстаток - ВычетНаДетейДвойнойЗаМесяц;
ДоходЗаМесяцОстаток = ДоходЗаМесяцОстаток - ВычетНаДетейДвойнойЗаМесяц;

ВычетНаДетейДвойнойВторойЗаМесяц = Мин(ДоходЗаМесяцОстаток,ВычетНаДетейДвойнойВторойОстаток);
ВычетНаДетейДвойнойВторойОстаток = ВычетНаДетейДвойнойВторойОстаток - ВычетНаДетейДвойнойВторойЗаМесяц;
ДоходЗаМесяцОстаток = ДоходЗаМесяцОстаток - ВычетНаДетейДвойнойВторойЗаМесяц;

ВычетНаДетейИнвалидовЗаМесяц = Мин(ДоходЗаМесяцОстаток,ВычетНаДетейИнвалидовОстаток);
ВычетНаДетейИнвалидовОстаток = ВычетНаДетейИнвалидовОстаток - ВычетНаДетейИнвалидовЗаМесяц;
ДоходЗаМесяцОстаток = ДоходЗаМесяцОстаток - ВычетНаДетейИнвалидовЗаМесяц;

ВычетНаДетейИнвалидовДвойнойЗаМесяц = Мин(ДоходЗаМесяцОстаток,ВычетНаДетейИнвалидовДвойнойОстаток);
ВычетНаДетейИнвалидовДвойнойОстаток = ВычетНаДетейИнвалидовДвойнойОстаток - ВычетНаДетейИнвалидовДвойнойЗаМесяц;
ДоходЗаМесяцОстаток = ДоходЗаМесяцОстаток - ВычетНаДетейИнвалидовДвойнойЗаМесяц;

ВычетНаДетейИнвалидовДвойнойВторойЗаМесяц = Мин(ДоходЗаМесяцОстаток,ВычетНаДетейИнвалидовДвойнойВторойОстаток);
ВычетНаДетейИнвалидовДвойнойВторойОстаток = ВычетНаДетейИнвалидовДвойнойВторойОстаток - ВычетНаДетейИнвалидовДвойнойВторойЗаМесяц;
ДоходЗаМесяцОстаток = ДоходЗаМесяцОстаток - ВычетНаДетейИнвалидовДвойнойВторойЗаМесяц;

Если ВыборкаРасчетов.КодВычетаЛичный <> Справочники.ВычетыНДФЛ.Код103 Тогда
ВычетЛичныйЗаМесяц = Мин(ДоходЗаМесяцОстаток,ВычетЛичныйОстаток);
ВычетЛичныйОстаток = ВычетЛичныйОстаток - ВычетЛичныйЗаМесяц;
ДоходЗаМесяцОстаток = ДоходЗаМесяцОстаток - ВычетЛичныйЗаМесяц;
КонецЕсли;

Если ВыборкаРасчетов.МесяцНалоговогоПериода >= ДатаЗакона229ФЗ Тогда
ДоходЗаМесяцОстаток = Макс(0, ВыборкаРасчетов.ОблагаемыйДоходЗаМесяц - ВычетСоциальныйЗаМесяц - ВычетЛичныйЗаМесяц - ВычетНаДетейЗаМесяц - ВычетНаДетейДвойнойЗаМесяц - ВычетНаДетейДвойнойВторойЗаМесяц - ВычетНаДетейИнвалидовЗаМесяц - ВычетНаДетейИнвалидовДвойнойЗаМесяц - ВычетНаДетейИнвалидовДвойнойВторойЗаМесяц);
КонецЕсли;

Если ДоходЗаМесяцОстаток > 0 Тогда

ВычетИмущественныйПроцентыПоКредитамЗаМесяц = Мин(ДоходЗаМесяцОстаток, ВычетИмущественныйПроцентыПоКредитамОстаток);
ВычетИмущественныйПроцентыПоКредитамОстаток = ВычетИмущественныйПроцентыПоКредитамОстаток - ВычетИмущественныйПроцентыПоКредитамЗаМесяц;
ДоходЗаМесяцОстаток = ДоходЗаМесяцОстаток - ВычетИмущественныйПроцентыПоКредитамЗаМесяц;

ВычетИмущественныйПроцентыПриПерекредитованииЗаМесяц = Мин(ДоходЗаМесяцОстаток, ВычетИмущественныйПроцентыПриПерекредитованииОстаток);
ВычетИмущественныйПроцентыПриПерекредитованииОстаток = ВычетИмущественныйПроцентыПриПерекредитованииОстаток - ВычетИмущественныйПроцентыПриПерекредитованииЗаМесяц;
ДоходЗаМесяцОстаток = ДоходЗаМесяцОстаток - ВычетИмущественныйПроцентыПриПерекредитованииЗаМесяц;

ВычетИмущественныйРасходыЗаМесяц = Мин(ДоходЗаМесяцОстаток, ВычетИмущественныйРасходыОстаток);
ВычетИмущественныйРасходыОстаток = ВычетИмущественныйРасходыОстаток - ВычетИмущественныйРасходыЗаМесяц;
ДоходЗаМесяцОстаток = ДоходЗаМесяцОстаток - ВычетИмущественныйРасходыЗаМесяц;

КонецЕсли;

Если РаспределятьПоПодразделениям Тогда
ВписатьРесурсВРезультатыРасчетовНДФЛ(ВспомогательнаяТаблица, ВыборкаРасчетов.МесяцНалоговогоПериода, ВычетЛичныйЗаМесяц, "ПримененныйВычетЛичный", ВыборкаРасчетов, Доходы, КоэффициентыПодразделений);
ВписатьРесурсВРезультатыРасчетовНДФЛ(ВспомогательнаяТаблица, ВыборкаРасчетов.МесяцНалоговогоПериода, ВычетНаДетейЗаМесяц, "ПримененныйВычетНаДетей", ВыборкаРасчетов, Доходы, КоэффициентыПодразделений);
ВписатьРесурсВРезультатыРасчетовНДФЛ(ВспомогательнаяТаблица, ВыборкаРасчетов.МесяцНалоговогоПериода, ВычетНаДетейДвойнойЗаМесяц, "ПримененныйВычетНаДетейДвойной", ВыборкаРасчетов, Доходы, КоэффициентыПодразделений);
ВписатьРесурсВРезультатыРасчетовНДФЛ(ВспомогательнаяТаблица, ВыборкаРасчетов.МесяцНалоговогоПериода, ВычетНаДетейДвойнойВторойЗаМесяц, "ПримененныйВычетНаДетейДвойнойВторой", ВыборкаРасчетов, Доходы, КоэффициентыПодразделений);
ВписатьРесурсВРезультатыРасчетовНДФЛ(ВспомогательнаяТаблица, ВыборкаРасчетов.МесяцНалоговогоПериода, ВычетНаДетейИнвалидовЗаМесяц, "ПримененныйВычетНаДетейИнвалидов", ВыборкаРасчетов, Доходы, КоэффициентыПодразделений);
ВписатьРесурсВРезультатыРасчетовНДФЛ(ВспомогательнаяТаблица, ВыборкаРасчетов.МесяцНалоговогоПериода, ВычетНаДетейИнвалидовДвойнойЗаМесяц, "ПримененныйВычетНаДетейИнвалидовДвойной", ВыборкаРасчетов, Доходы, КоэффициентыПодразделений);
ВписатьРесурсВРезультатыРасчетовНДФЛ(ВспомогательнаяТаблица, ВыборкаРасчетов.МесяцНалоговогоПериода, ВычетНаДетейИнвалидовДвойнойВторойЗаМесяц, "ПримененныйВычетНаДетейИнвалидовДвойнойВторой", ВыборкаРасчетов, Доходы, КоэффициентыПодразделений);
ВписатьРесурсВРезультатыРасчетовНДФЛ(ВспомогательнаяТаблица, ВыборкаРасчетов.МесяцНалоговогоПериода, ВычетИмущественныйРасходыЗаМесяц, "ПримененныйВычетИмущественныйРасход", ВыборкаРасчетов, Доходы, КоэффициентыПодразделений);
ВписатьРесурсВРезультатыРасчетовНДФЛ(ВспомогательнаяТаблица, ВыборкаРасчетов.МесяцНалоговогоПериода, ВычетИмущественныйПроцентыПоКредитамЗаМесяц, "ПримененныйВычетИмущественныйПроцентыПоКредитам", ВыборкаРасчетов, Доходы, КоэффициентыПодразделений);
ВписатьРесурсВРезультатыРасчетовНДФЛ(ВспомогательнаяТаблица, ВыборкаРасчетов.МесяцНалоговогоПериода, ВычетИмущественныйПроцентыПриПерекредитованииЗаМесяц, "ПримененныйВычетИмущественныйПроцентыПриПерекредитовании", ВыборкаРасчетов, Доходы, КоэффициентыПодразделений);
КонецЕсли;

Если КомментироватьРасчет Тогда
Если ВычетЛичныйЗаМесяц + ВычетНаДетейЗаМесяц + ВычетНаДетейДвойнойЗаМесяц + ВычетНаДетейДвойнойВторойЗаМесяц + ВычетНаДетейИнвалидовЗаМесяц + ВычетНаДетейИнвалидовДвойнойЗаМесяц + ВычетНаДетейИнвалидовДвойнойВторойЗаМесяц + ВычетИмущественныйПроцентыПоКредитамЗаМесяц + ВычетИмущественныйПроцентыПриПерекредитованииЗаМесяц + ВычетИмущественныйРасходыЗаМесяц <> 0 Тогда

КомментарийВычетов = ОбщегоНазначенияЗК.КомментарийРасчета("Примененные вычеты, всего: " + (ВычетЛичныйЗаМесяц + ВычетНаДетейЗаМесяц + ВычетНаДетейДвойнойЗаМесяц + ВычетНаДетейДвойнойВторойЗаМесяц + ВычетНаДетейИнвалидовЗаМесяц + ВычетНаДетейИнвалидовДвойнойЗаМесяц + ВычетНаДетейИнвалидовДвойнойВторойЗаМесяц + ВычетИмущественныйПроцентыПоКредитамЗаМесяц + ВычетИмущественныйПроцентыПриПерекредитованииЗаМесяц + ВычетИмущественныйРасходыЗаМесяц), КомментарийМесяца);
Если ВычетЛичныйЗаМесяц <> 0 Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Примененный личный вычет: " + ВычетЛичныйЗаМесяц, КомментарийВычетов);
КонецЕсли;
Если ВычетНаДетейЗаМесяц <> 0 Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Примененный вычет на детей: " + ВычетНаДетейЗаМесяц, КомментарийВычетов);
КонецЕсли;
Если ВычетНаДетейДвойнойЗаМесяц + ВычетНаДетейДвойнойВторойЗаМесяц <> 0 Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Примененный вычет на детей (двойной): " + (ВычетНаДетейДвойнойЗаМесяц + ВычетНаДетейДвойнойВторойЗаМесяц), КомментарийВычетов);
КонецЕсли;
Если ВычетНаДетейИнвалидовЗаМесяц <> 0 Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Примененный вычет на детей-инвалидов: " + ВычетНаДетейИнвалидовЗаМесяц, КомментарийВычетов);
КонецЕсли;
Если ВычетНаДетейИнвалидовДвойнойЗаМесяц + ВычетНаДетейИнвалидовДвойнойВторойЗаМесяц <> 0 Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Примененный вычет на детей-инвалидов (двойной): " + (ВычетНаДетейИнвалидовДвойнойЗаМесяц + ВычетНаДетейИнвалидовДвойнойВторойЗаМесяц), КомментарийВычетов);
КонецЕсли;
Если ВычетИмущественныйПроцентыПоКредитамЗаМесяц + ВычетИмущественныйПроцентыПриПерекредитованииЗаМесяц <> 0 Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Вычеты на погашение процентов по ипотеке: " + (ВычетИмущественныйПроцентыПоКредитамЗаМесяц + ВычетИмущественныйПроцентыПриПерекредитованииЗаМесяц), КомментарийВычетов);
КонецЕсли;
Если ВычетИмущественныйРасходыЗаМесяц <> 0 Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Вычеты по расходам на строительство: " + ВычетИмущественныйРасходыЗаМесяц, КомментарийВычетов);
КонецЕсли;
Иначе
ОбщегоНазначенияЗК.КомментарийРасчета("Вычеты не применялись", КомментарийМесяца,,, Перечисления.ВидыСообщений.ВажнаяИнформация);
КонецЕсли;
КонецЕсли;

ОблагаемыйДоход = ОблагаемыйДоход + ВыборкаРасчетов.ОблагаемыйДоходЗаМесяц - (ВычетЛичныйЗаМесяц + ВычетНаДетейЗаМесяц + ВычетНаДетейДвойнойЗаМесяц + ВычетНаДетейДвойнойВторойЗаМесяц + ВычетНаДетейИнвалидовЗаМесяц + ВычетНаДетейИнвалидовДвойнойЗаМесяц + ВычетНаДетейИнвалидовДвойнойВторойЗаМесяц + ВычетИмущественныйПроцентыПоКредитамЗаМесяц + ВычетИмущественныйПроцентыПриПерекредитованииЗаМесяц + ВычетИмущественныйРасходыЗаМесяц);

КонецЕсли;

НалогЗаМесяц = Окр(ОблагаемыйДоход * ВыборкаРасчетов.СтавкаДляРезидента) - НалогИсчисленный;
НалогИсчисленный = НалогИсчисленный + НалогЗаМесяц;

Если ВозвращатьДанныеРасчетовБезПодразделений Тогда

СтрокаРезультата = РезультатыРасчетов.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаРезультата, ВыборкаРасчетов, "ФизЛицо, МесяцНалоговогоПериода, Резидент, ОблагаемыйДоходНарастающимИтогом, ОграничениеПоДоходамЛичные, ОграничениеПоДоходамНаДетей");
СтрокаРезультата.ВычетЛичныйЗаМесяц = ВычетЛичныйЗаМесяц;
СтрокаРезультата.ВычетНаДетейИнвалидовДвойнойВторойЗаМесяц = ВычетНаДетейИнвалидовДвойнойВторойЗаМесяц;
СтрокаРезультата.ВычетНаДетейИнвалидовДвойнойЗаМесяц = ВычетНаДетейИнвалидовДвойнойЗаМесяц;
СтрокаРезультата.ВычетНаДетейИнвалидовЗаМесяц = ВычетНаДетейИнвалидовЗаМесяц;
СтрокаРезультата.ВычетНаДетейДвойнойВторойЗаМесяц = ВычетНаДетейДвойнойВторойЗаМесяц;
СтрокаРезультата.ВычетНаДетейДвойнойЗаМесяц = ВычетНаДетейДвойнойЗаМесяц;
СтрокаРезультата.ВычетНаДетейЗаМесяц = ВычетНаДетейЗаМесяц;
СтрокаРезультата.ВычетИмущественныйРасходыОстаток = ВычетИмущественныйРасходыОстаток;
СтрокаРезультата.ВычетИмущественныйПроцентыПриПерекредитованииОстаток = ВычетИмущественныйПроцентыПриПерекредитованииОстаток;
СтрокаРезультата.ВычетИмущественныйПроцентыПоКредитамОстаток = ВычетИмущественныйПроцентыПоКредитамОстаток;
СтрокаРезультата.НалогЗаМесяц = НалогЗаМесяц;

КонецЕсли;

Если КомментироватьРасчет Тогда
РанееНалогИсчисленный = ИсчисленоРанее.Скопировать(ИсчисленоРанее.НайтиСтроки(СтруктураПоиска),"Налог");
РанееНалогИсчисленный = РанееНалогИсчисленный.Итог("Налог");
Если РанееНалогИсчисленный <> 0 Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Исчисленный ранее налог нарастающим итогом за год: " + РанееНалогИсчисленный, КомментарийМесяца);
КонецЕсли;
ОбщегоНазначенияЗК.КомментарийРасчета("Результат расчета за " + Формат(ВыборкаРасчетов.МесяцНалоговогоПериода, "ДФ=ММММ") + ": " + НалогЗаМесяц, КомментарийНДФЛ);
КонецЕсли;

Иначе

НалогЗаМесяц = ВыборкаРасчетов.НалогЗаМесяц;

Если КомментироватьРасчет Тогда
ОбщегоНазначенияЗК.КомментарийРасчета("Результат расчета за " + Формат(ВыборкаРасчетов.МесяцНалоговогоПериода, "ДФ=ММММ") + ": " + НалогЗаМесяц, КомментарийНДФЛ);
КонецЕсли;

Если ВозвращатьДанныеРасчетовБезПодразделений Тогда
ЗаполнитьЗначенияСвойств(РезультатыРасчетов.Добавить(),ВыборкаРасчетов,"ФизЛицо, МесяцНалоговогоПериода, Резидент");
КонецЕсли;

КонецЕсли;

Если РаспределятьПоПодразделениям Тогда

ВписатьРесурсВРезультатыРасчетовНДФЛ(ВспомогательнаяТаблица, ВыборкаРасчетов.МесяцНалоговогоПериода, НалогЗаМесяц, "Налог", ВыборкаРасчетов, Доходы, КоэффициентыПодразделений);

ВспомогательнаяТаблица.Свернуть("ФизЛицо, МесяцНалоговогоПериода,Подразделение", СтрокаРесурсов);
Для каждого СтрокаТЗ Из ВспомогательнаяТаблица Цикл
ЕстьДанныеВСтроке = Ложь;
Для каждого ИмяРесурса Из МассивРесурсов Цикл
ЕстьДанныеВСтроке = СтрокаТЗ[ИмяРесурса] <> 0;
Если ЕстьДанныеВСтроке Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Если ЕстьДанныеВСтроке Тогда
ЗаполнитьЗначенияСвойств(РезультатыРасчетов.Добавить(),СтрокаТЗ);
КонецЕсли;
КонецЦикла;

КонецЕсли;

КонецЦикла;

КонецЦикла;
КонецЦикла;
КонецЦикла;

Если РаспределятьПоПодразделениям Тогда
РезультатыРасчетов.Колонки.Подразделение.Имя = "ПодразделениеОрганизации";
КонецЕсли;

Возврат РезультатыРасчетов;

КонецФункции // ПолучитьДанныеНДФЛПоРегистратору
 
  Способ обхода: Использовать соответствующую Налоговому кодексу настройку "Стандартные вычеты применяются нарастающим итогом в течение налогового периода".  
  Исправлено в релизе: 2.5.32  
 
  Код ошибки: 10073027  
  Дата публикации: 01.02.2011 15:17:44  
  Дата последнего изменения: 01.02.2011 0:00:00  
  Описание: Если сотруднику назначено плановое начисление с формулой, использующей, помимо расчетной базы, другие показатели, например:
Расчетная база * ОценитьПо(Сдельная выработка/Тарифная ставка часовая/Время в часах * 100,Шкала оценки)
и при этом показатели окажутся незаданными (в приведенном примере - при отсутствии сдельных нарядов на сотрудника), то при расчете вместо описания проблемы в окне сообщений программы выдается сообщение об ошибке.
 
  Исправлено в релизе: 2.5.32  
 
  Код ошибки: 10073008  
  Дата публикации: 01.02.2011 15:11:06  
  Дата последнего изменения: 01.02.2011 0:00:00  
  Описание: В интерфейсе "Расчет зарплаты организаций" отсутствуют пункты непосредственного вызова справок о доходах за 2010 год.  
  Планируется исправить в релизе: 2.5.32  
 
  Код ошибки: 10072947  
  Дата публикации: 01.02.2011 15:10:47  
  Дата последнего изменения: 01.02.2011 0:00:00  
  Описание: Для видов расчета с предопределенным способом расчета "Фиксированной суммой", в поле ввода суммы формат устанавливает 3 знака после запятой вместо 2-х.  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10072936  
  Дата публикации: 01.02.2011 15:10:18  
  Дата последнего изменения: 01.02.2011 0:00:00  
  Описание: Если в записях о гражданстве физических лиц для одного физлица в течение одного месяца имеются две записи, процедура обновления не будет выполнена - выдается сообщение об ошибке.  
  Способ исправления: Процедуру ПереносСведенийОРезидентстве() о.м. ПроцедурыОбновленияИнформационнойБазы заменить следующим фрагментом

Процедура ПереносСведенийОРезидентстве() Экспорт

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ГражданствоФизЛиц.ФизЛицо
|ПОМЕСТИТЬ ВТФизлица
|ИЗ
| РегистрСведений.ГражданствоФизЛиц КАК ГражданствоФизЛиц
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусФизЛицКакНалогоплательщиковНДФЛ КАК СтатусФизЛицКакНалогоплательщиковНДФЛ
| ПО ГражданствоФизЛиц.ФизЛицо = СтатусФизЛицКакНалогоплательщиковНДФЛ.ФизЛицо
| И (НАЧАЛОПЕРИОДА(ГражданствоФизЛиц.Период, МЕСЯЦ) = СтатусФизЛицКакНалогоплательщиковНДФЛ.Период)
|ГДЕ
| ГражданствоФизЛиц.УдалитьНеЯвляетсяНалоговымРезидентомРФ
| И СтатусФизЛицКакНалогоплательщиковНДФЛ.ФизЛицо ЕСТЬ NULL
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Физлица.ФизЛицо,
| НАЧАЛОПЕРИОДА(ГражданствоФизЛиц.Период, МЕСЯЦ) КАК Период,
| МАКСИМУМ(ГражданствоФизЛиц.Период) КАК ПериодГражданства
|ПОМЕСТИТЬ ВТФизлицаСДатами
|ИЗ
| ВТФизлица КАК Физлица
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГражданствоФизЛиц КАК ГражданствоФизЛиц
| ПО Физлица.ФизЛицо = ГражданствоФизЛиц.ФизЛицо
|
|СГРУППИРОВАТЬ ПО
| Физлица.ФизЛицо,
| НАЧАЛОПЕРИОДА(ГражданствоФизЛиц.Период, МЕСЯЦ)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВЫБОР
| КОГДА ГражданствоФизЛиц.УдалитьНеЯвляетсяНалоговымРезидентомРФ
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СтатусыНалогоплательщиковПоНДФЛ.НеРезидент)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СтатусыНалогоплательщиковПоНДФЛ.Резидент)
| КОНЕЦ КАК Статус,
| ФизлицаКОбработке.Период,
| ФизлицаКОбработке.ФизЛицо КАК ФизЛицо
|ИЗ
| ВТФизлицаСДатами КАК ФизлицаКОбработке
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГражданствоФизЛиц КАК ГражданствоФизЛиц
| ПО ФизлицаКОбработке.ФизЛицо = ГражданствоФизЛиц.ФизЛицо
| И ФизлицаКОбработке.ПериодГражданства = ГражданствоФизЛиц.Период
|
|УПОРЯДОЧИТЬ ПО
| ФизЛицо";

ТекстСообщения = "Обновление данных о резидентстве сотрудников";

#Если Клиент Тогда
Состояние(ТекстСообщения + ": подготовка данных ...");
#КонецЕсли

Выборка = Запрос.Выполнить().Выбрать();
#Если Клиент Тогда
ВсегоДоков = Выборка.Количество();
Номер = 1;
Состояние(ТекстСообщения + ": обработано 0 из " + ВсегоДоков);
#КонецЕсли
НаборЗаписей = РегистрыСведений.СтатусФизЛицКакНалогоплательщиковНДФЛ.СоздатьНаборЗаписей();
НаборЗаписей.ОбменДанными.Загрузка = Истина;
Пока Выборка.СледующийПоЗначениюПоля("ФизЛицо") Цикл
НаборЗаписей.Отбор.ФизЛицо.Установить(Выборка.ФизЛицо);
Пока Выборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(),Выборка);
#Если Клиент Тогда
Если Номер % 30 = 0 Тогда
Состояние(ТекстСообщения + ": обработано " + Номер + " из " + ВсегоДоков);
КонецЕсли;
Номер = Номер + 1;
#КонецЕсли
КонецЦикла;
НаборЗаписей.Записать();
НаборЗаписей.Очистить();
КонецЦикла;
#Если Клиент Тогда
Состояние(ТекстСообщения + ": обработано " + ВсегоДоков + " из " + ВсегоДоков);
#КонецЕсли

КонецПроцедуры
 
  Способ обхода: Проверить наличие двух записей о гражданстве для одного физлица в течение одного месяца, если таковые есть - из двух оставить последнюю по времени.  
  Исправлено в релизе: 2.5.32  
 
  Код ошибки: 10072801  
  Дата публикации: 01.02.2011 15:05:17  
  Дата последнего изменения: 01.02.2011 0:00:00  
  Описание: В справке 2-НДФЛ за 2010 год неточно выводятся несколько сумм вычетов к одному доходу с кодом 1530.  
  Исправлено в релизе: 2.5.32  
 
  Код ошибки: 10072341  
  Дата публикации: 01.02.2011 15:02:54  
  Дата последнего изменения: 01.02.2011 0:00:00  
  Описание: В списке задач не создаются задачи по дням рождения по тем сотрудникам, по которым существуют прошлогодние задачи по дням рождения.  
  Исправлено в релизе: 2.5.32  
 
  Код ошибки: 10072200  
  Дата публикации: 21.01.2011 17:16:31  
  Дата последнего изменения: 21.01.2011 0:00:00  
  Описание: Неверно определяется тарифная ставка в расчетных документах при заполнении показателей в строке, если она задана по-разному для разных начислений.  
  Планируется исправить в релизе: 2.5.33  
 
  Код ошибки: 10071893  
  Дата публикации: 18.01.2011 16:50:17  
  Дата последнего изменения: 28.01.2011 0:00:00  
  Описание: Неверно заполняются данные о доходах для расчета пособий соц. страхования за 2009 год в том случае, когда сотруднику в 2009 году начислялась материальная помощь, не облагавшаяся ранее ЕСН целиком, - не учитывается скидка.  
 
  Код ошибки: 10070493  
  Дата публикации: 23.12.2010 16:29:53  
  Дата последнего изменения: 23.12.2010 0:00:00  
  Описание: Отчет "Расчетная ведомость" неверно отображает данные колонки "Начальное сальдо".  
  Исправлено в релизе: 2.5.32  
 
  Код ошибки: 10042205  
  Дата публикации: 30.11.2010 17:28:39  
  Дата последнего изменения: 30.11.2010 0:00:00  
  Описание: При расчете б/л в 2010 году по сотруднику, работавшему ранее по основному месту работы и по внутреннему совместительству, не учитывается заработок по внутреннему совместительству, если на дату начала болезни со внутреннего совместительства сотрудник был уволен.  
 
  Код ошибки: 10064714  
  Дата публикации: 15.10.2010 15:48:18  
  Дата последнего изменения: 15.10.2010 0:00:00  
  Описание: При попытке пересчетать документ "Оплата сверхурочных часов" после повышения окладов "задним числом" при помощи обработки "Перерасчет зарплаты по предприятию" создаваемый документ не заполняется.  
 
  Код ошибки: 10064453  
  Дата публикации: 15.10.2010 15:47:53  
  Дата последнего изменения: 15.10.2010 0:00:00  
  Описание: Отч. "Медицинское страхование" не показывает адрес и телефон для новых незастрахованных сотрудников.  
 
  Код ошибки: 10057489  
  Дата публикации: 15.10.2010 15:47:11  
  Дата последнего изменения: 15.10.2010 0:00:00  
  Описание: В печатных формах могут неверно склоняться некоторые мужские фамилии, оканчивающиеся на "-ий" после согласной.  
 
  Код ошибки: 10050537  
  Дата публикации: 15.10.2010 15:45:46  
  Дата последнего изменения: 15.10.2010 0:00:00  
  Описание: Оформлен первичный больничный лист, затем продолжение больничного и в нем указана дата нарушения режима, при оформлении второго продолжения больничного, в него не переносится информация о дате нарушения режима.  
 
  Код ошибки: 10029695  
  Дата публикации: 31.08.2010 15:45:40  
  Дата последнего изменения: 31.08.2010 0:00:00  
  Описание: Отчет "4-ФСС". Раздел 3, таблица 9. Заполнение колонок 7, 8, 10, 11.
При заполнении вручную скидок и надбавок к страховому тарифу неверно происходит авторасчет итоговой 11 колонки. К введенной уже с учетом скидок и надбавок ставке взноса в ФСС от несчастного случая (колонка 7), прибавляются введенные в ручную размеры скидок и надбавок и отражается в итоговой колонке 11.
 
  Способ обхода: После заполнения отчета необходимо отключить авторасчет вычисляемых ячеек (соответствующий флаг в шапке отчета) и внести правильные процентные ставки.  
 
  Код ошибки: 10056615  
  Дата публикации: 27.07.2010 15:12:00  
  Дата последнего изменения: 27.07.2010 0:00:00  
  Описание: При создании на основании документа "Зарплата к выплате организаций" документа "Платежное поручение исходящее", на вкладке "Печать" не заполняется наименование плательщика.  
 
  Код ошибки: 10058700  
  Дата публикации: 08.07.2010 14:55:30  
  Дата последнего изменения: 08.07.2010 0:00:00  
  Описание: В документе-исправлении <Начисление зарплаты> у видов расчета с произвольной формулой неверно рассчитывается показатель <Отработано времени в днях>.  
 
  Код ошибки: 10043804  
  Дата публикации: 23.12.2009 16:19:37  
  Дата последнего изменения: 23.12.2009 0:00:00  
  Описание: В документе "Оплата сверхурочных часов" не пересчитывается в часовую тарифная ставка из произвольной формулы - всегда получается 0.  
 
  Код ошибки: 10036015  
  Дата публикации: 15.10.2009 16:26:59  
  Дата последнего изменения: 15.10.2009 0:00:00  
  Описание: После исправления кадрового документа в обработке "Анализ неявок", исходное кадровое событие не показывается, отчего расчетный документ, оформленный по устаревшим кадровым данным, сопоставляется с исправленным кадровым событием.  
 
  Код ошибки: 10036185  
  Дата публикации: 15.10.2009 16:22:55  
  Дата последнего изменения: 15.10.2009 0:00:00  
  Описание: При использовании кассового метода учета управленческих затрат, в документе "Планируемые затраты на персонал" неверно определяется факт прошлого периода.  
 
  Код ошибки: 10002714  
  Дата публикации: 26.09.2008 15:54:03  
  Дата последнего изменения: 26.09.2008 0:00:00  
  Описание: При обновлении с конфигурации с редакции 2.1. на 2.5 выдается сообщение об ошибке, когда в организации не поддерживается внутреннее совместительство и по физлицу, с которым заключен договор ГПХ на выполнение работ, зарегистрирован документ «Ввод процента деятельности ЕНВД».  
 
  Код ошибки: 10001643  
  Дата публикации: 05.08.2008 16:24:23  
  Дата последнего изменения: 05.08.2008 0:00:00  
  Описание: При отправке печатной формы документа по электронной почте в текст письма не попадают имеющиеся картинки.  
 
  Код ошибки: 10001302  
  Дата публикации: 29.07.2008 16:40:03  
  Дата последнего изменения: 29.07.2008 0:00:00  
  Описание: В отчете "Расчетная ведомость", построенном за несколько месяцев, в некоторых случаях неправильно отражаются итоги по показателям сальдо.  
 
  Код ошибки: 00103150  
  Дата публикации: 30.04.2008 16:04:59  
  Дата последнего изменения: 30.04.2008 0:00:00  
  Описание: Если в анкету, указанную в настройках программы как резюме кандидата, добавить вопросы из предопределенной группы вопросов о контактной информации физлица, то при создании физлица по ответам на такую анкету контактная информация из опроса не будет перенесена в данные физлица.  
 
  Код ошибки: 00094289  
  Дата публикации: 14.09.2007 10:02:29  
  Дата последнего изменения: 26.11.2010 0:00:00  
  Описание: В форме 2-НДФЛ за прошлые годы (по 2009-й) на работника, у которого по результатам перерасчета за прошлые налоговые периода был доудержан (зачтен) налог, не заполняются пп.5.6 или 5.7 раздела 5.  
 
  Код ошибки: 00076008  
  Дата публикации: 17.07.2007 16:03:29  
  Дата последнего изменения: 17.07.2007 0:00:00  
  Описание: Неверно исчисляются алименты с работника, отработавшего неполный рабочий месяц из-за прогулов.