При работе с документом Отражение зарплаты в бухучете в программе «1С:Зарплата и управление персоналом» пользователи и разработчики часто сталкиваются с неочевидным поведением системы на вкладке «Начисленный НДФЛ». Особый интерес вызывает колонка Регистрация в налоговом органе. На первый взгляд кажется, что это обычный ссылочный реквизит табличной части, однако при детальном анализе метаданных выясняется, что такого физического поля в табличной части документа просто не существует.
В этой статье мы подробно разберем, по какому принципу программа заполняет этот реквизит «на лету», как устроена внутренняя логика запросов платформы и что делать, если в базе данных возникли дубли регистраций, из-за которых двоятся суммы или не проводится документ.
Проанализируем структуру метаданных документа ОтражениеЗарплатыВБухучете. В табличной части НачисленныйНДФЛ физически присутствуют только строковые и числовые идентификаторы налоговой инспекции:
КПП — код причины постановки на учет подразделения;КодНалоговогоОргана — четырехзначный код ИФНС;КодПоОКТМО — код общероссийского классификатора территорий муниципальных образований.Физического поля типа СправочникСсылка.РегистрацииВНалоговомОргане в этой табличной части нет. Поле выводится на форму исключительно динамически в момент открытия или заполнения документа, а также при подготовке данных для выгрузки в «1С:Бухгалтерию».
Давайте разберем, почему разработчики «1С» приняли такое архитектурное решение. Это сделано для обеспечения гибкости при синхронизации данных между базами ЗУП и БП. Поскольку справочники регистраций в налоговом органе в разных базах могут иметь разные внутренние идентификаторы (GUID), передача строковых значений КПП, ОКТМО и КодНалоговогоОргана позволяет принимающей стороне безошибочно сопоставить налог со своими элементами справочника.
Выясним, как именно программный код 1С сопоставляет строковые данные из табличной части с элементами справочника РегистрацииВНалоговомОргане. Этот процесс выполняется при помощи специализированных общих модулей (например, при вызове процедур сопоставления в модуле ОтражениеЗарплатыВБухучете).
Система выполняет запрос к справочнику РегистрацииВНалоговомОргане, используя левое соединение (LEFT JOIN) по следующим строгим критериям:
КодНалоговогоОргана);КодПоОКТМО).Рассмотрим пример упрощенного запроса, который иллюстрирует внутреннюю логику платформы при заполнении этой виртуальной колонки на форме:
ВЫБРАТЬ
ТЧ_НДФЛ.НомерСтроки КАК НомерСтроки,
ЕСТЬNULL(СпрРегистрации.Ссылка, ЗНАЧЕНИЕ(Справочник.РегистрацииВНалоговомОргане.ПустаяСсылка)) КАК РегистрацияВНалоговомОргане
ИЗ
Документ.ОтражениеЗарплатыВБухучете.НачисленныйНДФЛ КАК ТЧ_НДФЛ
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РегистрацииВНалоговомОргане КАК СпрРегистрации
ПО СпрРегистрации.Владелец = ТЧ_НДФЛ.Ссылка.Организация
И СпрРегистрации.Код = ТЧ_НДФЛ.КодНалоговогоОргана
И СпрРегистрации.КПП = ТЧ_НДФЛ.КПП
И СпрРегистрации.ОКТМО = ТЧ_НДФЛ.КодПоОКТМО
ГДЕ
ТЧ_НДФЛ.Ссылка = &СсылкаДокумента
Важное замечание: в отличие от предположений некоторых участников обсуждения на форумах, при заполнении вкладки «Начисленный НДФЛ» программа не выполняет поиск по наименованию подразделения и не обращается напрямую к регистру сведений История регистраций в налоговом органе. История регистраций используется гораздо раньше — в документах начисления зарплаты для определения того, под каким КПП и ОКТМО сотрудник работал в конкретном периоде. Но когда дело доходит до отражения в бухучете, программа оперирует уже готовыми строковыми значениями КПП, ОКТМО и Кода ИФНС, хранящимися непосредственно в регистрах накопления по учету НДФЛ.
Проанализируем опасную ситуацию: что произойдет, если в справочнике РегистрацииВНалоговомОргане для одной и той же организации будут созданы две карточки с абсолютно одинаковыми реквизитами (одинаковые КПП, ОКТМО и код ИФНС)?
С точки зрения СУБД, левое соединение (LEFT JOIN) при совпадении условий по нескольким записям выдаст все подходящие варианты. Однако логика работы интерфейса и проведения документов 1С не рассчитана на множественные совпадения для одной строки табличной части. Это приводит к следующим критическим ошибкам:
Отражение зарплаты в бухучете может очистить поле регистрации или выдать предупреждение: «На закладке "Начисленный НДФЛ" не указана регистрация в налоговом органе»;Если вы обнаружили, что в документе отражения зарплаты некорректно заполняется или очищается колонка регистрации в налоговом органе, выполним следующие действия для исправления ситуации:
Шаг 1. Проверка уникальности комбинаций КПП и ОКТМО
Перейдем в карточку организации на вкладку «Главное» и откроем ссылку «Регистрации в налоговом органе». Внимательно изучим представленный список. Каждому уникальному сочетанию КПП и ОКТМО должна соответствовать строго одна запись карточки налогового органа. Если мы видим две записи с одинаковым КПП и ОКТМО (даже если у них разные наименования или одна из них помечена как устаревшая), это и есть корень проблемы.
Шаг 2. Использование обработки «Поиск и удаление дублей»
Для устранения дублирующих элементов воспользуемся стандартным инструментом администратора:
Администрирование — Обслуживание — Корректировка данных;Поиск и удаление дублей;Регистрации в налоговом органе;КПП, ОКТМО и Владелец (Организация);Шаг 3. Перезаполнение и перепроведение документов
После слияния дубликатов вернемся в проблемный документ Отражение зарплаты в бухучете. Нажмем кнопку «Заполнить» (или выполним команду пересчета НДФЛ). Убедимся, что колонка Регистрация в налоговом органе успешно заполнилась актуальной и единственной ссылкой. Проведем документ и выполним синхронизацию с бухгалтерской базой.