Excel и 1С

Тема в разделе "1C и всё что с ней связано", создана пользователем ech, 29 янв 2009.

  1. ech

    ech Гость

    Добрый день, есть файлик ексель, в нем объединены две ячкйки в одну, первая и вторая, и в этой ячейки запись "2-5". я загоняю эту ячейку в ТЗ и хочу увидеть в 1 столбце ТЗ 2, а во втором цифру 5, т.е. разбить нада. Вопрос как??
     
  2. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    если там разделитель всегда один и тот же, сделай так :
    // к - счетчик цикла
    Field = ExcelApp.Cells(k,1).Value; // 1 - номер ячейки Excel
    Defis = Find(Field,"-");
    Field1 = Left(Field(Defis-1);
    Field2 = Right(Field(StrLen(Field)-Defis);
    //В поле Field1 будет 1-е число, В поле Field2 - второе и далее загоняй их в ТЗ
     
  3. ech

    ech Гость

    что то не особо получаеться
     
  4. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    если не получается, подробно опиши причину
     
  5. ech

    ech Гость

    Field = ВходExcel.Cells(Ном,1).Value;
    Defis = Find(Field,"-");
    Field1 = Left(Field(Defis-1);
    Field2 = Right(Field(StrLen(Field)-Defis);

    Field1 = Left(Field<<?>>(Defis-1);
    Field2 = Right(Field<<?>>(StrLen(Field)-Defis);
    Функция не обнаружена (Field) выдает ошибку
     
  6. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Вот так правильно, что-то намудрил я с синтаксисом
    Field1 = Left(Field,Defis-1);
    Field2 = Right(Field,StrLen(Field)-Defis);
     
  7. ech

    ech Гость

    А ты не мог бы написать присобачить его к моему коду. а то я не вкурю как. сенкс
    Вот код:

    Процедура Сформировать()

    Перем ЗапущенExcel;
    ВходExcel = СоздатьОбъект("Excel.Application");
    _тз = СоздатьОбъект("ТаблицаЗначений");
    ВходнойФайлОткрыт = 1;
    ЗапущенExcel=1;

    Если ЗапущенExcel=1 Тогда
    ВходExcel.Application.Workbooks.Open(КаталогЗаявок);
    КонецЕсли;
    КонечнаяСтрока = 33;
    _тз.НоваяКолонка("ВесНач");
    _тз.НоваяКолонка("ВесКон");
    _тз.НоваяКолонка("З1");
    _тз.НоваяКолонка("З2");
    _тз.НоваяКолонка("З3");
    _тз.НоваяКолонка("З4");
    _тз.НоваяКолонка("З5");
    _тз.НоваяКолонка("З6");
    _тз.НоваяКолонка("З7");
    _тз.НоваяКолонка("З8");
    _тз.НоваяКолонка("З9");
    _тз.НоваяКолонка("З10");
    _тз.НоваяКолонка("З11");
    _тз.НоваяКолонка("СуммаДД");

    Для Ном=1 По КонечнаяСтрока Цикл


    Field = ВходExcel.Cells(Ном,1).Value;
    Defis = Find(Field,"-");
    Field1 = Left(Field,Defis-1);
    Field2 = Right(Field,StrLen(Field)-Defis);
    _тз.НоваяСтрока();
    _тз.ВесНач=Field1;//Число(СокрЛП(ВходExcel.Cells(Ном,2).Value));
    _тз.ВесКон=Field2;//Число(СокрЛП(ВходExcel.Cells(Ном,2).Value));
    _тз.З1=Число(СокрЛП(ВходExcel.Cells(Ном,7).Value));
    _тз.З2=Число(СокрЛП(ВходExcel.Cells(Ном,8).Value));
    _тз.З3=Число(СокрЛП(ВходExcel.Cells(Ном,9).Value));
    _тз.З4=Число(СокрЛП(ВходExcel.Cells(Ном,10).Value));
    _тз.З5=Число(СокрЛП(ВходExcel.Cells(Ном,11).Value));
    _тз.З6=Число(СокрЛП(ВходExcel.Cells(Ном,12).Value));
    _тз.З7=Число(СокрЛП(ВходExcel.Cells(Ном,13).Value));
    _тз.З8=Число(СокрЛП(ВходExcel.Cells(Ном,14).Value));
    _тз.З9=Число(СокрЛП(ВходExcel.Cells(Ном,15).Value));
    _тз.З10=Число(СокрЛП(ВходExcel.Cells(Ном,16).Value));
    _тз.З11=Число(СокрЛП(ВходExcel.Cells(Ном,17).Value));
    _тз.СуммаДД=Число(СокрЛП(ВходExcel.Cells(Ном,4).Value));
    КонецЦикла;
     
  8. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Для Ном=1 По КонечнаяСтрока Цикл
    _тз.НоваяСтрока();
    Field = ВходExcel.Cells(Ном,1).Value;
    Defis = Find(Field,"-");
    Field1 = Left(Field,Defis-1);
    Field2 = Right(Field,StrLen(Field)-Defis);
    _тз.ВесНач=Field1;
    _тз.ВесКон=Field2;
    _тз.З1=Число(СокрЛП(ВходExcel.Cells(Ном,7).Value));
    и т.д.
     
  9. ech

    ech Гость

    пасиб...
     
Загрузка...

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