Как исправить ошибку сравнения примитивных типов при начислении зарплаты после перехода с БП 2.0 на БП 3.0?

Бухгалтер 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Налоговый учет
← На главную

Переход с редакции 2.0 на 3.0 в «1С:Бухгалтерия предприятием» (БП) — это сложный процесс трансформации данных. Одной из самых частых и неприятных проблем, с которыми сталкиваются пользователи после обновления, является ошибка при проведении документа Начисление зарплаты. Программа выдает системное сообщение: «Операции сравнения на больше-меньше допустимы только для значения совпадающих примитивных типов (Булево, Число, Строка, Дата)».

В этой статье мы подробно разберем, почему возникает этот сбой, проанализируем программный код и составим пошаговый алгоритм исправления ситуации, основываясь на практическом опыте специалистов и данных технической поддержки.

Разберем техническую причину ошибки

Давайте проанализируем текст ошибки, который обычно выводится в окне сообщений или фиксируется в журнале регистрации. Чаще всего проблемная строка находится в общем модуле ЗарплатаКадрыКлиентСервер:

АбсолютноеЗначениеКоэффициента = ?(Коэффициент > 0, Коэффициент, -Коэффициент);

Проанализируем ситуацию: платформа пытается сравнить переменную Коэффициент с числом 0. Ошибка «сравнения примитивных типов» означает, что в переменной Коэффициент находится не число, а нечто иное — чаще всего это Неопределено или NULL.

Почему так происходит? В конфигурации «Бухгалтерия предприятия 3.0» механизм расчета страховых взносов стал более сложным по сравнению с версией 2.0. При проведении документа система пытается распределить суммы взносов пропорционально начислениям. Если в базе отсутствуют настройки тарифов страховых взносов или не заполнены виды доходов в начислениях, алгоритм расчета не получает числовых значений коэффициентов. Вместо них подставляются «пустоты», которые программа не может сравнить с нулем.

Решение 1: Проверка и заполнение настроек «Налоги и отчеты»

Рассмотрим основной метод решения проблемы, который помогает в 90% случаев. Проблема заключается в том, что при переносе данных из БП 2.0 регистр, хранящий информацию о тарифах страховых взносов, может оказаться пустым или некорректно заполненным.

  1. Перейдем в раздел Главное и выберем пункт Налоги и отчеты.
  2. В открывшемся окне в левом меню выберем вкладку Страховые взносы.
  3. Посмотрим на поле Тариф страховых взносов. Даже если там уже указано значение (например, «Основной тариф страховых взносов»), это не гарантирует корректность данных в базе.
  4. Обязательно нажмем на гиперссылку История изменений.
  5. Проверим наличие записи в истории. Выясним причину сбоя: часто запись существует, но колонка Применяется с содержит дату, которая позже периода, за который вы пытаетесь провести зарплату (например, переход был в середине года, а запись стоит с января следующего).
  6. Если записи нет или дата неверная, создадим новую запись. Установим период (поле «Применяется с») на начало года или еще раньше, чтобы охватить все перепроводимые документы.

После внесения этих изменений попробуем снова провести документ Начисление зарплаты. Если ошибка сохраняется, перейдем к следующему шагу.

Решение 2: Проверка справочника «Виды начислений»

Проанализируем настройки самих начислений. При миграции из старой редакции справочник Начисления часто переносится с неполными данными. Если у конкретного начисления (например, «Оклад») не указан вид дохода для страховых взносов, система не «поймет», по какой ставке его облагать.

  1. Зайдем в раздел Зарплата и кадры — Настройки зарплаты — Расчет зарплаты — Начисления.
  2. Откроем каждое используемое начисление.
  3. Найдем раздел Страховые взносы и проверим поле Вид дохода. Оно не должно быть пустым. Обычно для стандартной зарплаты там должно быть указано «Доходы, целиком облагаемые страховыми взносами».
  4. Также проверим вкладку Налог на прибыль, статистическая отчетность. Убедимся, что все реквизиты заполнены корректно.

Если вы обнаружили пустые значения, заполним их и попробуем перепровести документы.

Решение 3: Проверка статуса застрахованного лица в карточках сотрудников

Иногда ошибка возникает не по всем сотрудникам сразу, а только по определенным лицам. Выясним причину, изучив данные физических лиц. Расчет взносов напрямую зависит от гражданства и статуса сотрудника.

  1. Перейдем в справочник Сотрудники.
  2. Откроем карточку сотрудника, по которому не проводится документ.
  3. Нажмем на ссылку Страхование.
  4. Проверим поле Статус застрахованного лица. После переноса из 2.0 это поле иногда остается незаполненным. Для большинства сотрудников там должно стоять «Наемные работники, граждане РФ».
  5. Убедимся, что указана корректная дата, с которой действует этот статус.

Решение 4: Работа с документом «Начисление зарплаты»

Посмотрим на особенности самого документа. В редакции 3.0 расчет взносов происходит в момент заполнения документа, а не отдельным регламентным документом, как это могло быть в старых версиях.

Если вы пытаетесь перепровести старый документ, который был просто перенесен из БП 2.0 «как есть», его структура может конфликтовать с новыми алгоритмами. Попробуем следующий порядок действий:

  1. Откроем проблемный документ Начисление зарплаты.
  2. Перейдем на вкладку Взносы. Если она пуста или данные в ней некорректны, нажмем кнопку Пересчитать взносы (или кнопку Еще — Пересчитать взносы).
  3. Если это не помогает, попробуем полностью перезаполнить документ кнопкой Заполнить (внимание: это удалит ручные корректировки, если они были).

Решение 5: Массовое исправление и использование патчей

Если документов много, исправлять каждый вручную крайне трудозатратно. Рассмотрим способы автоматизации.

Во-первых, проанализируем наличие установленных исправлений. В версии 3.0.87.28, где часто фиксировалась эта ошибка, фирма 1С выпускала специальные патчи. Перейдем в Администрирование — Обслуживание — Обновление программы — Установленные исправления (патчи). Проверим, нет ли там исправлений для модуля ЗарплатаКадрыКлиентСервер или УчетСтраховыхВзносов. Если обновлений нет, рекомендуется обновить конфигурацию до актуального релиза.

Во-вторых, можно воспользоваться обработкой Групповое изменение реквизитов (раздел Администрирование — Обслуживание — Корректировка данных). С ее помощью можно массово установить правильный Вид тарифа страховых взносов в документах за прошлые периоды, если он не подтянулся автоматически при переносе.

Резюме и выводы

Подведем итог: ошибка Операции сравнения на больше-меньше допустимы только для значения совпадающих примитивных типов при начислении зарплаты в БП 3.0 — это сигнал о том, что алгоритму распределения взносов не хватает исходных данных для математических операций.

Алгоритм ваших действий должен быть таким:

  1. Проверить Историю изменений тарифа страховых взносов в настройках налогов (Главное — Налоги и отчеты). Это самая частая причина.
  2. Убедиться, что во всех используемых Видах начислений проставлен вид дохода для взносов.
  3. Проверить вкладку Страхование в карточках сотрудников.
  4. Пересчитать взносы в самом документе начисления.

Следуя этим шагам, вы сможете устранить программный сбой и успешно сформировать отчетность (включая справки 2-НДФЛ), ради которой и потребовалось перепроведение документов после перехода. Для сверки сумм начислений и исчисленного налога перед формированием отчетов можно использовать отчет для анализа НДФЛ и проверки данных учета.

← На главную