Имя: Пароль:
1C
1С v8
Как расковырять реквизиты документа в ХранилищеЗапросов
0 ampfer11
 
19.01.16
14:38
Всем доброго дня,
Столкнулся с такой проблемой: Номера документов урезали, поэтому все правые части у них отрезались,а левые оставшиеся одни нули.
Чтобы их восстановить необходимо расковырять поле ВерсияОбъекта ВерсииДокументов из РС ВерсииОбъектов. Это поле с типом ХранилищеЗначений. Моэжно получить доступ к этому полю метод
Получить() и записать в файл методом Записать(). А Вот как добраться до реквизитов (мне нужен номер документа) не нашел.
Пробовал найти в отчете "История изменения Объектов" Похоже что как то через XML можно добраться. Может решал подобную задачку ?
1 shuhard
 
19.01.16
14:43
(0) дык в результате Получить() и сидит твой документ
2 ampfer11
 
19.01.16
15:59
Это понятно что там сидит двоичный файл.
Допустим запросом  получил выборку
Пока Выборка.Следующий() Цикл
   Док = Выборка.ВерсияОбъекта.Получить();
   // получили ссылку на этот самый двоичный файл
КонецЦикла;
А как мне обратиться к реквизиту документа (Номер)
Док.Номер ??
3 runoff_runoff
 
19.01.16
16:23
сначала надо в отладчике посмотреть.. какой тип у переменной Док
4 tznimble
 
19.01.16
16:29
(2) В полученном XML-документе прочитать значение узла <Номер>
5 tznimble
 
19.01.16
16:34
(2) Ну или того лучше.
В БСП в модуле ВерсионированиеОбъектов есть функция ОбъектИзДвоичныхДанных(ДвоичныеДанные)
Где двоичные данные - это как раз то, что будет в переменной Док.
Функция вернёт готовый объект (но не сохранённый в базе).
6 ampfer11
 
19.01.16
17:04
(5) При отладке я уже понял что Док имеет тип Двоичный файл.Эта функция как раз то что мне надо. Только вот где взять этот самый БСП. И насчет варианта с XML. Как его получить из Дока. Спасибо