|
Перенос документа из базы в базу по COM | ☑ | ||
---|---|---|---|---|
0
suvolod
05.07.12
✎
21:08
|
Подскажите, как правильнее это сделать?
Например, у меня есть два документа: ТекДок = Документы.ПоступлениеТоваровИУслуг.НайтиПоКоду(..); Док = ВнешнееСоединение.Документы.ПоступлениеТоваровИУслуг.СоздатьДокумент(); Через ЗаполнитьЗначенияСвойств(Док, ТекДок) получилось заполнить значния с простыми типами данных данных КратностьВзаиморасчетов, Суммадокумента и т.д. Как упростить заполнение остальных реквизитов? Например, табличной части документа? Дело в том, что все справочники (Номенклатура, ЕдиницаИзмерения и проч.) у меня синхронизированы с com-базой (т.е. непосредственно в текущей базе их создать нельзя, и загружаются они исключительно через типовую обработку универсального обмена данными), различаются лишь документы, часть из которых и нужно перекинуть в com-базу. Самый простой способ (но и самый трудоемкий) - искать в соответствия справочников в com-базе через НайтиПоКоду... но это столько прописывать... может, есть способ проще? |
|||
1
Живой Ископаемый
05.07.12
✎
21:10
|
вторая база имеет такую же конфигурацию? данные там такие же? в смысле например справочник номенклатура там тоже справочник номенклатура, и элементы имею такие же уиды?
|
|||
2
Живой Ископаемый
05.07.12
✎
21:11
|
ага, увидел.. а синхринизированы они по УИДы, или по чертзнает чему?
Если первое, тогда прямой путь - XMLСтрока/XMLЗначение |
|||
3
suvolod
05.07.12
✎
21:17
|
По уиду. Писал правила выгрузки в КД2, в качестве источника/приемника там была указана одна и та-же конфа.
А небольшой пример XMLСтрока/XMLЗначение - можно? Не могу сообразить что мне это даст |
|||
4
Живой Ископаемый
05.07.12
✎
21:22
|
давай от обратного, покажи тот код, в который ты собрался вставлять код НайтиПоКоду
|
|||
5
suvolod
05.07.12
✎
21:23
|
сейчас.. минуту :)
|
|||
6
suvolod
05.07.12
✎
21:29
|
Док.Контрагент = ВнешнееСоединение.Документы.ПоступлениеТоваровИУслуг.НайтиПоКоду(ТекДок.Контрагент);
я попробовал твою наводку.. сделал так: СтрЗначение = XMLСтрока(ТекДок.Контрагент); Док.Контрагент=XMLЗначение("СправочникСсылка.Контрагенты", СтрЗначение); ..но этот код выдает ошибку |
|||
7
suvolod
05.07.12
✎
21:29
|
.. прошу прощения, в первой строчке ТекДок.Контрагент.Код
|
|||
8
Мимохожий Однако
05.07.12
✎
21:30
|
Текст ошибки в студию
|
|||
9
Живой Ископаемый
05.07.12
✎
21:31
|
5 сек
|
|||
10
suvolod
05.07.12
✎
21:31
|
{Документ.ПоступлениеТоваровУслуг.Форма.XФормаДокумента.Форма(3548)}: Ошибка при вызове метода контекста (XMLЗначение)
Док.Контрагент=XMLЗначение("СправочникСсылка.Контрагенты", СтрЗначение); по причине: Несоответствие типов (параметр номер '1') |
|||
11
Живой Ископаемый
05.07.12
✎
21:31
|
2(7) капец, ну здрасьте.. кто ж так делает
|
|||
12
suvolod
05.07.12
✎
21:32
|
в табло Контрагент - это точно СправочникСсылка.Контрагенты (не объект)
|
|||
13
suvolod
05.07.12
✎
21:32
|
а как правильно ?
|
|||
14
suvolod
05.07.12
✎
21:36
|
получилось :)
|
|||
15
suvolod
05.07.12
✎
21:37
|
пропустил Тип. Правильно надо было так:
Док.Контрагент=XMLЗначение(Тип("СправочникСсылка.Контрагенты"), СтрЗначение); Большое спасибо за наводку на XMLСтрока ! |
|||
16
Живой Ископаемый
05.07.12
✎
21:38
|
||||
17
suvolod
05.07.12
✎
21:42
|
ты прав конечно. писал на память, и забыл что при поиске по коду надо указывать дату для попадания в период поиска.
подскажи, я я могу так сериализовать всю табличную часть документа? Или надо перед этим надо сделать нечто вроде Тек.Товары.Выгрузить, сохранить / восстановить в xml, и только затем загружать? |
|||
18
Живой Ископаемый
05.07.12
✎
21:46
|
Все сразу одним-двумя операторами - вряд ли, и хотя для ТЗ написано что она сериализуется (поэтому можно было бы выгрузить ТЧ в ТЗ и последнюю сериализовать), у меня не вышло ни разу, как ни пытался. Так что только по строкам...
Но с другой стороны - кто я такой чтобы это заявлять? такой же 1Сник... Попробуй, вдруг у тебя получится. |
|||
19
suvolod
05.07.12
✎
21:47
|
спасибо :) буду пытаться.
|
|||
20
suvolod
05.07.12
✎
22:02
|
видимо ты прав. у меня не получилось даже сохранить выгруженную в ТЗ табличную часть.
ТЗ=ТекДок.Товары.Выгрузить(); СтрЗначение = XMLСтрока(ТЗ); На второй строке платформа просто выдает ошибку "Ошибка преобразования данных XML" |
|||
21
Живой Ископаемый
05.07.12
✎
22:13
|
вот-вот... Я пробовал создать даже тз с одной строкой, одной типизированной колонкой, в которой бы было например число 42, и получил тоже самое...
Но было бы круто, если бы у кого-то все-таки получилось бы |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |