Выгрузка в Эксель, управляемые формы

22.01.17

Интеграция - Загрузка и выгрузка в Excel

Как-то раз меня попросили сделать обработку выгрузки в эксель и тут возникли проблемы то с сохранением файла на сервере, то с заполнением данными на клиенте. В итоге я решил заполнить файл на сервере как обычный табличный документ, а записать его на клиенте. 

Скачать исходный код

Наименование Файл Версия Размер
Обработка выгрузки в эксель
.erf 11,49Kb
77
.erf 11,49Kb 77 Скачать

Сначала создаем обработку с реквизитом ПапкаСохранения, тип строка

Создаем форму отчета и переносим реквизит на форму:

Создание формы

Затем в процедуру НачалоВыбора этого реквизита впишем код:

	Режим = РежимДиалогаВыбораФайла.ВыборКаталога; 
	ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим); 
	ДиалогОткрытия.Каталог = ""; 
	ДиалогОткрытия.МножественныйВыбор = Ложь; 
	ДиалогОткрытия.Заголовок = "Выберите каталог"; 

	Если ДиалогОткрытия.Выбрать() Тогда 
		ПутьККаталогу = ДиалогОткрытия.Каталог; 
	КонецЕсли;
	Если Прав(Элемент.ТекстРедактирования,1) <> "\" Тогда
		Отчет.ПапкаСохранения = ПутьККаталогу+"\";
	Иначе
		Отчет.ПапкаСохранения = ПутьККаталогу;
	КонецЕсли;

Создаем команду для запуска нашей обработки и переносим ее на форму:

команда

Добавляем в модуль формы две процедуры:

&НаКлиенте
Процедура КнопкаСформировать(Команда)
	
	//Для уникальности имени файла добавим к его имени дату и время создания
	ДатаВремя = СтрЗаменить(ТекущаяДата(),":",".");
	ИмяФайла = "Выгрузка_"+ДатаВремя;
	//Добавим выбранный каталог к к именя файла 
	ПолноеИмяФайла = Отчет.ПапкаСохранения+ИмяФайла+".xls";
	
	//Создадим табличный документ
	ТабДок = Новый ТабличныйДокумент;
	
	//Создадим файл эксель: Запишем нашу вновь созданную таблицу в файл 
	ТабДок.Записать(ПолноеИмяФайла,ТипФайлаТабличногоДокумента.XLS);
	
	//Заполним таблицу на сервере
	КнопкаСформироватьНаСервере(ТабДок);
	
	//Запишем заполненную таблицу в этот же файл
	ТабДок.Записать(ПолноеИмяФайла,ТипФайлаТабличногоДокумента.XLS);

	
 КонецПроцедуры
 
&НаСервере
Процедура КнопкаСформироватьНаСервере(ТабДок)
	//Прочитаем наш отчет на сервере, чтобы стали доступны процедуры из модуля объект этого отчета
	Документ = РеквизитФормыВЗначение("Отчет");
	//Вызовем нашу процедуру заполнения
	Документ.ЗаполнитьТаблицуНаСервере(ТабДок);
	
КонецПроцедуры

Далее создаем макет и заполняем его данными в экспортной процедуре из модуля объекта:


Процедура ЗаполнитьТаблицуНаСервере(ТабДок) Экспорт
	Макет = ПолучитьМакет("МакетВыгрузки");
	ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
	ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
	
	ТабДок.Вывести(ОбластьЗаголовок);
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Контрагенты.Наименование,
		|	Контрагенты.НаименованиеПолное
		|ИЗ
		|	Справочник.Контрагенты КАК Контрагенты";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		ОбластьСтрока.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
		ТабДок.Вывести(ОбластьСтрока);
	КонецЦикла;
	
	
КонецПроцедуры

В итоге у нас получается такая вот обработка:

обработка

Выгрузка эксель excel в файл выбор папки Управляемые формы сохранение внешняя обработка УФ отчет шаблон вызов процедуры модуля объекта из

См. также

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 руб.

29.10.2014    211204    630    526    

446

Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 09.04.2024, версия 9.9 - 9.10)

14400 руб.

20.11.2015    151415    367    376    

502

Маркетплейсный загрузчик для 12-ти маркетплейсов в 1С:БП 3, УТ 11, КА 2, ERP, УНФ

Загрузка и выгрузка в Excel Маркетплейсы Платформа 1С v8.3 Бухгалтерский учет 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Реальный помощник, с помощью которого Вы сделаете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, "Детский мир", Казань-Экспресс, "Леруа Мерлен", ЭНФАНТА (Акушерство), ЛаМода, Летуаль, "Твой дом" в документы "Отчет комиссионера (агента) о продажах" и другие, может работать в "Бухгалтерия 3", "Бухгалтерия 3 КОРП", УТ 11, УНФ, КА 2, ERP. Возможность подключить любые маркетплейсы. Анализ продаж ОЗОН. 30 дней БЕСПЛАТНОГО пользования!

1800 руб.

12.08.2021    32321    242    64    

122

SALE! 30%

Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания ЛЮБЫХ СКАНОВ ИЛИ ФОТО ТОВАРНЫХ ДОКУМЕНТОВ в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML и т.д.) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

6000 5520 руб.

04.06.2019    101851    301    173    

314

SALE! 20%

Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы

Загрузка и выгрузка в Excel Оптовая торговля Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

5000 4000 руб.

09.11.2016    215904    932    886    

942

Загрузка данных отчета о реализации товаров из Excel файла СберМегаМаркет

Загрузка и выгрузка в Excel Маркетплейсы Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Загрузка данных отчета о реализации товаров из сервиса СберМегаМаркет для конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11 и Управление нашей фирмой, редакция 3.0 в документ "Отчет комиссионера (агента) о продажах".

4800 руб.

07.06.2022    15383    82    0    

63
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user858649 30.11.17 21:52 Сейчас в теме
Здравствуйте. Подскажите пожалуйста, где именно прописать Процедуру ЗаполнитьТаблицуНаСервере(ТабДок) Экспорт

Я скачал файл, открыл, и не могу понять где описывается это экспортная функция,

Тоесть, где писать код:

Процедура ЗаполнитьТаблицуНаСервере(ТабДок) Экспорт
	Макет = ПолучитьМакет("МакетВыгрузки");
	ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
	ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
	
	ТабДок.Вывести(ОбластьЗаголовок);
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Контрагенты.Наименование,
		|	Контрагенты.НаименованиеПолное
		|ИЗ
		|	Справочник.Контрагенты КАК Контрагенты";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		ОбластьСтрока.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
		ТабДок.Вывести(ОбластьСтрока);
	КонецЦикла;
	
	
КонецПроцедуры
Показать
2. virtmon 34 16.03.18 08:40 Сейчас в теме
Код нужно писать в модуле объекта. В данном случае в модуле нашей обработки.
11. Vida 15 26.06.20 20:41 Сейчас в теме
(2)Работает. И видела и в других обработках такой прием, но не могли бы вы пояснить
зачем помещать часть кода в модуле объекта. Чем модуль формы в этом случае не подходит когда "&НаСервере" или даже "&НаСервереБезКонтекста"

В модуле формы тоже работает, хочу разобраться...
12. virtmon 34 29.06.20 13:10 Сейчас в теме
(11) В форме не существует макета объекта, поэтому я заполнил его в модуле объекта, а не формы.
13. Vida 15 29.06.20 16:19 Сейчас в теме
(12) но... у меня работает так в модуле формы
у меня обработка, а в вашем случае "Отчет"
я не с претензией, просто хочу понять (может так не правильно...)

ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
НовыйМакетАдр = ОбработкаОбъект.ПолучитьМакет("МакетАдр");
3. Istur 1472 11.05.18 23:11 Сейчас в теме
ТабДок = Новый ТабличныйДокумент;
ТабДок.Записать(ПолноеИмяФайла,ТипФайлаТабличногоДокумента.XLS);
КнопкаСформироватьНаСервере(ТабДок);
ТабДок.Записать(ПолноеИмяФайла,ТипФайлаТабличногоДокумента.XLS);

Все это избыточно. Достаточно:
ТабДок = КнопкаСформироватьНаСервере();
ТабДок.Записать(ПолноеИмяФайла,ТипФайлаТабличногоДокумента.XLS);

где табличный документ полностью формируется на сервере и отдается на клиент, а не формируется на клиенте, записывается, передается на сервер и возвращается.Что за ересь.
Eugen; BufBaf; +2 Ответить
4. Evgeny12 11.12.18 13:48 Сейчас в теме
Добрый день!
Заценил неперадаваемое "ФормаСформировать" и "КнопкаСформировать", еще "Сформировать".
Не смог повторить такое на внешнем отчете, что сделал не так, не пойму?
5. virtmon 34 13.12.18 13:19 Сейчас в теме
Скачай обработку, да посмотри
6. int_vera4ka 22.01.19 10:30 Сейчас в теме
Добрый день! файл у меня создался, но почемуто пустой . не подскажете в чем дело? Спасибо.
7. int_vera4ka 22.01.19 10:40 Сейчас в теме
8. user615675_lllveritaslll 30.01.19 11:20 Сейчас в теме
(7) Здравствуйте. Подскажите в чем была проблема? тоже создается пустой файл
9. int_vera4ka 31.01.19 09:17 Сейчас в теме
(8) Добрый день! Я заплутала в наименованиях отчета , и реквизитов .
все должно быть как в прикрепленном файле.
Прикрепленные файлы:
10. virtmon 34 12.02.19 15:54 Сейчас в теме
(9) Извините за долгий ответ. Я был в круизе) В моем примере файлик записывается 2 раза: сначала пустой, потом заполненный. Если файл у вас записывается пустой, то либо он не заполняется данными либо второй раз попросту не записывается.
Оставьте свое сообщение