При работе в программе 1С:Бухгалтерия предприятия 3.0 индивидуальные предприниматели, применяющие общую систему налогообложения (ОСНО), могут столкнуться с критической ошибкой при попытке сформировать Книгу учета доходов и расходов (КУДиР). Ошибка сопровождается сообщением: «Значение не является значением объектного типа (Услуги)». Рассмотрим подробнее, почему возникает эта проблема и как её устранить.
Проанализируем условия, при которых проявляется данная ошибка. Как правило, она возникает в релизах линейки 3.0.190.х (в частности, 3.0.190.11) при выполнении следующих действий:
Сведения об уплате налогов (например, по страховым взносам по единому тарифу).Выясним причину: это программная регрессия. В программном коде формирования отчета алгоритм ошибочно пытается обратиться к свойству Услуги у объекта, который по своей сути является налоговым платежом, а не первичным документом по приобретению услуг. Система ожидает структуру данных, характерную для расчетов с контрагентами, но получает данные по Единому налоговому счету (ЕНС), где данное поле отсутствует.
Поскольку проблема носит массовый характер и признана разработчиками 1С, первым делом нам необходимо проверить наличие официальных исправлений. Разберем по шагам, как это сделать:
Важный момент: если в настройках программы включена опция «Загружать и устанавливать исправления (патчи) автоматически», программа сама предложит установить нужный фикс при наличии интернет-поддержки.
Если установка патчей не помогла или они недоступны для вашего релиза, проанализируем возможность обновления всей конфигурации. Ошибка была исправлена в последующих сборках (начиная с 3.0.191.х). Процесс обновления выглядит следующим образом:
Для тех, кто обладает навыками программирования или имеет возможность привлечь специалиста, разберем, где именно в коде происходит сбой. Ошибка локализуется в общем модуле, отвечающем за учет доходов и расходов индивидуального предпринимателя (например, УчетДоходовРасходовПредпринимателя).
Проанализируем фрагмент кода, где происходит обращение к свойствам. Проблема решается добавлением проверки на наличие свойства или на тип документа перед обращением к значению Услуги. Пример логики исправления может выглядеть так:
Если СвойстваОбъекта.Свойство("Услуги") Тогда
// Выполняем логику обработки услуг
ЗначениеУслуги = СвойстваОбъекта.Услуги;
Иначе
// Обрабатываем объект как налоговый платеж или иной тип
ЗначениеУслуги = Неопределено;
КонецЕсли;
Такой подход позволяет избежать попытки чтения несуществующего свойства у объекта типа ДокументОбъект.СведенияОбУплатеНалогов.
Если отчет нужно сформировать срочно, а обновиться нет возможности, рассмотрим временный вариант (workaround):
Сведения об уплате налогов, вызывающие ошибку.Таким образом, мы выяснили, что ошибка не связана с неправильными действиями пользователя или ручным вводом данных. Это дефект программного кода в конкретных версиях 1С:Бухгалтерия 3.0, который устраняется исключительно техническими методами: установкой патчей или обновлением программы до исправленного релиза.