Имя: Пароль:
1C
1С v8
Запись excel через ado. Две таблицы на 1 листе. Как?
0 arsik
 
гуру
14.05.14
11:31
Возможно записать через адо вот такой вариант?
https://drive.google.com/file/d/0B8wzuvncNxsqeFhUTjktVFc1c2c/edit?usp=sharing

Не могу сообразить как.
1 arsik
 
гуру
14.05.14
11:32
При чем первая таблица без шапки должна быть. Такое вообще возможно через адо?
2 ptiz
 
14.05.14
11:33
А где там 2 таблицы?
Лист-то один, просто визуально выглядит как две таблицы.
3 arsik
 
гуру
14.05.14
11:49
И как ты предлагаешь через адо создать такую таблицу?
https://drive.google.com/file/d/0B8wzuvncNxsqRzljRHJEUl9EakE/edit?usp=sharing

Там же при создании обязательно наименования колонок вылазят первой строкой.
4 Godofsin
 
14.05.14
11:50
(3) эээ... чо?
5 Nite
 
14.05.14
11:53
Позиционируешься на нужной колонке и строке, вставляешь туда свои данные, дополнительно описываешь необходимое оформление ячейки. В чем проблема?
6 arsik
 
гуру
14.05.14
11:59
(5) Оформление через адо? Ты наверно про ole.
(4) А что не так?
7 ptiz
 
14.05.14
13:28
(6) А как ты собираешься оформление задавать в случае "одной таблицы"?
8 arsik
 
гуру
14.05.14
13:55
(7) Да на оформление плевать. Главное что бы значения в своих ячейках были.
9 arsik
 
гуру
15.05.14
13:54
Сделал но через ЖПО :)) recordset

    Коннект = Новый COMОбъект("ADODB.Connection");
    РекордСет = Новый COMОбъект("ADODB.Recordset");
    
    ИмяФайлаЭксель = ПолучитьИмяВременногоФайла(".xls");
    
    СтрокаПодключения =
        "Provider=Microsoft.Jet.OLEDB.4.0;
        |Data Source="+ИмяФайлаЭксель+";
        |Extended Properties=""Excel 8.0;HDR=NO;"";";
            
    Коннект.ConnectionString = СтрокаПодключения;
    Коннект.Mode = 3;
    Коннект.CursorLocation = 3;
    Коннект.Open();
    
    //создаем листы
    Коннект.Execute("CREATE TABLE [SET] (tmp0 char(255),tmp1 char(255),tmp2 char(255),tmp3 char(255),tmp4 char(255),tmp5 char(255),tmp6 char(255),tmp7 char(255))");
    Коннект.Execute("CREATE TABLE [Accessory] (tmp0 char(255),tmp1 char(255),tmp2 char(255),tmp3 char(255),tmp4 char(255),tmp5 char(255),tmp6 char(255),tmp7 char(255),tmp8 char(255),tmp9 char(255))");
    Коннект.Execute("CREATE TABLE [Inventory] (tmp0 char(255),tmp1 char(255),tmp2 char(255),tmp3 char(255))");
    Коннект.Close();
    
    Коннект.Open();
        
//************* ПРОДАЖИ ОСНОВНЫЕ *************

    РекордСет.Open("Select * from [SET]", Коннект, 1, 3);
    
    //Заполним первую строку - сейчас это шапка таблицы созданной при создании листа
    РекордСет.Fields(0).Value = СокрЛП(БрендШоп);
    РекордСет.Fields(1).Value = формат(ОкончаниеПериода,"ДФ=yyyyMMdd");
    РекордСет.Fields(2).Value = формат(МагазинПродаж.КоличествоПосетителей,"ЧДЦ=0; ЧГ=0");
    РекордСет.Fields(3).Value = формат(МагазинПродаж.Регистратор,"ЧДЦ=0; ЧГ=0");
    РекордСет.Fields(4).Value = "";
    РекордСет.Fields(5).Value = "";
    РекордСет.Fields(6).Value = "";
    РекордСет.Fields(7).Value = "";
    РекордСет.Update();
    
    //добавим нужную нам шапку
    РекордСет.AddNew();
    РекордСет.Fields(0).Value = "Серийный номер";
    РекордСет.Fields(1).Value = "Цена товара";    
    РекордСет.Fields(2).Value = "ФИО покупателя";    
    РекордСет.Fields(3).Value = "Номер телефона покупателя";    
    РекордСет.Fields(4).Value = "Адрес электронной почты";
    РекордСет.Fields(5).Value = "Номер чека";
    РекордСет.Fields(6).Value = "Номер участника программы";
    РекордСет.Fields(7).Value = "Номер купона";
    РекордСет.Update();
    
    //заполним строки
    Для Каждого СтрокаПродажи из МагазинПродаж.Строки Цикл
        РекордСет.AddNew();
        РекордСет.Fields(0).Value = СокрЛП(СтрокаПродажи.СерияНоменклатуры);
        РекордСет.Fields(1).Value = Формат(СтрокаПродажи.Сумма/?(СтрокаПродажи.Количество = 0,1,СтрокаПродажи.Количество),"ЧДЦ=2; ЧРД=,; ЧГ=0");
        РекордСет.Fields(5).Value = СокрЛП(СтрокаПродажи.Регистратор.Номер);
        РекордСет.Update();
    КонецЦикла;
    РекордСет.Close();
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой