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

22.01.17

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

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Обработка выгрузки в эксель
.erf 11,49Kb
81 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

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

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

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

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

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

команда

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

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

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

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


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

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

обработка

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

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

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

5400 руб.

12.08.2021    41337    476    71    

198

SALE! 10%

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

Универсальная обработка для загрузки документов из Excel в 1С. Забудьте о ручном вводе: загружайте документы из Excel в 1С за секунды! Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл эксель, документ 1С и нажимаете кнопку "Загрузить"

8000 руб.

09.11.2016    256245    1142    936    

1075

Загрузка и выгрузка в 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 1С:Розница 3.0 Платные (руб)

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

18000 руб.

20.11.2015    165852    413    386    

535

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

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

11100 руб.

29.10.2014    224300    694    528    

474

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

Обработки загрузки данных о продажах WildBerries предназначены для следующих конфигураций: Бухгалтерия предприятия, редакция 3.0; Управление нашей фирмой, редакция 3.0; Розница, редакция 3.0; Управление торговлей, редакция 11; Управление торговлей, редакция 10.3

6000 руб.

11.12.2019    61511    1048    3    

275

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

Кто получает документы в формате XML из различных сервисов ЭДО (формат 820 приказ ФНС 31 мая 2019 или формат 970 (2025г) 19.12.2023 № ЕД-7-26/970@) и набивает их вручную в 1С, тот наверняка хотел бы автоматизировать этот процесс. Поддержка конфигураций: Бухгалтерии 3, УПП 1.3, 1С:КА 2.4 и 1С:КА 2.5, УТ10, УТ11.4 и УТ11.5. Для бухгалтерии 3 добавлена поддержка формат 5.03 от 23/01/2025

4320 руб.

11.02.2020    98743    328    159    

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

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

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

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

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

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

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

где табличный документ полностью формируется на сервере и отдается на клиент, а не формируется на клиенте, записывается, передается на сервер и возвращается.Что за ересь.
Derek777; Eugen; BufBaf; +3 Ответить
4. Evgeny12 11.12.18 13:48 Сейчас в теме
Добрый день!
Заценил неперадаваемое "ФормаСформировать" и "КнопкаСформировать", еще "Сформировать".
Не смог повторить такое на внешнем отчете, что сделал не так, не пойму?
5. virtmon 35 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 35 12.02.19 15:54 Сейчас в теме
(9) Извините за долгий ответ. Я был в круизе) В моем примере файлик записывается 2 раза: сначала пустой, потом заполненный. Если файл у вас записывается пустой, то либо он не заполняется данными либо второй раз попросту не записывается.
Для отправки сообщения требуется регистрация/авторизация