===
Техническая часть (причина ошибки и метод исправления):
В типовом алгоритме выборка приказов идет по регистру сведений РаботникиОрганизаций ("Кадровая история сотрудников (по юрлицам)"), а в случае увольнения в этот регистр пишется следующий день за днем увольнения. Уволен 31.01 - запись в регистре будет от 01.02. Логика, видимо, в том, что 31.01 сотрудник еще работает, а вот с 01.02 уже нет. Но для целей отчетности СЗВ-ТД это неправильно. Более того, такое увольнение не попадет и в отчетность за следующий месяц, т.к. в другом подзапросе анализируется список физлиц, которые должны попасть в выборку ПО ДАТЕ ПРИКАЗА на увольнение.
Предлагаемое решение:
Документ СведенияОТрудовойДеятельностиРаботниковСЗВ_ТД, Модуль объекта, процедура Автозаполнение (номер строки 429), заменить запрос на такой:
// Кадровые события отчетного периода
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| РаботникиОрганизаций.Регистратор
|ПОМЕСТИТЬ ВТРегистраторы
|ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаНачала, Организация = &ГоловнаяОрганизация) КАК РаботникиОрганизаций
|ГДЕ
| (РаботникиОрганизаций.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
// П.И.А. 2020-02-10 +
| ИЛИ РаботникиОрганизаций.Сотрудник.ДатаУвольнения МЕЖДУ &ДатаНачала И &ДатаОкончания
// П.И.А. 2020-02-10 -
| ИЛИ РаботникиОрганизаций.ПериодЗавершения МЕЖДУ &ДатаНачала И &ДатаОкончания)
| И РаботникиОрганизаций.Сотрудник.Физлицо В
| (ВЫБРАТЬ
| ВТ.ФизЛицо
| ИЗ
| ВТФизическиеЛица КАК ВТ)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| РаботникиОрганизаций.Регистратор
|ИЗ
| РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
|ГДЕ
// П.И.А. 2020-02-10 +
// | РаботникиОрганизаций.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
| (РаботникиОрганизаций.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
| ИЛИ РаботникиОрганизаций.Сотрудник.ДатаУвольнения МЕЖДУ &ДатаНачала И &ДатаОкончания)
// П.И.А. 2020-02-10 -
| И РаботникиОрганизаций.Сотрудник.Физлицо В
| (ВЫБРАТЬ
| ВТ.ФизЛицо
| ИЗ
| ВТФизическиеЛица КАК ВТ)
| И РаботникиОрганизаций.Организация = &ГоловнаяОрганизация";
Запрос.Выполнить();
===
Такое же решение сделано в виде внешней обработки заполнения табличной части этого документа. Но если не хочется тратить стартмани - можете просто в конфигурации исправить (если есть возможность изменения конфигурации). Ну и можете сами сделать обработку заполнения с исправлением данного запроса.
Проверено на релизе УПП 1.3.132.2.
UPD: Вышел релиз 1.3.132.3, в котором разработчики типовой конфигурации поправили эту ошибку, вот так:
// Кадровые события отчетного периода
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| РаботникиОрганизаций.Регистратор
|ПОМЕСТИТЬ ВТРегистраторы
|ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаНачала, Организация = &ГоловнаяОрганизация) КАК РаботникиОрганизаций
|ГДЕ
| (РаботникиОрганизаций.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
| ИЛИ РаботникиОрганизаций.ПериодЗавершения МЕЖДУ &ДатаНачала И &ДатаОкончания)
| И РаботникиОрганизаций.Сотрудник.Физлицо В
| (ВЫБРАТЬ
| ВТ.ФизЛицо
| ИЗ
| ВТФизическиеЛица КАК ВТ)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| РаботникиОрганизаций.Регистратор
|ИЗ
| РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
|ГДЕ
| РаботникиОрганизаций.Период МЕЖДУ &ДатаНачала И ДОБАВИТЬКДАТЕ(&ДатаНачала, МЕСЯЦ, 1)
| И РаботникиОрганизаций.Сотрудник.Физлицо В
| (ВЫБРАТЬ
| ВТ.ФизЛицо
| ИЗ
| ВТФизическиеЛица КАК ВТ)
| И РаботникиОрганизаций.Организация = &ГоловнаяОрганизация";
Запрос.Выполнить();
конкретная строчка: | РаботникиОрганизаций.Период МЕЖДУ &ДатаНачала И ДОБАВИТЬКДАТЕ(&ДатаНачала, МЕСЯЦ, 1)
т.е. не по конец месяца берем, а к началу месяца добавляем месяц и получаем нулевую секунду следующего месяца, в которую увольнение последним днем месяца уже попадает.