Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

1С: Обмен опытом Выпуск №1


Выпуск №1 от 9 марта 2006 года.

Архив рассылки

Посоветуйте рассылку друзьям и знакомым. Для этого просто перешлите это письмо.
Подписаться на рассылку можно на сайте или письмом.

Приветствую всех, читающих эту рассылку.

Признаюсь, очень обрадован тем, что на рассылку появились подписчики. Надеюсь, что число их будет постоянно расти. Рассылка только начинает своё существование, и чтобы пойти по верному направлению, призываю Вас, уважаемые читатели, присылать письма с вопросами, идеями и предложениями мне.
Во всех выпусках речь будет идти о версии программы 7.7, о других версиях будет выдаваться предупреждение.

Сегодня в выпуске:

1С и Excel.

Часть 1.

Многие пользователи для удобства работы сохраняют таблицы 1С (печатные формы) в формате Excel (*.xls). После чего в полученном файле делают различные группировки, сортировки, вычисления и т.п. Связано это с тем, что в таблицах 1С нет такого огромного функционала как в таблицах Excel. Но в версии 8.0 есть нововведения, делающих работу с таблицами более комфортной.

На сайте 1С (www.1C.ru) есть полезная программка, которая дает возможность открывать таблицы 1С в Excel. Это пригодится в том случае, если таблицу 1С не сохранили в формате Excel, а на том компьютере, где нужно открыть эту таблицу не установлена 1С. Да и постоянно помнить о том, что сохранить таблицу 1С нужно в формате Excel не нужно будет.

Полная информация о программе находится здесь.
Скачать программу можно здесь (архив zip 682 КБ).

ЗАМЕЧАНИЕ: В Excel разделителем дробной части считается символ ",". Поэтому перед сохранением таблицы 1С в формате Excel замените в ней другой разделитель на ",". Иначе в Excel с этими числами не удасться произвести вычисления, или они вообще не будут отображаться как числа. Например, в таблице 1С "15.2" отобразится в Excel как "15.фев".

Часть 2.

Теперь о том, как программно создать или получить данные из файла Excel.

Доступ из 1С к Excel производится посредством OLE. Например, код
Попытка
 Эксель = СоздатьОбъект("Excel.Application");
Исключение
 Сообщить(ОписаниеОшибки() + "; Программа Exсel не установлена на данном компьютере!");
 Возврат;
КонецПопытки;
позволит нам получить доступ через переменную "Эксель" к запущенному приложению Excel. А далее уже можно получить доступ к книге (файлу), листу и ячейке с данными. Далее приведу примеры кода.

Открытие книги (файла):
Книга = Эксель.WorkBooks.Open(ПутьКФайлу);
ПутьКФайлу
- полный путь к файлу книги Excel.

Выбор листа книги для работы с ним:
Лист = Книга.WorkSheets(НомерЛиста);
или
Лист = Книга.WorkSheets(ИмяЛиста);
НомерЛиста
- номер листа в книге, ИмяЛиста - имя листа в книге.

Получение значения ячейки листа:
Значение = Лист.Cells(НомерСтроки, НомерКолонки).Value);
НомерСтроки
, НомерКолонки - номер строки и номер колонки, на пересечении которых находится ячейка.

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

Примеры кода для создания новой книги.

создание новой книги:
Книга = Эксель.WorkBooks.Add();

Выбор листа книги для работы с ним:
Лист = Книга.WorkSheets(НомерЛиста);
При создании книги доступ к листу нужно получать через его номер. По умолчанию в Excel в новой книге содержится 3 листа. Для добавления новых листов используйте код Книга.Sheets.Add().

Установка значения ячейки листа:
Лист.Cells(НомерСтроки, НомерКолонки).Value) = Значение;
НомерСтроки
, НомерКолонки - номер строки и номер колонки, на пересечении которых находится ячейка.

И напоследок пара полезных советов.

Знаете ли Вы, что...
...в таблице 1С, выделив ячейки с числами и нажав кнопку "М" на панели инструментов, в памяти компьютера сохранится сумма выделенных ячеек (в случае, если разделитель дробной ".").

...при возникновении вопросов, связанных с написанием кода в 1С при работе с Excel, используйте инструмент "Запись макроса" в Excel. При этом все Ваши действия будут записаны в макрос, который потом можно будет просмотреть, и нужный код перенести в 1С.

Ваши вопросы, идеи и предложения присылайте мне.

Удачи!


В избранное