|
v7: Своя выгрузка документов и справочников с нуля ТиС | ☑ | ||
---|---|---|---|---|
0
FREEEEs
24.08.11
✎
01:38
|
Всем привет братья.
Тут такую работу дали, нужно для одной компании сделать выгрузку из ТиС в другие 4 базы. Сначала думал, что выбрать txt или xml, выбрал xml Кто делал такие выгрузки конкретных документов и загрузки, поделитесь опытом. Я уже начал делать, делаю пока так: В функцию передаём имя документа, потом через Метаданные.Документ(Имя) выгружаем по циклу все реквизиты документа, потом по опять же циклу выгружаем всю табличную часть документа и + опять цикл выгрузки всех реквизитов табличной части. И тут попа, очень долго всё происходит, т.к много циклов, но именно так я хотел сделать что то типа универсальности, что бы потом просто пишешь ВыгрузитьОбъект("Документ","Реализация"); ВыгрузитьОбъект("Документ","Лалала"); и он на автомате выгружаем этот документ, потом переходит по ссылкам в нём и захватывает в справочник данные нужные. Минусы; 1) Очень долго начал работать, т.к каждый раз по циклу узнаёт список реквизитов, может быть узнать один раз список реквизитов и засунуть их в ТаблицуЗначений. 2) Формируется нереально большой xml файл, именно в месте где ХМЛ.УстановитьАтрибут занимает 65% времени. А может лучше и быстрее делать прямые запросы в базу, Нежели через метаданные ? P.S Короче, скажите как лучше. |
|||
1
Злопчинский
24.08.11
✎
01:41
|
Универсализм - в частном случае = зло. Сделайц тупую конкретную выгрузку под эту конкретную задачу.
. похерить нафиг парсер иксемеля. тупо формировать нужные строки и писать в обычный текстовый файл. для выгрузки - алгоритм усложнится совсем ненамного... . имхо ясен пень все... |
|||
2
FREEEEs
24.08.11
✎
01:48
|
Злопчинский
То-есть ты за txt формат? Просто я изначально делал txt а другие кодеры в офисе начали вонять типа, лучше xml, ну и переделал в xml и веса стало больше в пятьсот раз |
|||
3
nicxxx
24.08.11
✎
02:28
|
если хочешь работать с XML и хочешь универальность - юзай конвертацию данных. у тебя базы ТиС все одинаковые? тогда там руками почти ничего не надо будет делать, все правила будут созданы автоматически, только подправить поля поиска кое-где, типа добавить включить поиск по Владельцу в единицах и договорах.
но если базы на одном сервере или расшарены по сети, то по OLE будет интереснее обмениваться, не будет теряться время на создание файла данных. ну а так, в (1) правильно написано - за универсальность надо платить скоростью и размером файла. |
|||
4
Злопчинский
24.08.11
✎
02:30
|
(2) неправильно понял.
XML - это обычный текстовый файл (в UTF-ной кодировке) ну так и пиши его САМОСТОЯТЕЛЬНО как текст. |
|||
5
nicxxx
24.08.11
✎
02:36
|
(4) если писать как текст, то нет смысла вобще париться с тэгами XML, проще придумать 2 вида разделителя - для документа/справочника и для табл части и писать что-то вроде
{Документ.Реализация №0000001 25.01.11} ЗначениеРеквизита1|ЗначениеРеквизита2 {Строки} 1|ЗначениеРеквизитаТЧ1|ЗначениеРеквизитаТЧ2 2|ЗначениеРеквизитаТЧ1|ЗначениеРеквизитаТЧ2 {Документ.Реализация №0000002 25.01.11} ну и так далее |
|||
6
Злопчинский
24.08.11
✎
03:47
|
(5) гумс.. у мня примерно так и сделано ;-)
|
|||
7
FREEEEs
24.08.11
✎
04:04
|
Изначально у меня был такой формат текстовый :
1 строка) НомерДок(Табуляция)ДатаДок(Табуляция)..... и т.д 2 строка) Первая строка таблицы - Название(Табуляция)ПолнНазвание... и т.д Вот так выгружался список документов, всё было очень быстро и отлично. Но чисто логически потом понадобилось добавлять те значение (товары, контрагенты, договора) которые использовались в документах или в табличной части документа. То-есть кроме документов, выгружать и товары, контрагентов которые относятся к этим документам и тут я запутался и начал делать XML (о чём пожалел) |
|||
8
FREEEEs
24.08.11
✎
04:12
|
nicxxx
Нет базы все разные, из ТиС(7.7) в БухУчёт(7.7), Предприниматель(7.7), БухУчёт(8.2) и т.п P.S как тут отвечать кому то на сообщение (чтоб в скобках цифра была) |
|||
9
Злопчинский
24.08.11
✎
04:18
|
(7) понимаешь, тут вопрос в чем.. есть ОГРАНИЧЕННЫЙ НАБОР ключевых параметров, например дл ятовара - Наименование и некий уникальный код... - выгружаем их, для контрагентов - наименование, ИНН,КПП,адрес, банковские реквизиты - выгружаем их.
. при загрузке ориентируемся на известный предопределенный перечнь ключевых реквизитов.. . если же перегружать 1-к-1 - то да, тогда делаем полный обход метаданных и выгружаем примерно как ты описал... . тупая рекурсивная выгрузка будет долго идти... добавим ей интеллектуальности: для каждого объекта метаданных будем вести список уже выгруженных ранее экземпляров, вплоть до того, что для каждого экземпляра будем хранить готовый текстовый кусок выгрузки. . получили очередной объет метаданных - проверили - он уже есть среди выгруженных - да, тупо взяли УЖЕ ранее ОДИН раз сформированный кусок для этого объекта - выпихнули в файл... . таким образом тебе придется при выгрузке формировать дерево тегов для каждого объекта всего один раз, а потом брать готовое, при этом - не опускаясб в глубину иерархии (так как ты это делал уже ранее).. . хотя конечно не все так просто... . а если соответсвенно ты будешь писать иксемельный файл как простой текстовый файл - то выгрузка быстро пройдет... . хотя возможно я хрень излагаю.. не люблю я выгрузки загрузки... . |
|||
10
Злопчинский
24.08.11
✎
04:19
|
так и пиши символами: скобка номер поста скобка
|
|||
11
Злопчинский
24.08.11
✎
04:20
|
возьми например посмотри типовую выгрузку типа tranref.ert или import.ert + export.ert
|
|||
12
nicxxx
24.08.11
✎
07:56
|
(0) да ты из Хабаровска :) ща я тебе по мылу напишу
|
|||
13
DJ Anthon
24.08.11
✎
08:00
|
CommerceML ;)
|
|||
14
FREEEEs
24.08.11
✎
08:11
|
Ок спс
|
|||
15
1Сергей
24.08.11
✎
08:32
|
Я делал в csv (текстовый, разделённый ;). Удобно просматривать в excel-е
|
|||
16
Ёпрст
24.08.11
✎
08:41
|
(0) ну и нафига этот велосипед ?
всё уже есть готовое и как грязи.. |
|||
17
Mikeware
24.08.11
✎
08:41
|
(16) У других велосипедов колеса слишком круглые...
|
|||
18
FREEEEs
24.08.11
✎
09:00
|
Поговорили с директором (он эксперт), посоветовал мне через Конвертацию Данных делать, думаю буду делать так.
Всем спасибо господа !11 |
|||
19
nicxxx
24.08.11
✎
09:06
|
(18) я то же самое в (3) сказал
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |