gifts2017

Перевод таблицы EXCEL в MXL

Опубликовал Слава Кирлан (Ягг) в раздел Обмен - Загрузка и выгрузка в Excel

Обработка переводит средствами 1С файлы EXCEL в MXL. Единственное условие - необходима установка EXCEL  на компьютере.

Очень часто заказчики предоставляют формы отчетов в виде EXCEL файлов, и тратится много времени, чтобы нарисовать подобную форму в 1C. Это обработка позволяет перекодировать файлы. Причем никаких дополнительных библиотек и программ не используется (кроме самого EXCEL). Конечно, чаше всего полученный макет нужно еще дорабатывать, но это уже легче.

Так же ее можно рассматривать как пример работы с OLE-объектом.

По большей части обработка взята из типовой «Консолидации» и несколько доработана, чтобы работала в любой конфигурации.

После выбора файла, нужно выбрать лист и нажать кнопку «Начать импорт». Полученную таблицу можно сохранить в MXL стандартными средствами 1С (Файл / Сохранить).

Скачать файлы

Наименование Файл Версия Размер
Перевод таблицы EXCEL в MXL 307
.epf 14,80Kb
20.01.12
307
.epf 14,80Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

2. Слава Кирлан (Ягг) 20.01.12 11:27
Видимо таблица EXCEL очень большая
3. ediks (ediks) 20.01.12 13:10
Я может чего-то не догоняю, но не ошиблись ли Вы с форматом XML <-> MXL???
4. i i (ivanbor) 20.01.12 14:51
Сбасиб автору, очень полезный конвертер.
5. Альтаир (Altair777) 20.01.12 15:37
Так куда его конвертируют? Фраза "чтобы нарисовать подобную форму в 1C" совсем не понятна :)
6. Слава Кирлан (Ягг) 20.01.12 15:37
Да, виноват, ошибся. Конечно MXL
7. Слава Кирлан (Ягг) 20.01.12 15:47
(5) Altair777, Конвертирует в MXL (в табличный документ 1С).
"чтобы нарисовать подобную форму в 1C" = что бы нарисовать в виде макета 1С отчет похожий на тот, который прислал пользователь в файла EXCEL.
8. Альтаир (Altair777) 20.01.12 20:04
(7) зачем конвертировать в MXL - для загрузки в накладные? А не проще сразу XLS загружать?
10. Даша Болдисова (Darida) 11.10.12 15:21
11. Престиж Полякова (prestige) 26.12.12 09:47
Спасибо очень пригодилось.
12. Сергей Кудашкин (sikuda) 11.04.13 11:11
Спасибо. Именно макеты перегоняю, чтобы не заново их рисовать в 1с.
13. Константин Юрин (kostyaomsk) 10.05.15 18:42
Автору респект! Очень хорошая обработка для конвертации кучи документов из Екселя в MXL. Главное - не нужно рисовать границы ячеек.
Даже немного доработал обработку - добавил возможность сохранения в файл MXL и возможность добавлять путь сохранения с тем же именем файла, но уже с расширением MXL. Выдержки кода публикую здесь, а доработку отправляю автору - если нужно, пусть выкладывает. Если нужно кучи документов конвертировать за раз можно запутаться что где и не так переименовать :)
Добавляем в обработку реквизит строка неограниченой длины "ПутьСохранения" и обработчики в коде с пометкой доработка(+):
Процедура ИмяФайлаНачалоВыбора(Элемент, СтандартнаяОбработка)
	
	Длг = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	Длг.Заголовок = "Выберите файл для импорта";
	Длг.ПолноеИмяФайла = ИмяФайла;
	Длг.Расширение = "xls";
	Длг.ПроверятьСуществованиеФайла = Истина;
	Длг.Фильтр = "Файлы Microsoft Excel(*.xls)|*.xls|Все файлы (*.*)|*.*";
	Если Длг.Выбрать() Тогда
		ИмяФайла = Длг.ПолноеИмяФайла;
	КонецЕсли;
	
	СписокЛистовФайла = ПолучитьСписокЛистовФайла();
	Если ТипЗнч(СписокЛистовФайла) <> Тип("СписокЗначений") Тогда
		Сообщить("В выбранном файле неопределены листы");
		Возврат;
	ИначеЕсли НЕ ЗначениеЗаполнено(ИмяЛиста) И СписокЛистовФайла.Количество() > 0 Тогда
		ИмяЛиста = СписокЛистовФайла[0].Значение;
	КонецЕсли;
	
	//### Доработка(+) позволяет сразу создать нужное имя файла с другим расширением чтоб не запуататься!
	    Ф = Новый Файл(ИмяФайла);
		ПутьСохранения = ф.Путь+ф.ИмяБезРасширения+".mxl";
	//### Доработка(-)
	
КонецПроцедуры

//###Доработка(+) сохранение в файл сразу (если много документов, чтоб не пользоваться Ctrl+c - Ctrl+v 
Процедура ОсновныеДействияФормыКнСохранитьВ_MXL(Кнопка)
	Если ПустаяСтрока(ПутьСохранения) Тогда
		Сообщить("Не указан файл для сохранения результата в MXL");
		Возврат;
	КонецЕсли;	
		
	ЭлементыФормы.ПолеТабличногоДокументаМакет.Записать(ПутьСохранения);
	
	Сообщить("Файл сохранен "+ПутьСохранения, СтатусСообщения.Информация);
	
КонецПроцедуры

Процедура ПутьСохраненияНачалоВыбора(Элемент, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
	
	Длг = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
	Длг.Заголовок = "Выберите файл для сохранения в формат MXL";
	Длг.ПолноеИмяФайла = ИмяФайла;
	Длг.Расширение = "mxl";
	Длг.ПроверятьСуществованиеФайла = Истина;
	Длг.Фильтр = "Файлы MXL (*.mxl)|*.mxl";
	Если Длг.Выбрать() Тогда
		ПутьСохранения = Длг.ПолноеИмяФайла;
	КонецЕсли;
КонецПроцедуры
//###Доработка(-) 

...Показать Скрыть


14. Константин Юрин (kostyaomsk) 10.05.15 18:54
Как видите, подобная мелочь может быть полезной.
Прикрепленные файлы:
15. Виктория (vika64) 25.10.15 11:26
для разработчика очень необходимая вещь. (не надо рисовать макеты - экономия времени)
пользовалась такой же обработкой но для 7-ки, теперь буду этой.
спасибо большое.
16. Ольга Пушкова (POLGA) 25.12.15 12:22
Большое спасибо автору!!!
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа