РИБ: Ошибка при выполнении обработчика - 'ПриЗаписи'

1. Arkadag 28.11.17 15:05 Сейчас в теме
Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Ошибка возникает только со справочниками. Для справочников сделал (списал) код, ( http://kb.mista.ru/article.php?id=511)который позволяет регистрировать изменения "История изменений", типа если пользователь что-то изменил, то можно узнать что и когда...

Изменения фиксируются в РегистреСведений "историяРеквизитов"

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

Перем НаборЗаписейИсторияОбъектов;

Процедура ПередЗаписью(Отказ)

    //...................................................................
    НаборЗаписейИсторияОбъектов = РегистрыСведений.ИсторияРеквизитов.СоздатьНаборЗаписей();
    
    ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, "Код");
    ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, "Наименование");
    ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, "Родитель");
    ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, "Владелец");
    
    Для А = 0 По ЭтотОбъект.Метаданные().Реквизиты.Количество() - 1 Цикл
        ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, ЭтотОбъект.Метаданные().Реквизиты[А].Имя);
    КонецЦикла;
    
КонецПроцедуры

Процедура ПриЗаписи(Отказ)
    Если НаборЗаписейИсторияОбъектов.Количество() <> 0 Тогда
        
        Для Каждого Запись Из НаборЗаписейИсторияОбъектов Цикл
            Запись.Объект = Ссылка;
        КонецЦикла;
        
        НаборЗаписейИсторияОбъектов.Записать(Ложь);
        
    КонецЕсли;
КонецПроцедуры


Процедура ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, ИмяРеквизита)
    
    Если ЭтотОбъект[ИмяРеквизита] <> Ссылка[ИмяРеквизита] Тогда
        НоваяЗапись = НаборЗаписейИсторияОбъектов.Добавить();
        НоваяЗапись.Период = ТекущаяДата();
        НоваяЗапись.Реквизит = ИмяРеквизита;
        НоваяЗапись.ИмяКомпьютера = ИмяКомпьютера();
        НоваяЗапись.Пользователь = ПараметрыСеанса.ТекущийПользователь;
        НоваяЗапись.СтароеЗначение = Ссылка[ИмяРеквизита];
        НоваяЗапись.НовоеЗначение = ЭтотОбъект[ИмяРеквизита];
    КонецЕсли;
    
КонецПроцедуры
Показать



На Центральной базе изменения фиксируются нормально. А вот после окончания обмена на филиальной базе выходит сообщение:

Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка при выполнении обработчика - 'ПриЗаписи':
{Справочник.Пользователи.МодульОбъекта(83)}: Значение не является значением объектного типа (Количество)

Что произошло и как это можно решить, чтобы обмен проходил нормально?
По теме из базы знаний
Найденные решения
5. Vitaly1C8 28.11.17 17:25 Сейчас в теме
(4) Ну так оберни это все в попытку ...
Процедура ПриЗаписи(Отказ)
Попытка
    Если НаборЗаписейИсторияОбъектов.Количество() <> 0 Тогда
        
        Для Каждого Запись Из НаборЗаписейИсторияОбъектов Цикл
            Запись.Объект = Ссылка;
        КонецЦикла;
        
        НаборЗаписейИсторияОбъектов.Записать(Ложь);
        
    КонецЕсли;
Исключение

КонецПопытки;
КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Vitaly1C8 28.11.17 15:25 Сейчас в теме
Ну и где в твоем коде строка 83 ?
3. Arkadag 28.11.17 15:28 Сейчас в теме
(2) Что за строка "83"? Можно детальней?
4. Arkadag 28.11.17 15:57 Сейчас в теме
(2) Понял

Процедура ПриЗаписи(Отказ)
83 - Если НаборЗаписейИсторияОбъектов.Количество() <> 0 Тогда
5. Vitaly1C8 28.11.17 17:25 Сейчас в теме
(4) Ну так оберни это все в попытку ...
Процедура ПриЗаписи(Отказ)
Попытка
    Если НаборЗаписейИсторияОбъектов.Количество() <> 0 Тогда
        
        Для Каждого Запись Из НаборЗаписейИсторияОбъектов Цикл
            Запись.Объект = Ссылка;
        КонецЦикла;
        
        НаборЗаписейИсторияОбъектов.Записать(Ложь);
        
    КонецЕсли;
Исключение

КонецПопытки;
КонецПроцедуры
Показать
6. Arkadag 29.11.17 12:35 Сейчас в теме
(5) Благодарю, тов. Чайкин!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот