При обновлении конфигурации 1С:Зарплата и Кадры 7.7 (ЗиК) с достаточно старых версий (например, с 351 на 371) пользователи часто сталкиваются с тем, что программа перестает рассчитывать стандартные налоговые вычеты на детей. Проблема проявляется в том, что справочник Виды вычетов оказывается пустым или заполненным некорректно: в нем отсутствуют новые коды (126–149), а старые (114–125) более не применяются согласно законодательству. Рассмотрим подробнее, почему это происходит и как восстановить работоспособность системы.
В платформе 1С 7.7 процесс обновления состоит из двух этапов: объединения метаданных (замена md-файла) и выполнения регламентных процедур в режиме «Предприятие». За второй этап отвечает обработка ОбновлениеИБ.ert. Если при первом запуске после обновления md-файла эта обработка не отработала до конца или была пропущена, служебные справочники не будут приведены в актуальное состояние.
Проанализируем ситуацию: начиная с 360-х релизов, логика расчета НДФЛ в ЗиК существенно изменилась. Программа теперь ориентируется не просто на код вычета, а на его внутренний идентификатор. Если вы добавите код «126» в справочник вручную просто текстом, расчет не заработает, так как программа «ищет» за кодом скрытую связь с алгоритмом (например, идентификатор Детский1).
Существует мнение, что обновления нужно накатывать строго последовательно, не «перескакивая» через релизы. В 7.7 это не совсем так: процедура ОбновлениеРелиза() в коде обработки обновления обычно содержит блоки для каждого пропущенного этапа. Однако, если база имеет накопленные ошибки в данных (например, документы без номеров или битые ссылки), обработка может «споткнуться» и прекратить работу, не дойдя до заполнения справочника вычетов.
Если мы выяснили, что справочники пусты, попробуем заставить программу выполнить обновление заново. Для этого нам нужно «обмануть» систему, заставив её думать, что текущая база данных еще не обновлена до 371 релиза.
Номер релиза.7.70.351.После этого проверим справочник Виды вычетов. Если регламентные процедуры отработали корректно, он заполнится автоматически.
Если принудительное обновление не помогает или база выдает ошибки, мы можем воспользоваться методом прямого переноса справочника из эталонной базы. Нам понадобится «чистая» (пустая) база ЗиК того же 371 релиза. Разберем этот процесс по шагам.
tranref.ert (Перенос справочников), которая обычно находится в дополнительных материалах к релизам или в папке ExtForms.Виды вычетов в файл.Для продвинутых пользователей и программистов рассмотрим вариант восстановления кодов через программный код. Мы можем вызвать процедуры, заложенные разработчиками 1С, непосредственно из внешней обработки. Проанализируем структуру обработки ОбновлениеИБ.ert. В ней нас интересуют функции, отвечающие за актуализацию законодательных данных.
Пример кода для вызова во внешней обработке:
// Создаем объект обработки обновления
Обновление = СоздатьОбъект("Обработка");
Обновление.УстановитьФорму("ОбновлениеИБ");
// Вызываем последовательно процедуры заполнения для разных периодов
// Эти процедуры пропишут коды и свяжут их с алгоритмами расчета
Обновление.ЗаполнитьКодыДоходов2016();
Обновление.ЗаполнитьИдентификаторыВычетов();
Обновление.ОписатьВычеты2017();
Обновление.ОписатьВычеты2018();
Предупреждение("Справочник вычетов успешно актуализирован!");
Этот метод хорош тем, что он не затрагивает другие данные и прицельно исправляет именно справочник Виды вычетов, прописывая в него все необходимые служебные реквизиты, которые не видны при обычном просмотре справочника в интерфейсе.
После выполнения любого из описанных выше способов, необходимо убедиться, что вычеты начали применяться. Рассмотрим, на что обратить внимание:
В завершение отметим: ситуация с «пропавшими» вычетами в 371 релизе — это следствие перехода на новые форматы отчетности 2-НДФЛ и 6-НДФЛ. Тщательный контроль за составом справочника Виды вычетов позволит избежать доначислений налога и претензий со стороны налоговой инспекции.