Как исправить ошибку «Неверный тип значения: РегистрСведений.РезультатыПроверкиСредствамиККТиСМП.Документ» при печати чека в 1С

Бухгалтер 1С v8.3 (Управляемые формы) Бухгалтерский учет Сфера услуг, туризм и социальный сектор
← На главную

При работе в программе 1С:Бухгалтерия предприятия 3.0 (начиная с релизов 3.0.99.х) многие пользователи столкнулись с неприятной ситуацией: после обновления конфигурации при попытке пробить чек на услуги или обычные товары вылетает критическая ошибка: Неверный тип значения: РегистрСведений.РезультатыПроверкиСредствамиККТиСМП.Документ. Несмотря на то, что физически кассовый аппарат может выдать чек, в самой программе документ не получает статус «Пробит», что вносит путаницу в учет.

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

Выясним причину возникновения ошибки

Давайте проанализируем ситуацию с технической точки зрения. Появление данной ошибки напрямую связано с масштабным переходом на ФФД 1.2 (формат фискальных данных) и обязательной маркировкой товаров. В новых релизах 1С разработчики значительно переработали подсистему взаимодействия с торговым оборудованием.

Проанализируем работу объекта РегистрСведений.РезультатыПроверкиСредствамиККТиСМП. Этот регистр предназначен для хранения логов проверки кодов маркировки (система «Честный ЗНАК»). Когда касса работает по протоколу ФФД 1.2, она должна проверять каждый код маркировки и возвращать результат этой проверки в программу. Проблема заключается в том, что обновленный программный код пытается инициировать запись в этот регистр даже в тех случаях, когда в чеке нет маркируемого товара (например, при оказании услуг или продаже обычных товаров). При попытке записи система не находит корректную ссылку на «документ-основание» для измерения Документ и выдает ошибку несоответствия типов.

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

Способ 1: Установка исправления (патча) EF_40057174

Рассмотрим самый быстрый и надежный способ решения проблемы, предложенный разработчиками 1С. Для оперативного исправления подобных массовых ошибок выпускаются специальные расширения — патчи. Для данной проблемы был выпущен патч с идентификатором EF_40057174.

Выполним следующие шаги для его установки:

  1. Перейдем в раздел Администрирование, затем выберем пункт Обслуживание.
  2. Раскроем подраздел Обновление программы.
  3. Нажмем на ссылку Установленные исправления (патчи).
  4. Если в вашей программе настроен автоматический поиск обновлений, патч может уже быть в списке. Если нет, нажмем кнопку Установить исправление (потребуется доступ к порталу ИТС).
  5. Найдем в списке патч EF_40057174 (описание обычно звучит как «Исправление ошибки записи в регистр РезультатыПроверкиСредствамиККТиСМП»).
  6. После установки патча программа предложит перезагрузиться. Соглашаемся и проверяем печать чека.

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

Способ 2: Обновление конфигурации до актуального релиза

Если вы по каким-то причинам не можете установить патч или используете сильно устаревшую версию (например, 3.0.99.19), проанализируем вариант полного обновления. Разработчики включили исправление этой ошибки в состав следующих релизов (начиная с 3.0.100.х и выше).

Рассмотрим алгоритм действий:

  1. Обязательно создадим резервную копию базы данных перед любыми манипуляциями.
  2. Перейдем в раздел Администрирование — Обслуживание — Обновление программы.
  3. Выберем Поиск и установка обновлений.
  4. Следуем указаниям помощника для перехода на версию 3.0.100 или более свежую.

После обновления логика записи в регистр РезультатыПроверкиСредствамиККТиСМП будет автоматически исправлена: система начнет игнорировать запись, если в чеке отсутствуют сведения о маркировке (СМП).

Способ 3: Проверка и обновление драйверов ККТ

Иногда ошибка Неверный тип значения может быть спровоцирована некорректным ответом от драйвера кассового аппарата, если он не поддерживает новые методы, вызываемые платформой 1С 8.3 для работы с ФФД 1.2. Проанализируем состояние драйверов.

Выполним проверку в программе:

  1. Зайдем в меню Администрирование — Подключаемое оборудование.
  2. Выберем нашу кассу и нажмем Настроить.
  3. Посмотрим на версию драйвера. Для ККТ АТОЛ рекомендуется использовать версию 10.8.1.0 и выше. Для Штрих-М — актуальные версии драйверов с поддержкой ФФД 1.2.
  4. Если драйвер устарел, нажмем кнопку Функции — Установить драйвер или скачаем его с сайта производителя оборудования и установим в операционной системе.

Часто связка «актуальный релиз 1С + свежий драйвер» полностью устраняет любые конфликты типов данных при формировании чека.

Разберем технические нюансы работы регистра

Для понимания того, что именно исправляет патч, посмотрим на пример структуры записи в регистр. Проблемный код пытался выполнить примерно следующую операцию:


МенеджерЗаписи = РегистрыСведений.РезультатыПроверкиСредствамиККТиСМП.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Период = ТекущаяДата();
// Ошибка возникала здесь, так как ДокументОснование мог быть пустым 
// или не соответствовать типам, определенным в метаданных регистра
МенеджерЗаписи.Документ = ДанныеЧека.ДокументОснование; 
МенеджерЗаписи.Записать();

Патч EF_40057174 добавляет в этот алгоритм проверку условия. Проанализируем логику исправления:


Если ТребуетсяПроверкаМаркировки(ДанныеЧека) Тогда
    // Выполняем запись в регистр только для маркированных товаров
    ЗаписатьРезультатыПроверки(ДанныеЧека);
Иначе
    // Для услуг и обычных товаров просто пропускаем этот шаг
    Возврат;
КонецЕсли;

Такой подход позволяет избежать попытки записи некорректных типов данных в базу, что и устраняет критическую ошибку.

Что делать, если чек в ОФД ушел, а в 1С статус не обновился?

Это частая побочная проблема. Если из-за ошибки документ Чек или Реализация не пометился как пробитый, выполним следующие действия:

  1. Убедимся по отчету из ОФД или по бумажному чеку, что фискализация прошла успешно.
  2. В 1С воспользуемся механизмом ручной корректировки статуса (если это предусмотрено вашей версией) или попробуем повторно пробить чек после установки патча.
  3. В некоторых случаях помогает использование обработки «Групповое изменение реквизитов» для установки признака НомерЧекККМ и даты пробития, чтобы документ перестал числиться «непробитым». Будьте осторожны: этот метод требует четкого понимания структуры метаданных.

Подводя итог, можно сказать, что ситуация является типичной «ошибкой роста» при внедрении новых протоколов ФФД 1.2. Своевременная установка патчей и обновление драйверов — залог стабильной работы кассового узла.

← На главную