Имя: Пароль:
1C
1С v8
Переменная не определена (НомерСправкиА)
0 fisher8282
 
12.09.17
18:25
Добрый день.

1С:Предприятие 8.3 (8.3.10.2561)
Розница, редакция 2.2 (2.2.6.33) типовая.
Режим Файловый
РИБ по магазину, типовые правила обмена.
Мой уровень  - Пользователь.

[SPOILER="Предыстория:"]
Не так давно обновил платформу и конфигурацию до последних релизов. После обновления обмен проходил без ошибок. Через некоторое время,  при записи и проведения документа "Поступление товаров" получил сообщение об ошибке, что информационная база повреждена, закрыть или перезапустить. Перезапуск не помог, ошибка повторялась. Запустил Конфигуратор, выполнил "Тестирование и Исправление" по всем пунктам, вначале выбрав "Создавать объекты", далее выполнил повторно "Очищать и Удалять".
Запустил в режиме 1С предприятие, ошибки при сохранении и проведении документа не возникает. Но перестал работать обмен. Из Главного узла создал новый начальный образ, результат тот же, получаю сообщение об ошибке. В Главном узле выполнял ТиС и заново создавал образ - все та же ошибка.
[/SPOILER]

Прошу помощи в решении проблемы:
При выполнении синхронизации и получении данных получаю ниже указанную ошибку.

[SPOILER="Ошибка инициализации модуля:"][CODE]Ошибка инициализации модуля: Справочник.Справки2ЕГАИС.МодульОбъекта
по причине:
{Справочник.Справки2ЕГАИС.МодульОбъекта(18,25)}: Переменная не определена (СправкаА)
    Если ЗначениеЗаполнено(<<?>>СправкаА) И НЕ ПустаяСтрока(НомерСправкиА) Тогда
{Справочник.Справки2ЕГАИС.МодульОбъекта(19,93)}: Переменная не определена (СправкаА)
        Если ВРег(СокрЛП(НомерСправкиА)) <> ВРег(СокрЛП(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(<<?>>СправкаА, "РегистрационныйНомер"))) Тогда
{Справочник.Справки2ЕГАИС.МодульОбъекта(18,53)}: Переменная не определена (НомерСправкиА)
    Если ЗначениеЗаполнено(СправкаА) И НЕ ПустаяСтрока(<<?>>НомерСправкиА) Тогда
{Справочник.Справки2ЕГАИС.МодульОбъекта(19,20)}: Переменная не определена (НомерСправкиА)
        Если ВРег(СокрЛП(<<?>>НомерСправкиА)) <> ВРег(СокрЛП(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СправкаА, "РегистрационныйНомер"))) Тогда[/CODE][/SPOILER]

Открываю Модуль объекта, вижу, что везде где ошибка, переменная называется "Справка1", а не "СправкаА".

[SPOILER="Модуль объекта"][CODE]

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ОбработчикиСобытий

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
  
    МассивНепроверяемыхРеквизитов = Новый Массив;
    МассивНепроверяемыхРеквизитов.Добавить("Наименование");
  
    Если ДополнительныеСвойства.Свойство("ЗагрузкаДанныхИзЕГАИС") Тогда
        МассивНепроверяемыхРеквизитов.Добавить("НомерСправки1");
        МассивНепроверяемыхРеквизитов.Добавить("АлкогольнаяПродукция");
    КонецЕсли;
  
    ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов);
  
    Если ЗначениеЗаполнено(Справка1) И НЕ ПустаяСтрока(НомерСправки1) Тогда
        Если ВРег(СокрЛП(НомерСправки1)) <> ВРег(СокрЛП(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Справка1, "РегистрационныйНомер"))) Тогда
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Номер справки 1 не совпадает с выбранной справкой.'"),,,, Отказ);
        КонецЕсли;
    КонецЕсли;
  
КонецПроцедуры

Процедура ПередЗаписью(Отказ)
  
    Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;
  
    Если ПустаяСтрока(Наименование) Тогда
        Наименование = РегистрационныйНомер;
    КонецЕсли;
  
КонецПроцедуры

#КонецОбласти

#КонецЕсли

[/CODE][/SPOILER]
1 fisher8282
 
12.09.17
18:28
Прошу прощения, что то BB коды не работают.
2 fisher8282
 
13.09.17
10:35
Помог совет хорошего человека alex0402 на дружественном форуме:
1) почистить кеш;
2) удалить базу из списка и добавить снова.

Проблема решена, тему можно закрывать.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший