| 
    
            
         
         | 
    
    
  | 
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) сказал     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |