1С и Excel

Excel гораздо старше 1С. Excel прост и универсален. Он способен выполнять не только простые арифметические операции, но и сложные вычисления, построение графиков и т.п. Есть примеры, когда организации до перехода на 1С вели часть бухгалтерии в Excel. Многие и сейчас параллельно используют две программы. Очень часто В этой статье рассмотрим способы обмена данными между 1С и Excel.
Многие пользователи для удобства работы сохраняют таблицы 1С (печатные формы) в формате Excel (*.xls). После чего в полученном файле делают различные группировки, сортировки, вычисления и т.п. Связано это с тем, что в таблицах 1С нет такого огромного функционала как в таблицах Excel.
На сайте 1С (www.1C.ru) есть полезная программка, которая дает возможность открывать таблицы 1С в Excel и сохранять лист Excel как таблицу 1С. Это пригодится в том случае, если таблицу 1С не сохранили в формате Excel, а на том компьютере, где нужно открыть эту таблицу не установлена 1С. Да и постоянно помнить о том, что сохранить таблицу 1С нужно в формате Excel, не будет необходимости.
Скачать программу можно здесь (архив zip 682 739 байт).
Замечание: В Excel разделителем дробной части считается символ ",". Поэтому перед сохранением таблицы 1С в формате Excel замените в ней другой разделитель (например ".") на ",". Иначе в Excel с этими числами не удастся произвести вычисления, или они вообще не будут отображаться как числа. Например, в таблице 1С "15.2" отобразится в Excel как "15.фев".

Получение данных из Excel

Доступ из 1С к Excel производится посредством OLE. Например, код

Попытка

Эксель = СоздатьОбъект("Excel.Application");

Исключение

Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");

Возврат;

КонецПопытки;

позволит получить доступ через переменную "Эксель" к запущенному приложению Excel. А далее уже можно получить доступ к книге (файлу), листу и ячейке с данными.Чтобы открыть книгу (файл)

Книга = Эксель.WorkBooks.Open(ПутьКФайлу);

ПутьКФайлу - полный путь к файлу книги Excel.

Выбор листа книги для работы с ним:

Лист = Книга.WorkSheets(НомерЛиста);

или

Лист = Книга.WorkSheets(ИмяЛиста);

НомерЛиста - номер листа в книге, ИмяЛиста - имя листа в книге.

Получение значения ячейки листа:

Значение = Лист.Cells(НомерСтроки, НомерКолонки).Value;

НомерСтроки, НомерКолонки - номер строки и номер колонки, на пересечении которых находится ячейка.

Важно: не забывайте поле выполнения нужных действий добавлять код Эксель.Quit(); , иначе запущенный процесс останется незавершенным и будет занимать память и процессор компьютера.

Вывод данных в Excel

Для вывода (выгрузки) данных в Excel необходимо либо открыть существующую книгу, либо создать новую, и выбрать рабочий лист для вывода данных. Открытие существующей книги описано выше, а для создания новой книги нужно использовать следующий код:

Попытка

Эксель = СоздатьОбъект("Excel.Application");

Исключение

Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");

Возврат;

КонецПопытки;

Книга = Эксель.WorkBooks.Add();

Так как при создании книги в Excel автоматически создаются листы (Сервис->Параметры->Общие->Листов в новой книге), то нужно лишь произвести выбор листа, с которым будет вестись работа:

Лист = Книга.WorkSheets(НомерЛиста);

либо добавить в книгу новый лист, если необходимо:

Лист = Книга.Sheets.Add();

Следующим шагом будет установка значения ячейки:

Лист.Cells(НомерСтроки, НомерКолонки).Value = Значение;

НомерСтроки, НомерКолонки - номер строки и номер колонки, на пересечении которых находится ячейка.

И в конце нужно произвести запись созданной книги:

Попытка

Книга.SaveAs(ПутьКФайлу);

Исключение

Сообщить(ОписаниеОшибки()+" Файл не сохранен!");

Возврат;

КонецПопытки;

ПутьКФайлу - полный путь к файлу книги Excel (включая имя).

Важно: не забывайте, что в имени файлов не должно содержаться символов \ / : * ? " > <