Универсальная обработка выгрузки и загрузки данных 1с 8 3 excel
Существует несколько способов программной работы с файлами Excel из 1С. Каждый из них имеет свои преимущества и недостатки.
Обмен через табличный документ
Данный способ простой. Его суть заключается в том, что объект ТабличныйДокумент имеет методы:
- Записать (< ИмяФайла >, < ТипФайлаТаблицы >) для выгрузки данных в файл;
- Прочитать (< ИмяФайла >, < СпособЧтенияЗначений >) для загрузки данных из файла.
Внимание!
Метод Записать () доступен как на клиенте, так и на сервере. Метод Прочитать () доступен только на стороне сервера. Необходимо помнить об этом
при планировании клиент-серверного взаимодействия.
Рассмотрим пример сохранения табличного документа в файл. Необходимо любым способом создать и заполнить объект ТабличныйДокумент, а выгрузка в файл осуществляется всего лишь одной строкой:
ТабДок . Записать ( ПутьКФайлу , ТипФайлаТабличногоДокумента . XLSX );
Загрузка из файла осуществляется также достаточно просто:
ТабДок = Новый ТабличныйДокумент ;
ТабДок . Прочитать ( ПутьКФайлу , СпособЧтенияЗначенийТабличногоДокумента.Значение );
Обмен через OLE
Обмен через технологию OLE automation, пожалуй, самый распространенный вариант программной работы с файлами Excel. Он позволяет использовать весь функционал, предоставляемый Excel, но отличается медленной скоростью работы по сравнению с другими способами. Для обмена через OLE требуется установка MS Excel:
- На компьютере конечного пользователя, если обмен происходит на стороне клиента;
- На компьютере сервера 1С:Предприятие, если обмен происходит на стороне сервера.
Пример выгрузки:
Примеры чтения:
Для обхода всех заполненных строк листа Excel можно использовать следующие приемы:
Вместо последовательного обхода всех строк листа можно выгрузить все данные в массив и работать с ним. Такой подход будет быстрее при чтении большого объема данных:
ВсегоКолонок = Лист . Cells ( 1 , 1 ). SpecialCells ( 11 ). Column ;
ВсегоСтрок = Лист . Cells ( 1 , 1 ). SpecialCells ( 11 ). Row ;Область = Лист . Range ( Лист . Cells ( 1 , 1 ), Лист . Cells ( ВсегоСтрок , ВсегоКолонок ));
Данные = Область . Value . Выгрузить ();
В таблице ниже приведены наиболее востребованные свойства и методы для работы с Excel через OLE:
Для того, чтобы узнать какое свойство нужно менять или какой метод вызвать можно воспользоваться макросами Excel. Если записать макрос с требуемыми действиями, то после можно посмотреть программный код на VBA записанного макроса.
Использование COMSafeArray
Обмен через ADO
Файл Excel при обмене через ADO представляет собой базу данных, к которой можно обращаться при помощи SQL-запросов. Установка MS Excel не требуется, но обязательно наличие драйвера ODBC, при помощи которого будет осуществляться доступ. Используемый драйвер ODBC определяется при указании строки соединения к файлу. Обычно требуемый драйвер уже установлен на компьютере.
Обмен через ADO заметно быстрее обмена через OLE, но при выгрузке нет возможности использовать функционал Excel для оформления ячеек, разметки страниц, задания формул и т.д.
Пример выгрузки:
Для создания нового листа и формирования его структуры можно воспользоваться объектами ADOX.Catalog и ADOX.Table. В этом случае код примет вид:
В приведенном примере в методе
во втором параметре указывается тип колонки. Параметр необязательный, вот некоторые значения типа колонки:
Пример чтения:
В строке соединения параметр HDR определяет как будет восприниматься первая строка на листе. Возможны варианты:
В приведенных примерах рассмотрено лишь несколько объектов ADO. Объектная модель ADO состоит из следующих объектов:
- Connection;
- Command;
- Recordset;
- Record;
- Fields;
- Stream;
- Errors;
- Parameters;
- Properties.
Выгрузка без программирования
Для сохранения данных из 1С в Excel не всегда целесообразно прибегать к программированию. Если в режиме Предприятия пользователь может отобразить требуемые для выгрузки данные, то, их возможно сохранить в Excel без программирования.
В открывшемся окне требуется выбрать каталог, имя и формат сохраняемого файла.
Для сохранения данных динамических списков (например, списка номенклатуры) необходимо:
Остались вопросы?
Спросите в комментариях к статье.
В программе 1С:Бухгалтерия появилась возможность штатной выгрузки и загрузки данных из табличных документов Excel, без применения сторонних обработок и изменения конфигурации. Загрузка и выгрузка на столько проста, что опытные пользователи очень быстро полюбят этот удобюный механизм, а новые пользователи быстро его освоят.
Загрузка из Excel 1С:Бухгалтерия 8.3 ред. 3.0
К примеру мы имеем вот такой табличный документ Excel для загрузки списка номенклатуры и цены(розничной и закупочной).
В верхней части нажимаем Номенклатура и Цены - Загрузить. Именно в этом спрятана загрузка и выгрузка из табличных документов.
Загрузился табличный документ в том виде как мы его видели в Excel, теперь назначим колонки и удалим лишнее.
Нажимаем на Укажите реквизит и выбираем нужный пункт из списка.
Выделяем строку, в которой есть ненужные записи, а именно шапка таблицы и нажимаем Удалить строку.
Заполняем не заполненные данные, Тип цены, Установить цены на. Кнопки Все, Найденные, Новые, Дубли существенно облегчат поиск и помогут сопоставить номенклатуру. Заполняем и нажимаем Загрузить после чего данные будут загружены в 1С:Бухгалтерия.
Как видите, загрузка создала 2 документа установка цен номенклатуры, для Закупочной цены и для Розничной. Отличие этой обработки по Загрузке из Excel в 1С:Бухгалтерия 8.3, в том что это штатная обработка и она работает без сбоев и учитывая все особенности заполнения документа.
Выгрузка в Excel из 1С:Бухгалтерия 8.3 ред. 3.0
Очень полезной функцией в редакции 3.0.44.177 и выше является выгрузка в Excel из 1С:Бухгалтерия 8.3, эта обработка поможет вам сформировать прайс-лист компании или передать поставщикам или покупателям свой список номенклатуры сразу с ценами.
Все там же в справочнике Номенклатура - Номенклатура и Цены - Выгрузить.
В пункте Колонки, выбираем те колонки которые надо построить в документе Excel. Отбор служит для отбора номенклатуры по Группам, свойствам, названиям . итд.
Для выгрузки в excel мы будем добавлять новую колонку, а именно ставку НДС, вроде не очень надо, но мы практикуемся.
Именно эти колонки попадут в новый документ из 1С в Excel.
Нажимаем Выгрузить. Выбираем Файл в который будем выгружать.
После выгрузки проверяем, что выгрузилось из 1С в файл Excel.
Как видите, очень удобно формировать номенклатуру для своих контрагентов, что бы они используя программу 1С:Бухгалтерия загружали(выгружали) номенклатуру, не допуская ошибок и экономя огромное количество времени. На практике торговые компании формируют загрузку целыми списками по 800 позиций за раз, распределяя по папкам поставщиков, в таком случае экономится колоссальное количество времени.
В данной статье мы рассмотрим с Вами две очень важные темы, первая это загрузка данных из excel в 1с, а вторая это конечно же выгрузка данных из 1с в excel. Необходимо отметить, что эти темы интересны двум основным аудиториям пользователей, ими являются:
- Пользователи системы 1С Предприятие
- Программисты 1С
Пользователи 1С как правило хотят заказать например перенос данных из excel в 1с в соответствии со своими определенными требованиями к переносу, в то время как программисты 1С скорее ищут какие-то разъяснения или примеры кода. Исходя из этих соображений мы решили разделить информацию приведенную в данной статье на две части для пользователей и программистов 1С.
1С загрузка из Excel и выгрузка из 1С в Excel глазами рядового пользователя 1С
Очень часто получается так, что на предприятии или в какой-нибудь фирме например, имеется документация, которая хранится на компьютере в файлах Excel. И часто у пользователей возникает вопрос, а как же выгрузить или загрузить данные из Excel в 1С. Конечно же без знания программирования здесь не обойтись, поэтому если Вы являетесь простым пользователем то Вам нужно заказать услуги 1с у нас, ведь абсолютно любой наш программист 1с всегда Вас выслушает, подберет специально разработанное решение именно для вас, и обязательно Вам поможет.
Почему нет универсальной обработки по загрузке данных из Excel в 1С ?
Давайте ответим на этот вопрос и рассмотрим его основные моменты:
- У каждого пользователя есть различные файлы Excel, данные из которых он хочет перенести в 1С, конечно же эти файлы имеют разные количество строк и столбцов, а также несут разную смысловую нагрузку.
- Каждый пользователь работает с отдельной конфигурацией, т.е. конфигурации могут быть различными, то что работает в одной конфигурации, в другой конфигурации без модернизации работать не будет.
- Данные из Excel должны переноситься в различные объекты ,соответственно нужен разный код, ведь у каждого пользователя свои требования.
Именно по этим причинам нельзя создать универсальную обработку по загрузке данных из Excel в 1С.
Как происходит загрузка и выгрузка данных из Excel в 1С на примере реальной разработки
Теперь давайте разберем в общих чертах как происходит загрузка и выгрузка данных из Excel в 1С, и как вообще это все будет выглядеть в готовом решении?. Пример реальной индивидуальной разработки, а также исходный Excel файл представлены ниже.
В этой обработке сначала нужно выбрать файл Excel, затем нажать на кнопку «Выполнить», после чего в табличную часть загрузятся нужные данные из Excel. Теперь все что осталось сделать пользователю это нажать кнопку «Перенести в бух», после чего данные будут перенесены из Excel в 1С.
Выгрузка данных из 1С в Excel происходит примерно также, только тут сложность написания обработки зависит от того какие именно данные должны выгружаться из объекта. Например у нас есть справочник «Номенклатура» и мы хотим выгрузить наименование самой номенклатуры и единицу измерения данной номенклатуры, хотя у самой номенклатуры может быть намного больше реквизитов, такие как, вид номенклатуры, тип номенклатуры, наименование полное и т.д.
Мне нужна обработка по загрузке и/или выгрузке данных из Excel, что мне делать?
Все что Вам нужно сделать это поднять трубку и позвонить нам. После этого наши специалисты выполнят все необходимые действия чтобы вы получили именно то, что Вам требуется. Если Вам нужно выполнить срочное обновление 1с то звоните нам, мы рады помочь каждому нашему клиенту!
Загрузка и выгрузка данных из Excel в 1С глазами рядового программиста 1С
Чуть выше мы дали много полезной информации для пользователей 1С, теперь же пришло время проговорить о технических моментах написания кода, а также привести информацию для программистов 1С которая им будет очень полезна при написании кода. Рассмотрим основные часто используемые функции для работы с Excel.
Начнем мы с того как подключить Excel к 1С, делается это посредством COM-объекта. Для того чтобы этот код работал нормально Excel должен быть установлен на компьютере, в противном случае ничего работать не будет:
После того как мы подключили Excel нам нужно открыть необходимый документ из которого будет осуществляться перенос:
Теперь нам необходимо выбрать лист книги эксель, на рисунке выше мы видим как выбирается лист под определенным номером. Номер листа хранится в переменной «Номер листа»:
Мы можем узнать количество листов книги эксель с помощью поля "Count":
Чтобы получить имя листа под определенным номером, нужно написать подобную строчку:
Если нам необходимо прочитать определенную ячейку нужно вызывать метод Cells(), после чего обратится к полю Value. Можно конечно прочитать сразу весь файл экселя, но об этом чуть позже:
После того как мы закончили все действия по работе с самим экселем процесс нужно закрыть. Закрываем его, иначе будет висеть:
Пример функции которая загружает отдельные ячейки из Excel в 1С
Мы с Вами рассмотрели основные процедуры и функции с которыми сталкивается каждый программист 1С при написании обработки по загрузки данных из Excel в 1С. Теперь давайте познакомимся более детально с функцией которая считывает отдельные ячейки эксель файла.
Мы думаем, что никаких дополнительных разъяснений по данному коду приводить не нужно, так как все эти функции детально рассматривались выше.
Пример функции которая загружает все данные из Excel в табличную часть 1С
Мы рассмотрели функцию которая выводит на экран отдельные ячейки экселя. А как быть если нам требуется выгрузить весь лист экселя сразу и обходить его последовательно? Здесь нам пригодится код который приводится ниже:
Пример функции которая выгружает данные из 1С в Excel
Выше мы с вами разобрали много всего интересного, но мы не касались такой темы как выгрузка данных из 1С в Excel. На самом деле принцип работы тут в абсолютности почти такой же, за исключением того, что мы программно создаем новый файл эксель, и программно его записываем. Ну а для того чтобы записать значение в ячейку вы как уже наверное догадались нужно поставить выражение Лист.Cells(x, y) в левую часть. Пример выгрузки данных из 1С в Excel представлен ниже:
&НаКлиенте
Процедура ФайлНачалоВыбора ( Элемент , ДанныеВыбора , СтандартнаяОбработка ) //необходимо в событии "НачалоВыбора" поля ввода вызвать ДиалогВыбораФайла
Диалог = Новый ДиалогВыбораФайла ( РежимДиалогаВыбораФайла . Открытие );
Диалог . Заголовок = "Выберите файл Excel" ;
Диалог . ПредварительныйПросмотр = Ложь;
Диалог . Фильтр = "(*.xls,*.xlsx)|*.xls;*.xlsx;|Microsoft Excel 97/2000/XP/2003 (*.xls)|*.xls|Microsoft Excel 2007/2010 (*.xlsx)|*.xlsx" ;
Если ЗначениеЗаполнено ( Объект . Файл ) Тогда
Диалог . ПолноеИмяФайла = Объект . Файл ;
КонецЕсли;
Если Диалог . Выбрать () Тогда
Объект . Файл = Диалог . ПолноеИмяФайла ;
КонецЕсли;
&НаСервере
Процедура ЗагрузитьИзXLS () // в документ Поступление материалов
// Попытка открытия файла Excel
Попытка
Excel_App = Новый COMОбъект ( "Excel.Application" );
Excel_App . WorkBooks . Open ( Объект . Файл );
Исключение
Сообщить ( "Произошла ошибка при открытии файла " + СокрЛП ( ОписаниеОшибки ())+ "! Операция прервана!" );
Возврат;
КонецПопытки;
// Попытка выбрать первый лист (можно указать другой)
Попытка
Excel_App . Sheets ( 1 ). Select ();
Исключение
// Если первый лист не найден - закрываем файл
Excel_App . ActiveWorkbook . Close ();
Excel_App = 0 ;
Сообщить ( "Первый лист не найден!" );
ОтменитьТранзакцию ();
Возврат;
КонецПопытки;
// Вычисление количества строк и колонок в зависимости от версии Excel
version_Ex = Лев ( Excel_App . Version , Найти ( Excel_App . Version , "." )- 1 );
Если version_Ex = "8" тогда
Колич_Строк = Excel_App . Cells . CurrentRegion . Rows . Count ;
Колич_Колонок = Макс ( Excel_App . Cells . CurrentRegion . Columns . Count , 13 );
Иначе
Колич_Строк = Excel_App . Cells ( 1 , 1 ). SpecialCells ( 11 ). Row ;
Колич_Колонок = Excel_App . Cells ( 1 , 1 ). SpecialCells ( 11 ). Column ;
Конецесли;
// Имена колонок в файле должны совпадать с именами реквизитов табличной части, в которую загружаются данные
// Переменная ТЗ_Колонки содержит список номеров колонок, которые будут перегружаться
ТЗ_Колонки = Новый ТаблицаЗначений ;
ТЗ_Колонки . Колонки . Добавить ( "НомерКолонки" );
ТЗ_Колонки . Колонки . Добавить ( "НазваниеКолонки" );
Для Каждая_Колонка = 1 по Колич_Колонок Цикл
ИмяКолонки = Excel_App . Cells ( 1 , Каждая_Колонка ). Text ;
ИмяБезПробелов = СтрЗаменить ( ИмяКолонки , " " , "" ); // Удаление лишних пробелов из имен колонок
// Проверка наличия реквизитов табличной части "Материалы" в документе "ПоступлениеМатериалов"
Если НЕ ПроверкаРеквизитаТЧ ( ИмяБезПробелов , Метаданные . Документы . ПоступлениеМатериалов , "Материалы" ) Тогда
Сообщить ( "Не найден реквизит с именем " + ИмяБезПробелов + "! Колонка не будет загружена!" );
Иначе
Новая_Строка = ТЗ_Колонки . Добавить ();
Новая_Строка . НомерКолонки = Каждая_Колонка ;
Новая_Строка . НазваниеКолонки = ИмяБезПробелов ;
КонецЕсли;
// Если есть колонки для загрузки и есть колонка "Материалы" (обязательная к заполнению)
Если ТЗ_Колонки . Количество () <> 0 и
ТЗ_Колонки . НайтиСтроки (Новый Структура ( "НазваниеКолонки" , "Материалы" )). Количество () <> 0 Тогда
// Создание документа и заполнение реквизитов шапки
Тек_Документ = Документы . ПоступлениеМатериалов . СоздатьДокумент ();
Тек_Документ . Комментарий = "Загружено из файла " + Объект . Файл ;
Тек_Документ . Дата = ТекущаяДата ();
Тек_Документ . Ответственный = ПараметрыСеанса . ТекущийПользователь ;
Для Тек_Строка = 1 по Колич_Строк Цикл // Заполнение табличной части "Материалы"
Строка_Док = Тек_Документ . Материалы . Добавить ();
Строка_Док . Валюта = Тек_Документ . ТипЦен . ВалютаЦены ;
Для каждого Тек_ТЗ из ТЗ_Колонки Цикл
Тек_Значение = Excel_App . Cells ( Тек_Строка , Тек_ТЗ . НомерКолонки ). Text ;
// Получение имени колонки
ИмяКолонкиДокумента = Excel_App . Cells ( 1 , Тек_ТЗ . НомерКолонки ). Text ;
// Заполнение строки данными
Если ИмяКолонкиДокумента = "Материалы" Тогда
Строка_Док . Номенклатура = Справочники . Материалы . НайтиПоНаименованию ( Тек_Значение , Истина);
ИначеЕсли ИмяКолонкиДокумента = "Цена" Тогда
Строка_Док . Цена = Тек_Значение ;
ИначеЕсли ИмяКолонкиДокумента = "Ставка_НДС" Тогда
Строка_Док . Ставка_НДС = Тек_Значение ;
КонецЕсли;
КонецЦикла;
Тек_Документ . Записать ( РежимЗаписиДокумента . Проведение ); // Запись и проведение документа
Сообщить ( "Записан документ " + СокрЛП ( Тек_Документ ));
Иначе
Сообщить ( "В файле " + СокрЛП ( Объект . Файл )+ " не достаточно данных для заполнения документа!" );
КонецЕсли;
Excel_App . DisplayAlerts = 0 ;
Excel_App . Quit ();
Excel_App . DisplayAlerts = 1 ;
&НаСервере
Функция ПроверкаРеквизитаТЧ ( ИмяРекв , МетаданныеДок , ИмяТЧ )
// Проверка наличия ТЧ
ТаблЧасть = МетаданныеДок . ТабличныеЧасти . Найти ( ИмяТЧ );
Если ТаблЧасть = Неопределено Тогда // Нет такой таб. части в документе
Возврат Ложь; //реквизит не найден
Иначе
Возврат НЕ ( ТаблЧасть . Реквизиты . Найти ( ИмяРекв ) = Неопределено); //реквизит найден
КонецЕсли;
&НаСервере
Процедура ВыгрузитьВXLS ( Выб_Таблица )
Если Выб_Таблица . Количество () = 0 Тогда
Сообщить ( "Пустая таблица! Операция прервана!" );
Возврат;
КонецЕсли;
Попытка
Excel_App = Новый COMОбъект ( "Excel.Application" ); // Подключение к Excel
Исключение
Сообщить ( "Произошла ошибка при открытии файла " + СокрЛП ( ОписаниеОшибки ())+ "! Операция прервана!" );
Возврат;
КонецПопытки;
Попытка
Book_Excel = Excel_App . WorkBooks . Add ();
Sheet_Excel = Book_Excel . WorkSheets ( 1 );
Sheet_Excel . Name = "Test Sheet" ; // Присваиваем имя первому листу
Excel_App . ActiveWindow . View = 2 ; // Режим страничного просмотра
Excel_App . ActiveWindow . Zoom = 100 ; // Масштаб
Sheet_Excel . PageSetup . Orientation = 2 ; // Альбомная ориентация
Sheet_Excel . Columns ( 1 ). ColumnWidth = 20 ; // Ширина первой колонки
Sheet_Excel . Columns ( 2 ). ColumnWidth = 40 ; // Ширина второй колонки
Sheet_Excel . Columns ( 10 ). ColumnWidth = 15 ;
Sheet_Excel . Columns ( 11 ). ColumnWidth = 15 ;
Sheet_Excel . Cells ( 1 , 1 ). Value = "№ ПП" ; //Создаем шапку 1
Sheet_Excel . Cells ( 1 , 2 ). Value = "Текст" ;
Sheet_Excel . Cells ( 1 , 3 ). Value = "Числа" ;
Sheet_Excel . Cells ( 1 , 10 ). Value = "Дата" ;
Sheet_Excel . Cells ( 1 , 11 ). Value = "Формула" ;
Sheet_Excel . Cells ( 2 , 3 ). Value = "Число 1" ; //Создаем шапку 2
Sheet_Excel . Cells ( 2 , 4 ). Value = "Число 2" ;
Sheet_Excel . Cells ( 2 , 5 ). Value = "Число 3" ;
Sheet_Excel . Cells ( 2 , 6 ). Value = "Число 4" ;
Sheet_Excel . Cells ( 2 , 7 ). Value = "Число 5" ;
Sheet_Excel . Cells ( 2 , 8 ). Value = "Число 6" ;
Sheet_Excel . Cells ( 2 , 9 ). Value = "Число 7" ;
Sheet_Excel . Range ( "A1:A2" ). MergeCells = Истина; Sheet_Excel . Range ( "A1:A2" ). WrapText = Истина;
Sheet_Excel . Range ( "B1:B2" ). MergeCells = Истина; Sheet_Excel . Range ( "B1:B2" ). WrapText = Истина;
Sheet_Excel . Range ( "J1:J2" ). MergeCells = Истина; Sheet_Excel . Range ( "J1:J2" ). WrapText = Истина;
Sheet_Excel . Range ( "K1:K2" ). MergeCells = Истина; Sheet_Excel . Range ( "K1:K2" ). WrapText = Истина;
Sheet_Excel . Range ( "C1:I1" ). MergeCells = Истина; Sheet_Excel . Range ( "C1:I1" ). WrapText = Истина;
Sheet_Excel . Range ( "A1:K2" ). Borders . Linestyle = 1 ; //Линия границы
Sheet_Excel . Range ( "A1:K2" ). HorizontalAlignment = 3 ; //Выравнивание по горизонтали
Sheet_Excel . Range ( "A1:K2" ). VerticalAlignment = 2 ; //Выравнивание по вертикали
Sheet_Excel . Range ( "A1:K2" ). Font . Bold = 1 ; //Установим жирный шрифт в шапке
// Выгружаем данные в таблицу
Количество_Строк = 3 ; //Заполнение ТЧ начинаем с третьей строки
Для Каждого ТекСтрока Из Выб_Таблица Цикл
Sheet_Excel . Cells ( Количество_Строк , 1 ). Value = ТекСтрока . НомерПоПорядку ;
Sheet_Excel . Cells ( Количество_Строк , 2 ). Value = ТекСтрока . Табл_Текст ;
Sheet_Excel . Cells ( Количество_Строк , 3 ). Value = ТекСтрока . Табл_Число1 ;
Sheet_Excel . Cells ( Количество_Строк , 4 ). Value = ТекСтрока . Табл_Число2 ;
Sheet_Excel . Cells ( Количество_Строк , 5 ). Value = ТекСтрока . Табл_Число3 ;
Sheet_Excel . Cells ( Количество_Строк , 6 ). Value = ТекСтрока . Табл_Число4 ;
Sheet_Excel . Cells ( Количество_Строк , 7 ). Value = ТекСтрока . Табл_Число5 ;
Sheet_Excel . Cells ( Количество_Строк , 8 ). Value = ТекСтрока . Табл_Число6 ;
Sheet_Excel . Cells ( Количество_Строк , 9 ). Value = ТекСтрока . Табл_Число7 ;
Sheet_Excel . Cells ( Количество_Строк , 10 ). Value = ТекСтрока . Табл_Дата ;
Sheet_Excel . Cells ( Количество_Строк , 11 ). Formula = "=F" + Строка ( Количество_Строк )
+ "+G" + Строка ( Количество_Строк );
Количество_Строк = Количество_Строк + 1 ;
КонецЦикла;
Количество_Строк = Количество_Строк - 1 ; //Последняя строка для форматирования
Sheet_Excel . Range ( "A3:K" + Строка ( Количество_Строк )). Borders . Linestyle = 1 ; //Линия границы
Sheet_Excel . Range ( "A3:K" + Строка ( Количество_Строк )). VerticalAlignment = 2 ; //Выравнивание по вертикали
Для НомерСтроки = 3 По Количество_Строк Цикл // Установка числового формата
Для Столбец = 4 По 9 Цикл
Sheet_Excel . Cells ( НомерСтроки , Столбец ). NumberFormat = "0.00" ;
КонецЦикла;
Sheet_Excel . Cells ( НомерСтроки , 11 ). NumberFormat = "0.00" ;
КонецЦикла;
Исключение
Excel_App . Quit ();
Сообщить ( ОписаниеОшибки ());
Возврат;
КонецПопытки;
Попытка
Book_Excel . SaveAs ( Объект . Файл );
Сообщить ( "Файл " + Объект . Файл + " успешно сохранен" );
Исключение
Сообщить ( ОписаниеОшибки () + " Файл не сохранен!" );
Возврат;
КонецПопытки;
Попытка
Excel_App . Quit ();
Исключение
Сообщить ( ОписаниеОшибки ());
Возврат;
КонецПопытки;
Читайте также: