Имя: Пароль:
1C
1С v8
Ошибка при обмене
0 lomanos
 
10.01.12
11:15
Здравствуйте. Подскажите, где можно обратиться к таблице зарегистрированных для обмена объектов?
Возникла ошибка при обмене, ругается на накладную, хочу ее найти.

Текст ошибки: "Ошибка при чтении изменений при обмене РИБ: {ОбщийМодуль.ОбменДанными(1290)}: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка при выполнении обработчика - '{Документ.Накладная(1731)}: Значение не является значением объектного типа (Метаданные)'"
1 Tumakota
 
10.01.12
11:19
Вроде если память не изменяет РегистрСведений - Соответсвие объектов для обмена
2 Kreont
 
10.01.12
11:20
Операции-ПланОбмена-"своитипобмена"-потом "мониторчик" вверху на панели, показать ...
3 kosts
 
10.01.12
11:25
(0) Лучше в отладчике, остановки при ошибке "текст ошибки"
4 lomanos
 
10.01.12
12:45
(1) Регистр не поможет, мне необходимо найти конкретный документ.
(2) Спасибо за наводку, "мониторчик" не нашел, но запустил "прочитать изменения" из файла обмена, жду результата, может данный инструмент мне и поможет "дебажить" данную ошибку.
(3) Это уже на крайний случай, потому что для этого мне нужно будет обновить конфигурацию, просто сейчас он мне выводит в исключении функцией ОписаниеОшибки().
5 Maxus43
 
10.01.12
12:49
в конструкторе запросов же есть доступ к таблицам изменений. все зарегистрированые там видно
6 Kreont
 
10.01.12
13:23
(4) Операции -> "Планы обмена" -> "ПоОрганизации" -> "Мониторчик" (Зарегистрированные изменения) :)
7 lomanos
 
11.01.12
04:38
(5) так в том то и дело, что не в конструкторе запросов, не в консоли запросов, данную таблицу изменений я не нашел. Может мы говорим о разных платформах? У меня платформа 8.1. Может конечно я и ошибаюсь и не там ищу, не могли бы просветить где искать данную таблицу изменений? И раз уж речь зашла о данной таблицы, то есть ли какие-то инструменты для обращения к ней, с целью изменения значений?

(6) ну вот нет у меня "мониторчика", хотел PrintScreen приложить к сообщению, но не знаю как. Из дозволенных действий для работы с элементами плана обмена (помимо добавления/удаления/изменения/отбора и т.д.) есть только 4-и действия: "Создать начальный образ..", "Записать изменения..", "Прочитать изменения.." и "Групповой обмен". Ничего похожего на "Зарегистрированные изменения" нет :(
8 Гот
 
11.01.12
04:43
Мониторчик - это не платформенное решение, это в типовых копка для вызова формы обрботки, или общей формы, "Регистрация измений" по моему называется. Если план обмена рукотворный - то в форме списка мониторчика не будет.
Можете в типовом выдрать, только тут не в плане обмена проблема, а в XML правилах, поэтому отладчиком, если в КД ошибку не видите.
9 lomanos
 
11.01.12
04:56
(8) все верно, проблемма не в плане обмена, но таблица зарегистрированных объектов для обмена привязана к элементу плана обмена, поэтому я и предположил, что логично отталкиваться от него. В (4) я писал, что отладчик не могу вызвать, так как ошибка отображается служебным сообщением, которое отображается при исключении, но это уже не важно - смог вызвать отладчик используя инструмент "Прочитать изменения.." из файла обмена.

Нашел документ и сразу возник вопрос, стандартная функция ПередУдалением() в модуле документа разве вызывается при обмене?

В принципе ошибочный документ я уже нашел, но на будущее все таки хотелось бы разобраться и найти таблицу изменений при обмене, я думаю данный вопрос возникает у многих :)
10 Гот
 
11.01.12
04:58
(9) У вас модуль плана обмена не пустой случайно?
11 lomanos
 
11.01.12
05:05
(10) модуль не пустой, но там определены только процедуры: ЗаписатьСообщениеСИзменениями, ПрочитатьСообщениеСИзменениями, ПриОтправкеДанныхПодчиненному, ПриПолученииДанныхОтГлавного, ПолучитьИмяФайлаОбмена, ПриПолученииДанныхОтПодчиненного и ПриОтправкеДанныхГлавному.
Нашел обработку "РегистрацияИзмененийДляОбмена", сейчас пока копаюсь в ней. Спасибо за "наводку".
12 Гот
 
11.01.12
05:16
(11) Если процедуры пустые - смотри, как сделано в типовых планах обмена. Можешь оттуда скопировать модуль.
13 lomanos
 
11.01.12
06:04
(12) нет, процедуры не пустые, но уже не важно, обработки "РегистрацияИзмененийДляОбмена" хватило с лихвой. Данная обработка позволяет работать с зарегистрированными объектами, в том числе и удаление из регистрации и просмотр.

А вообще, если кому пригодится, у плана обмена, как оказалось, есть стандартная функция "ПланыОбмена.ВыбратьИзменения(", в которой указываем узел и данные, которые нам нужны. Она возвращает выборку зарегистрированных данных, из которой уже можно делать с этими данными все, что угодно :)

Всем спасибо!