Имя: Пароль:
1C
1С v8
Конвертация данных. Обработка ТабЧастей
,
0 efoi
 
03.05.12
09:49
Здравствуйте! Ситуация такая... Есть правила обмена между двумя базами. В базе источника данные которые надо перенести хранятся в справочнике ХранилищеДополнительнойИнформации, в базе приемника эти данные должны попасть в табличную часть документа. В общем необходимо запросом вытащить все прикрепленные файлы к документу из справочника и выгрузить их в табличную часть приемника. Примерно как должен выглядеть обработчик события в конвертации? И какой?
1 zak555
 
03.05.12
09:51
> которые надо перенести хранятся в справочнике ХранилищеДополнительнойИнформации


что же там хранится ?
2 efoi
 
03.05.12
09:53
Прикрепленные файлы к документу. Например формы или документы которые пользователь набрал в Word.
3 efoi
 
03.05.12
11:23
Дело даже не в файлах. Вопрос в том как собрать данные по базе источнику, сформировать таблицу значений и выгрузить ее в приемник, в таблицу документа. Вот в чем вопрос.
4 luckyluke
 
03.05.12
11:27
(0) Правила Выгрузки Данных, перед обработкой, выбирай запросом то что нужно, помещай в переменную ВыборкаДанных, одна строка = один документ, в ТЗ ВыборкаДанных добавь колонку с именем ТЧ документа приемника и запихни туда ТЗ с данными для ТЧ документа приемника.
5 efoi
 
03.05.12
11:32
дело в том что мне нужно получать по каждому документу реализация таоваров и услуг который будет выгружаться, в этом случае запросе мне каким образом прописать параметры?
6 luckyluke
 
03.05.12
11:34
(5) Не понял вопроса, еще раз формируй такую ТЗ, в которой одна строка = один документ на выгрузку.
7 efoi
 
03.05.12
11:38
у меня есть документы реализиция в источнике, к нему можно прикрепит несколько значений (так назовем) из отделбного справочника. А в приемник мне эти значения нужно перенести в таб часть. Строк на один док может быть несколько. Или я что-то не правильно понял.
8 luckyluke
 
03.05.12
11:43
(7) ну запихни регистратор в итоги, обходи запрос по группировкам и формируй нужную тебе ТЗ, где одна из колонок с типом таблица значений и именем табличной части документа приемника, куда ты и будешь записывать строки табличной части приемника.
9 efoi
 
03.05.12
12:19
Чет я тупонул) спасибо!
10 efoi
 
03.05.12
13:38
Сделал все как предложено выше, в ТЗ ВыборкаДанных появляется нужная мне колонка, с таблицей моих значений, в отладке проверил. Но загружает он по прежнему алгоритму. Подскажите что не так?
11 efoi
 
03.05.12
13:40
Кстати. Как тут сослаться на другой пост? Я новечек:)
12 zak555
 
03.05.12
13:41
13 vicof
 
03.05.12
13:42
(11) не "новечек", а "навичек". В скобках номер поста указывай.
14 efoi
 
03.05.12
13:45
Спасибо :)))
15 efoi
 
03.05.12
13:47
а на счет Правил есть какие-нибудь варианты?
16 efoi
 
03.05.12
14:42
+
17 GenV
 
03.05.12
14:44
(10) Где (в каком обработчике) писал код?
18 efoi
 
03.05.12
14:48
(17) Правила Выгрузки Данных, перед обработкой
19 efoi
 
03.05.12
14:49
(17) поставил произвольный алгоритм, убрал правило конвертации. Все равно по стандартному делает.
20 GenV
 
03.05.12
14:51
(18) ПКО нужно. Если формируешь ВыборкаДанных через ТЗ документов (т.е. ВыборкаДанных = ТЗ с реквизитами и ТЧ каждого документа), то поставил галку у ПКО документа "не запоминать выгруженные объекты" (иначе нужно инициализировать КлючВыгружаемыхДанных в ПКО)?
21 efoi
 
03.05.12
14:53
(20) Галка стоит. В ПКО я Должен добавить таб часть приемника?
22 GenV
 
03.05.12
15:01
(21)
1) Либо убери галку "не запоминать выгруженные объекты" для ПКО документа, либо почитай про заполнение "КлючВыгружаемыхДанных" ) Иначе выгрузиться только первый документ.
2) ПКО должно быть вида Источник - пусто, Приемник - реквизиты и ТЧ-ти с реквизитами приемника
3) В формируемое ТЗ в ПВД записываешь каждый документ построчно имена колонок соответствуют именам реквизитов и ТЧ приемника. В колонку ТЧ пишешь новую ТЗ с данными ТЧ каждого документа.
23 efoi
 
03.05.12
15:14
(22) > 2) ПКО должно быть вида Источник - пусто, Приемник - реквизиты и ТЧ-ти с реквизитами приемника

Пишет ошибку:
Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(7924)}: Поле объекта не обнаружено (Файлы).

Галку убрал.. грузиться только первый документ хотя с галкой грузились все записи.

3 пункт тоже соблюдается.
24 efoi
 
03.05.12
15:16
(22) Файлы это наименование ТЧ приемника
25 GenV
 
03.05.12
15:18
(24) ТЧ с реквизитами в ПКО есть с именем "Файлы"?
26 efoi
 
03.05.12
15:19
Да
27 efoi
 
03.05.12
15:20
(25) в приемнике, в источнике пусто
28 GenV
 
03.05.12
15:26
(26) Правила перевыгружал?
ЗЫ Можешь поставить галку "Отключить" для ТЧ. Проверить выгрузку без неё по этому алгоритму. Потом пробовать с ТЧ.
Ну и отладчик использовать (можно и Сообщить добавить в обработчики ПКО и ТЧ, чтобы проверять их значения).
29 efoi
 
03.05.12
15:30
(28) > Ну и отладчик использовать (можно и Сообщить добавить в обработчики ПКО

Что мне нужно получить в отладчике какой признак проверить?
30 Абыр
 
03.05.12
15:45
(0) я так понимаю, что нужно выгрузить документы, допустим, Реализация, при этом нужно все файлы из хран. доп. информации, относящиеся к каждому объекту перенести в ТЧ Файлы приемника?
Если так, то:
1) ПВД можно не трогать, оставляем обычную выгрузку
2) в ПКО нашего документа создаем новое ПКГС. Источник не заполняем, приемник - ТЧ Файлы
3) в обработчике ПКГС ПередОбработкой пишем:
31 Абыр
 
03.05.12
15:47
+ (30)
КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений");
КоллекцияОбъектов.НоваяКолонка("КолонкаТЧФайлы1");
...
+ алгоритм заполнения ТЗ. Названия колонок должны совпадать с названиями реквизитов ТЧ Файлы в приемнике
4) в нашем ПКГС добавляем ПКС для реквизитов ТЧ Файлы
32 efoi
 
03.05.12
15:54
Сейчас попробую
33 efoi
 
03.05.12
16:28
(31) Все получилось! Спасибо всем!! Ветка закрыта.
34 Suzumebachi
 
10.05.12
11:23
Можешь расписать, как сделал? Похожая проблема. Надо запросом из регистров источника данные собрать в табличную часть справочника на приемнике. Я еще пока только начинаю осваивать конвертацию.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn