Найти в Дзене
Программист 1С

Учимся программировать в 1C 8.3. Управляемые формы. Импорт-Экспорт из1С в Excel и обратно.

1.Создадим внешнюю обработку для импорта/экспорта из 1С в EXCEL. 2.Добавим в обработку табличную часть с именем = «ТЧ_ЗагрузкаВыгрузкаExcel» и реквизитами табличной части = «Фамилия», « Имя», « Отчество», «ТабельныйНомер». 3.Добавим Форму с именем = «Форма». 4.На закладке Формы «Команды»àКоманды формыàДобавим команды: «ЗагрузитьИзExcel»,«ВыгрузитьВExcel» -à Перетащим эти команды мышкой на форму и увидим соответствующие кнопки с именем «ЗагрузитьИзExcel»,«ВыгрузитьВExcel» 5. Откроем с помощью значка «Лупа» Действие Команды «ЗагрузитьИзExcel» и создадим на клиенте процедуру = Процедура ЗагрузитьИзExcel (Команда). Результат работы программы: Программный код для команды ЗагрузитьИзExcel: //Загрузить данные из Excel-Файла в табличную часть обработки(Команда) &НаКлиенте Процедура ЗагрузитьИзExcel(Команда) ПодключитьРасширениеРаботыСФайлами(); Режим = РежимДиалогаВыбораФайла.Открытие; ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); ДиалогОткрытияФайла.ПолноеИмяФайла = ""; Фильтр = "Та

1.Создадим внешнюю обработку для импорта/экспорта из 1С в EXCEL.

2.Добавим в обработку табличную часть с именем = «ТЧ_ЗагрузкаВыгрузкаExcel» и

реквизитами табличной части = «Фамилия», « Имя», « Отчество», «ТабельныйНомер».

3.Добавим Форму с именем = «Форма».

-2

4.На закладке Формы «Команды»àКоманды формыàДобавим команды: «ЗагрузитьИзExcel»,«ВыгрузитьВExcel» -à Перетащим эти команды мышкой на форму и увидим соответствующие кнопки с именем «ЗагрузитьИзExcel»,«ВыгрузитьВExcel»

-3

5. Откроем с помощью значка «Лупа» Действие Команды «ЗагрузитьИзExcel»

и создадим на клиенте процедуру = Процедура ЗагрузитьИзExcel (Команда).

-4
-5

Результат работы программы:

-6

Программный код для команды ЗагрузитьИзExcel:

//Загрузить данные из Excel-Файла в табличную часть обработки(Команда)

&НаКлиенте

Процедура ЗагрузитьИзExcel(Команда)

ПодключитьРасширениеРаботыСФайлами();

Режим = РежимДиалогаВыбораФайла.Открытие;

ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);

ДиалогОткрытияФайла.ПолноеИмяФайла = "";

Фильтр = "Таблица(*.xls)|*.xls";

ДиалогОткрытияФайла.Фильтр = Фильтр;

ДиалогОткрытияФайла.МножественныйВыбор = Ложь;

ДиалогОткрытияФайла.Заголовок = "Выберите Excel-файл для загрузки .";

Если ДиалогОткрытияФайла.Выбрать() Тогда

ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла;

Иначе

Возврат;

КонецЕсли;

Попытка

Excel = Новый COMОбъект("Excel.Application");

Excel.WorkBooks.Open(ПутьКФайлу);

ExcelЛист = Excel.Sheets(1); // Встать на первый лист Excel-файла

Исключение

Сообщить("Не установлено приложение MS Excel...");

Возврат;

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

Объект.ТЧ_ЗагрузкаВыгрузкаExcel.Очистить(); //Очистить табличную часть перед загрузкой.

ТекущаяСтрока = 2; //Чтобы встать сразу на вторую строку Eccel-файла, т.к. в первой строке обычно заголовок.

ТекущееЗначение = СокрЛП(ExcelЛист.Cells(ТекущаяСтрока, 2).Value);

Пока ЗначениеЗаполнено(ТекущееЗначение) Цикл

Состояние("Загрузка данных... строка " + Строка(ТекущаяСтрока-1));

Элементы.ТЧ_ЗагрузкаВыгрузкаExcel.ДобавитьСтроку();

Элементы.ТЧ_ЗагрузкаВыгрузкаExcel.ТекущиеДанные.Фамилия = СокрЛП(ExcelЛист.Cells(ТекущаяСтрока, 2).Value);

Элементы.ТЧ_ЗагрузкаВыгрузкаExcel.ТекущиеДанные.Имя = СокрЛП(ExcelЛист.Cells(ТекущаяСтрока, 3).Value);

Элементы.ТЧ_ЗагрузкаВыгрузкаExcel.ТекущиеДанные.Отчество = СокрЛП(ExcelЛист.Cells(ТекущаяСтрока, 4).Value);

Элементы.ТЧ_ЗагрузкаВыгрузкаExcel.ТекущиеДанные.ТабельныйНомер = Формат(Число(СокрЛП(ExcelЛист.Cells(ТекущаяСтрока, 5).Value)),"ЧГ=0");

ТекущаяСтрока = ТекущаяСтрока + 1;

ТекущееЗначение = СокрЛП(ExcelЛист.Cells(ТекущаяСтрока, 2).Value);

КонецЦикла;

Excel.Quit();

Сообщить("Программа выполнена: "+ТекущаяДата());

КонецПроцедуры

_____________________________________________________________________________________

7. 5.Откроем с помощью значка «Лупа» Действие Команды «ВыгрузитьВExcel»

-7

-8

Программный код для команды ВыгрузитьВExcel:

&НаКлиенте

Процедура ВыгрузитьВExcel(Команда)

ПодключитьРасширениеРаботыСФайлами();

Режим = РежимДиалогаВыбораФайла.Сохранение;

ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);

ДиалогОткрытияФайла.ПолноеИмяФайла = "";

Фильтр = "Таблица(*.xls)|*.xls";

ДиалогОткрытияФайла.Фильтр = Фильтр;

ДиалогОткрытияФайла.МножественныйВыбор = Ложь;

ДиалогОткрытияФайла.Заголовок = "Сохранить как...";

Если ДиалогОткрытияФайла.Выбрать() Тогда

ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла;

Иначе

Возврат;

КонецЕсли;

Попытка

Excel = Новый COMОбъект("Excel.Application");

Книга = Excel.WorkBooks.Add();

ExcelЛист = Excel.Sheets(1);

Исключение

Сообщить("Не установлено приложение MS Excel!");

Возврат;

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

//Выводим в первую строку Excel-файла поля заголовка:

ExcelЛист.Cells(1,1).Value = "№";

ExcelЛист.Cells(1,2).Value = "Фамилие";

ExcelЛист.Cells(1,3).Value = "Имя";

ExcelЛист.Cells(1,4).Value = "Отчество";

ExcelЛист.Cells(1,5).Value = "Табельный №";

//Выгрузка табличной части обработки(ТЧ) в Excel

Индекс = 0;

ТекущаяСтрокаExcel = 2;

Для Индекс = 0 По Объект.ТЧ_ЗагрузкаВыгрузкаExcel.Количество()-1 Цикл

Состояние("Сохранение данных... строка " + Строка(ТекущаяСтрокаExcel-1));

СтрокаТЧ = Объект.ТЧ_ЗагрузкаВыгрузкаExcel.Получить(Индекс);

ExcelЛист.Cells(ТекущаяСтрокаExcel, 1).Value = СтрокаТЧ.НомерСтроки;

ExcelЛист.Cells(ТекущаяСтрокаExcel, 2).Value = СтрокаТЧ.Фамилия;

ExcelЛист.Cells(ТекущаяСтрокаExcel, 3).Value = СтрокаТЧ.Имя;

ExcelЛист.Cells(ТекущаяСтрокаExcel, 4).Value = СтрокаТЧ.Отчество;

ExcelЛист.Cells(ТекущаяСтрокаExcel, 5).Value = СтрокаТЧ.ТабельныйНомер;

ТекущаяСтрокаExcel = ТекущаяСтрокаExcel + 1;

КонецЦикла;

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

Excel.Quit();

Сообщить("Программа выполнена: "+ТекущаяДата());

КонецПроцедуры

_______________________________________________________________

Фото : pixabay
Фото : pixabay