Имя: Пароль:
1C
1С v8
Загрузка в Excel
0 bcosta
 
29.11.13
10:27
Здравствуйте. Есть обработка, которая выгружает данные в 1С из Excel. Подскажите, что в ней нужно изменить, чтобы было наоборот - из 1С в Excel.



Попытка
        Состояние("Открытие Excel файла...");
        XLSОбъектОсн = Новый COMОбъект("Excel.Application");
    Исключение
        Сообщить("Не удалось загрузить MS Excel. " + Символы.ПС + ОписаниеОшибки(),
        СтатусСообщения.Важное);
        Возврат;
    КонецПопытки;
        
    Попытка
        XLSОбъект = XLSОбъектОсн.WorkBooks.Open("C:\файл.xls");
    Исключение
        Сообщить("Не удалось открыть файл MS Excel. " + Символы.ПС + ОписаниеОшибки(),
        СтатусСообщения.Важное);
        Возврат ;
    КонецПопытки;
    
    Лист = XLSОбъект.Sheets(1);
    НомерПоследнейСтроки = Лист.UsedRange.Rows.Count + Лист.UsedRange.Row - 1;
    
    Для Сч = 1 ПО НомерПоследнейСтроки Цикл
        
        Состояние("Загружается " + Сч + " из " + НомерПоследнейСтроки);
        
        ОбработкаПрерыванияПользователя();
        
        
        
        //Получение данных из ячеек таблицы Excel.
        Перем1 = СокрЛП(Лист.Cells(Сч, 1).Text);
        Перем2 = СокрЛП(Лист.Cells(Сч, 2).Text);
        Перем3 = СокрЛП(Лист.Cells(Сч, 3).Text);

Далее какие-то вычисления;

КонецЦикла;
    XLSОбъектОсн.Quit();
1 Wobland
 
29.11.13
10:27
ТабДок.Записать
2 bcosta
 
29.11.13
10:47
(1) Это, простите, куда впендюрить?)
3 xenos
 
29.11.13
10:49
Лист.Cells(Сч, 1).Text    = СокрЛП(Перем1);
Лист.Cells(Сч, 2).Text    = СокрЛП(Перем2);
Лист.Cells(Сч, 3).Text    = СокрЛП(Перем3);
4 bcosta
 
29.11.13
10:52
(3) Т.е. тупо местами поменять, а остальное все так же?
Понятно. Тогда еще вопрос появился. Это мы берем из уже готового файла. А как создать файл, а потом записать в него?
5 butterbean
 
29.11.13
10:53
(4) просто сделай таб. документ в 1С, заполни как обычно, потом Записать() и всё
6 xenos
 
29.11.13
11:11
(4)
Попробуй так:
XLSОбъект = XLSОбъектОсн.WorkBooks.Add()
XLSОбъект.Worksheets.Add.Name = "Ваше имя"
....

XLSОбъект.SaveAs "C:\Temp\Ваше имя.xls"
7 bcosta
 
29.11.13
11:15
(3) {ВнешняяОбработка.ВыгрузкаДанных.МодульОбъекта(51)}: Поле объекта недоступно для записи (Text)
        Лист.Cells(Сч, 1).Text = СокрЛП(Перем);
8 xenos
 
29.11.13
11:20
Попробуй Лист.Cells(Сч, 1).Value
9 xenos
 
29.11.13
11:21
+ Сч - случайно не равен 0?
10 bcosta
 
29.11.13
11:34
(8) Так получилось. Спасибо. Только появляется в конце окошко с вопросом, сохранить ли изменения в файле. Можно как-то это обойти?
11 xenos
 
29.11.13
12:19
(10) ХЗ поищи по VBA может найдешь
12 13_Mult
 
29.11.13
13:06
UP
13 Lama12
 
29.11.13
13:07
(12) Чего тут апать? Справка по VBA. Там даже по русски написано.
14 bcosta
 
29.11.13
13:48
(13) Я-то все уже понял. Мне ап не нужен был.
Всем спасибо.