Исправление ошибки "Значение не является значением объектного типа (ЕстьОшибки)" при подборе акцизных марок из ТСД в Рознице 2.3
Задачи пользователя - Корректировка данных
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Все актуальные патчи установлены, новых обновлений нет. Ошибка вызвана некорректным обращением к свойству `ЕстьОшибки` у неинициализированной ссылки на строку дерева (`СтрокаДанных.СтрокаДерева = Неопределено`).
## Решение
Предлагаемое исправление добавляет проверку `СтрокаДанных.СтрокаДерева <> Неопределено` перед попыткой присвоить значения свойствам `ЕстьОшибки` и `ТекстОшибки`.
Исправление реализовано в виде **расширения конфигурации**, что имеет следующие преимущества:
- Не требует изменения типовой конфигурации
- Не блокирует автоматическое обновление
- Легко отключается и удаляется
## Содержимое расширения
**Переопределяемый модуль:** `ОбщийМодуль.ШтрихкодированиеЕГАИС`
**Переопределяемая процедура:** `ВыполнитьПроверкуНаОшибкиКонтрольАкцизныхМарок`
**Суть изменений (фрагмент кода):**
```1c
// Было (ошибочно):
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
ЕстьОшибки = Истина;
СтрокаДанных.СтрокаДерева.ЕстьОшибки = Истина;
СтрокаДанных.СтрокаДерева.ТекстОшибки = ТекстОшибки;
ДанныеПоШтрихкодам.ЕстьОшибкиВДеревеУпаковок = Истина;
КонецЕсли;
// Стало (исправлено):
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
ЕстьОшибки = Истина;
Если СтрокаДанных.СтрокаДерева <> Неопределено Тогда
СтрокаДанных.СтрокаДерева.ЕстьОшибки = Истина;
СтрокаДанных.СтрокаДерева.ТекстОшибки = ТекстОшибки;
КонецЕсли;
ДанныеПоШтрихкодам.ЕстьОшибкиВДеревеУпаковок = Истина;
КонецЕсли;
Установка
-
Скачайте файл расширения (
*.cfe) -
В конфигураторе откройте меню «Конфигурация» → «Расширения конфигурации» → «Загрузить расширение»
-
Выберите загруженный файл
-
Нажмите «Применить расширения»
Совместимость
-
Платформа: 1С:Предприятие 8.3 (любая версия)
-
Конфигурация: 1С:Розница 2.3.25.17 (с высокой вероятностью работает и на других подверсиях 2.3)
-
Режим совместимости: Управляемые формы
Дополнительная информация
Ошибка возникает в сценарии массового сканирования акцизных марок, когда для некоторых строк не устанавливается корректная связь с деревом упаковок (СтрокаДанных.СтрокаДерева остаётся Неопределено). Исправление безопасно — если связь отсутствует, ошибка просто не фиксируется в дереве, но основной флаг ЕстьОшибки всё равно устанавливается, что не нарушает логику работы.
Проверено на следующих конфигурациях и релизах:
- Розница, редакция 2.3, релизы 2.3.25.17
Вступайте в нашу телеграмм-группу Инфостарт