Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)
Ошибка возникает только со справочниками. Для справочников сделал (списал) код, который позволяет регистрировать изменения "История изменений", типа если пользователь что-то изменил, то можно узнать что и когда...
Изменения фиксируются в РегистреСведений "историяРеквизитов"
В модуле каждого нужного справочника списал код (ошибка выходит у всех задействованных справочников, помере отключения кода у того, где вышла эта ошибка ранее):
Перем НаборЗаписейИсторияОбъектов;
Процедура ПередЗаписью(Отказ)
//...................................................................
НаборЗаписейИсторияОбъектов = РегистрыСведений.ИсторияРеквизитов.СоздатьНаборЗаписей();
ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, "Код");
ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, "Наименование");
ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, "Родитель");
ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, "Владелец");
Для А = 0 По ЭтотОбъект.Метаданные().Реквизиты.Количество() - 1 Цикл
ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, ЭтотОбъект.Метаданные().Реквизиты[А].Имя);
КонецЦикла;
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если НаборЗаписейИсторияОбъектов.Количество() <> 0 Тогда
Для Каждого Запись Из НаборЗаписейИсторияОбъектов Цикл
Запись.Объект = Ссылка;
КонецЦикла;
НаборЗаписейИсторияОбъектов.Записать(Ложь);
КонецЕсли;
КонецПроцедуры
Процедура ОбработатьИзменениеРеквизита(НаборЗаписейИсторияОбъектов, ИмяРеквизита)
Если ЭтотОбъект[ИмяРеквизита] <> Ссылка[ИмяРеквизита] Тогда
НоваяЗапись = НаборЗаписейИсторияОбъектов.Добавить();
НоваяЗапись.Период = ТекущаяДата();
НоваяЗапись.Реквизит = ИмяРеквизита;
НоваяЗапись.ИмяКомпьютера = ИмяКомпьютера();
НоваяЗапись.Пользователь = ПараметрыСеанса.ТекущийПользователь;
НоваяЗапись.СтароеЗначение = Ссылка[ИмяРеквизита];
НоваяЗапись.НовоеЗначение = ЭтотОбъект[ИмяРеквизита];
КонецЕсли;
КонецПроцедуры
На Центральной базе изменения фиксируются нормально. А вот после окончания обмена на филиальной базе выходит сообщение:
Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка при выполнении обработчика - 'ПриЗаписи':
{Справочник.Пользователи.МодульОбъекта(83)}: Значение не является значением объектного типа (Количество)Что произошло и как это можно решить, чтобы обмен проходил нормально?