7.7 Как заполнить табличную часть документа из excel файла?

Тема в разделе "Типовые решения "1С:Предприятие 7.7"", создана пользователем Dimka77, 14 авг 2009.

  1. TopicStarter Overlay
    Dimka77
    Offline

    Dimka77 Опытный в 1С

    Регистрация:
    6 июн 2009
    Сообщения:
    279
    Симпатии:
    0
    Баллы:
    26
    Скажите пожалуйста, как заполнить табличную часть документа "Заказ поставщику" в ТиС из excel-таблицы?
  2. ivanov.nickolay
    Offline

    ivanov.nickolay

    Регистрация:
    5 окт 2008
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Получить доступ к Екселю через COM
    Обойти все строки таблицы, подставляя значения в табличную часть документа, одновременно, если надо, производя поиск и подстановку ссылок из справочников.
  3. TopicStarter Overlay
    Dimka77
    Offline

    Dimka77 Опытный в 1С

    Регистрация:
    6 июн 2009
    Сообщения:
    279
    Симпатии:
    0
    Баллы:
    26
    А может кто знает такую обработку, для 8-ки на диске ИТС есть такая обработка (ЗагрузкаДанныхИзТабличногоДокумента.epf - назывется), а есть ли такая обработка для 7-ки?
  4. ech
    Offline

    ech

    Регистрация:
    3 авг 2009
    Сообщения:
    22
    Симпатии:
    0
    Баллы:
    1
    Универсальной для 7ки не видел. Вообще она делаеться за полчас-час. Но это уже скорее комерческое предложение, будешь писать сам, кидай вопросы помогу. По другому ток за денюжку
  5. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    пишешь обработку, если по-простому то выглядеть она будет примерно так:

    Код:
    ...
    ПутьXLS = "c:\";
    FS.SetCurrentDirectory(ПутьXLS);
    pFile = FS.FindFirstFile("1.xls");			                                                
    If (FS.ExistFile(pFile) = 1) Then
    cFileName = ПутьXLS+pFile;
    oXLS = CreateObject("Excel.Application"); 
    pXLS = oXLS.Workbooks.Open(cFileName,0,1);
    pSheet = pXLS.Sheets("ИмяЛиста");
    oVT = CreateObject("ValueTable");
    ... //Тут делаешь функцию если файлы xls у тебя могут быть разными по структуре, 
    //например каждый раз разные колонки в разных местах и т.п. или
    //если все хорошо с этим, то просто задаешь структуру Таблицы значений с нужными тебе колонками
    ... 
    //тут пишешь функцию если нужен универсализм (т.е. как я сказал выше xls разные по структуре), если не нужен делаешь так:
    nStr = 1; //строка начала выборки
    nColView = 1; //колонка в которой проверяем существование данных
    While EmptyValue(TrimAll(Sheet.Cells(nStr,nColView).Text))=0 Do
    oVT.NewLine();
    oVT.ТакойТоСтолбец = Sheet.Cells(nStr,nCol).Value; //nCol - колонка из которой тянешь данные
    oVT.ТакойТоСтолбец2 = Sheet.Cells(nStr,nCol2).Value; 
    ...                                                 
    nStr = nStr+1;
    EndDo;
    ... //Ну а дальше уже из таблицы заполняешь ТЗ документа
    //это простой способ если данных в Экселе у тебя не так много, если таблицы большие, то придется уже действовать 
    //другими способами, т.к. подобная загрузка будет слишком медленной.
    EndIf;		
    
    ...
    
    

Поделиться этой страницей