Сохранение данных табличных частей форм в Excel

06.01.22

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

Подсистема предназначена для сохранения табличных частей форм прикладного решения 1С в Excel.

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

Наименование Файл Версия Размер
Сохранение данных табличных частей форм в Excel: файл конфигурации, расширение
.zip 43,17Kb
2
.zip 43,17Kb 2 Скачать
Назначение подсистемы

Подсистема предназначена для сохранения табличных частей форм прикладного решения 1С в Excel.

Как известно, имеется возможность сохранения данных табличных частей форм в Excel штатными средствами 1С. Для этого необходимо вывести данные сохраняемой табличной части в табличный документ после чего сохранить его на диск в формате Excel. Однако, у данного метода существует ряд недостатков:

  • пользователю необходимо совершать дополнительные действия для сохранения табличной части (промежуточный вывод данных в табличный документ)
  • отсутствуют возможности по настройке формата сохранения данных, например, невозможно задать формат даты (данные сохраняются в том виде, в котором они выведены в табличный документ)
  • отсутствуют возможности по гибкой настройке сохраняемых полей табличной части и порядка их следования

Разработанная подсистема решает перечисленные выше проблемы при работе со штатным механизмом сохранения данных табличных частей форм в Excel.

 

Настройка подсистемы

Настроить табличные части форм, данные которых необходимо сохранять в Excel

 

 

По кнопке Заполнить есть возможность автоматического заполнения сохраняемых колонок табличной части формы

 

 

В настройках сохранения указываются следующие параметры:

  • Имя формы с ТЧ - имя формы, табличную часть которой необходимо сохранять в Excel
  • Имя табличной части - путь к реквизиту формы, содержащий данные табличной части формы (свойство "путь к данным" таблицы формы)
  • Имя колонки - имя колонки табличной части формы
  • Заголовок колонки - название колонки в Excel
  • Формат колонки - форматная строка, которая будет использована при сохранении значения в Excel (например, для дат можно указать формат ДФ=dd.MM.yyyy для сохранения даты без времени)
  • Порядок колонки - порядок колонки в Excel
  • Использование - если Истина, то колонка будет сохранена в Excel

 

 

Состав подсистемы

Подсистема включает в себя следующие объекты метаданных:

  • Подсистема.СохранениеТЧВExcel
  • ОбщийМодуль.СохранениеТЧВExcel
  • ОбщаяФорма.ФормаСохраненияТЧВExcelУниверсальная
  • РегистрСведений.НастройкиПользователейСохраненияТЧВExcel
  • РегистрСведений.НастройкиСохраненияТЧВExcel
  • РегистрСведений.СохраняемыеВExcelТЧФорм
  • Роль.ЧтениеНастроекСохраненияТЧВExcel
 
Внедрение подсистемы в прикладное решение
  • Определить состав форм прикладного решения, данные табличных частей которых необходимо сохранять в Excel
  • Включить формы в расширение конфигурации
  • Для каждой формы в расширении на командную панель табличной части добавить команду "Сохранить в Excel" с обработчиком вида:
&НаКлиенте
Процедура СохрXls_СохранитьТЧТоварыВExcelПосле(Команда)
	
	ПараметрыСохранения = Новый Структура;
	ПараметрыСохранения.Вставить("Заголовок", "Сохранение ТЧ Товары в Excel");
	ПараметрыСохранения.Вставить("ИмяФормы", ИмяФормы);
	ПараметрыСохранения.Вставить("ИмяТабличнойЧасти", "Объект.Товары");
	
	ДополнительныеПараметры = Новый Структура;
	ДополнительныеПараметры.Вставить("ТаблицаФормы", Элементы.Товары);
	ДополнительныеПараметры.Вставить("ДанныеФормы", Объект.Товары);
	ОписаниеОповещенияОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыСохраненияТЧВExcel", СохранениеТЧВExcel, ДополнительныеПараметры);
	ОткрытьФорму("ОбщаяФорма.ФормаСохраненияТЧВExcelУниверсальная", ПараметрыСохранения, , , , , ОписаниеОповещенияОЗакрытии, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

КонецПроцедуры
  • Настроить права доступа пользователей к объектам подсистемы. Дать доступ на просмотр общей формы ФормаСохраненияТЧВExcelУниверсальная, Чтение/Изменение регистра сведений НастройкиПользователейСохраненияТЧВExcel, Чтение регистра сведений НастройкиСохраненияТЧВExcel. Это можно сделать, включив роль ЧтениеНастроекСохраненияТЧВExcel в профиль с базовыми правами (если используется БСП).

Вариант подключения подсистемы для конфигураций на основе БСП

  • Определить состав форм прикладного решения, данные табличных частей которых необходимо сохранять в Excel. Заполнить регистр сведений СохраняемыеВExcelТЧФорм

  • Включить в расширение конфигурации общий модуль БСП ПодключаемыеКоманды
  • Добавить в расширение процедуру общего модуля БСП ПодключаемыеКоманды ПриСозданииНаСервере со следующим кодом
&После("ПриСозданииНаСервере")
Процедура СохрXls_ПриСозданииНаСервере(Форма, ПараметрыРазмещения)

	Запрос = Новый Запрос("ВЫБРАТЬ
	|	СохраняемыеВExcelТЧФорм.ИмяФормы КАК ИмяФормы,
	|	СохраняемыеВExcelТЧФорм.ИмяТабличнойЧасти КАК ИмяТабличнойЧасти,
	|	СохраняемыеВExcelТЧФорм.ЗаголовокФормыСохранения КАК ЗаголовокФормыСохранения
	|ИЗ
	|	РегистрСведений.СохраняемыеВExcelТЧФорм КАК СохраняемыеВExcelТЧФорм
	|ГДЕ
	|	СохраняемыеВExcelТЧФорм.ИмяФормы = &ИмяФормы
	|	И СохраняемыеВExcelТЧФорм.Использование");

	Запрос.УстановитьПараметр("ИмяФормы", Форма.ИмяФормы);
	
	ПодключенныеКоманды = Форма.ПараметрыПодключаемыхКоманд;
	АдресНастроек = ПодключенныеКоманды.АдресТаблицыКоманд;
	
	Команды = ПолучитьИзВременногоХранилища(АдресНастроек);
	
	Элементы = Форма.Элементы;	
	
	Выборка = Запрос.Выполнить().Выбрать();
	ЕстьДобавленныеКоманды = Ложь;
	Пока Выборка.Следующий() Цикл
		
		ИмяТабличнойЧасти = Выборка.ИмяТабличнойЧасти;
		ЗаголовокФормыСохранения = Выборка.ЗаголовокФормыСохранения;
		
		//найдем табличную часть по пути к реквизиту формы
		ТаблицаФормы = НайтиТаблицуФормыПоПутиКДанным(ИмяТабличнойЧасти, Элементы);
		Если ТаблицаФормы = Неопределено Тогда
			продолжить;
		КонецЕсли;
		
		ИмяКоманды = "СохранитьВExcel_"+ СтрЗаменить(ИмяТабличнойЧасти, ".", "_");
		КомандаФормы = Форма.Команды.Добавить(ИмяКоманды);
		КомандаФормы.Действие = "Подключаемый_ВыполнитьКоманду";
		КомандаФормы.Заголовок = "Сохранить в Excel";
		КомандаФормы.Подсказка   = КомандаФормы.Заголовок;
		
		СведенияОКоманде = Команды.Добавить();
		СведенияОКоманде.ИмяВФорме = ИмяКоманды;
		СведенияОКоманде.ИмяФормы = Форма.ИмяФормы;
		СведенияОКоманде.МножественныйВыбор = Ложь;
		СведенияОКоманде.Обработчик = "СохранениеТЧВExcel.ОткрытьФормуСохраненияТЧВExcel";
		
		ДополнительныеПараметры = Новый Структура;
		ДополнительныеПараметры.Вставить("ИмяТабличнойЧасти", ИмяТабличнойЧасти);
		ДополнительныеПараметры.Вставить("ЗаголовокФормыСохранения", ЗаголовокФормыСохранения);
		ДополнительныеПараметры.Вставить("ИмяФормы", Форма.ИмяФормы);
		ДополнительныеПараметры.Вставить("ИмяТаблицыФормы", ТаблицаФормы.Имя);
		
		СведенияОКоманде.ДополнительныеПараметры = ДополнительныеПараметры;
		
		ЕстьДобавленныеКоманды = истина;
		
		КоманднаяПанельТабличнойЧасти = ТаблицаФормы.КоманднаяПанель;
		
		КнопкаФормы = Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), КоманднаяПанельТабличнойЧасти);
		КнопкаФормы.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
		КнопкаФормы.ИмяКоманды = ИмяКоманды;
		
	КонецЦикла;

	Если ЕстьДобавленныеКоманды Тогда
		ПоместитьВоВременноеХранилище(Команды, Форма.УникальныйИдентификатор);
	КонецЕсли;
	
КонецПроцедуры

Функция НайтиТаблицуФормыПоПутиКДанным(ПутьКДанным, ЭлементыФормы)
	
	ЭлементФормы = Неопределено;
	Для каждого ТекЭлемент из ЭлементыФормы цикл
		Если ТипЗнч(ТекЭлемент) <> Тип("ТаблицаФормы") Тогда
			продолжить;
		КонецЕсли;
		
		Если ТекЭлемент.ПутьКДанным = ПутьКДанным тогда
			ЭлементФормы = ТекЭлемент;
			прервать;
		КонецЕсли;
		
	КонецЦикла;
	
	Возврат ЭлементФормы;
	
КонецФункции

 

Использование подсистемы

При нажатии на кнопку "Сохранить в Excel" открывается форма настроек сохранения данных табличной части в Excel

 

 

Пользователь имеет следующие возможности настройки сохранения данных:

  • изменить порядок сохраняемых колонок
  • добавить новые колонки
  • удалить не нужные колонки
  • задать заголовки колонок
  • задать формат вывода данных
  • сохранить в Excel только выделенные строки таблицы формы
  • установить стандартные настройки

Измененные настройки автоматически сохраняются в настройках текущего пользователя в регистре сведений НастройкиПользователейСохраненияТЧВExcel

 
Ограничения текущей реализации

В текущей версии отсутствует возможность сохранения данных полей таблицы формы, которые отсутствуют в полях реквизита формы, содержащей данные табличной части.

Отсутствует возможность сохранения данных таблиц форм, содержащих дерево значений.

 

Прочее

Требования

Платформа 1С версии не меньше 8.3.15 (интерфейс Такси. Разрешить Версия 8.2).

Программный код

Программный код полностью открыт.

Excel сохранение

См. также

SALE! 10%

Загрузка номенклатуры из 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 9504 руб.

29.10.2014    210201    620    524    

439

Загрузка номенклатуры 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 форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 11.12.2023, версия 9.5 - 9.9)

13200 руб.

20.11.2015    150738    365    375    

501

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

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

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

4800 руб.

07.06.2022    15085    79    0    

60

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    101398    296    173    

312

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    214946    923    886    

939

Универсальная загрузка остатков и цен поставщиков в 1С (УТ 11, КА 2, ERP 2.0) из файлов Excel, CSV, XML (YML и CML)

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

Обработка позволяет легко настроить загрузку прайс-листов и остатков поставщиков. Форматы файлов задаются для каждого поставщика отдельно. В настройках предусмотрена возможность гибкой обработки входящих данных (убрать лишние символы, пересчитать цены в другую валюту, сделать произвольную наценку и т.д.).

12000 руб.

23.01.2017    58863    59    48    

68
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ixijixi 1777 07.01.22 22:22 Сейчас в теме
С внедрением не продумано у Вас. Не уверен, что найдутся любители добавлять команды в тысячи форм конфигурации. Рекомендую пересмотреть подход, например перехватывать общий модуль ПодключаемыеКоманды, он почти ко всем формам подключен. Либо добавить общую команду.
mrChOP93; Sirruf; +2 Ответить
2. Sirruf 192 08.01.22 16:52 Сейчас в теме
(1) Честно говоря, не очень понял как добавить подключаемую команду или общую команду на командную панель табличной части формы?
3. ixijixi 1777 08.01.22 21:36 Сейчас в теме
(2) В процедуре ПодключаемыеКоманды.ПриСозданииНаСервере создаем команду
Команда = Форма.Команды.Добавить();

Затем размещаем связанную кнопку
Кнопка = Форма.Элементы.Добавить("МояКнопка", Тип("КнопкаФормы"), Форма.Элементы.КоманднаяПанельТабличнойЧасти);
Кнока.ИмяКоманды = Команад.Имя;

Пишу по памяти, но смысл именно такой.
Тут на инфостарте есть описание, например https://infostart.ru/1c/articles/1118319/
4. Sirruf 192 08.01.22 21:58 Сейчас в теме
(3) Я правильно понимаю, что вы предлагаете снять с поддержки общий модуль БСП ПодключаемыеКоманды?...
5. ixijixi 1777 09.01.22 00:17 Сейчас в теме
(4) Нет. Делать все в расширении
mrChOP93; +1 Ответить
6. Sirruf 192 09.01.22 00:18 Сейчас в теме
(5) Понял, попробую, спасибо за совет
7. Sirruf 192 09.01.22 23:03 Сейчас в теме
(5) Получилось сделать через подсистему БСП ПодключаемыеКоманды, еще раз благодарю за отличную идею. Код подключения команд сохранения данных в Excel есть в публикации (если интересно).
8. ixijixi 1777 10.01.22 10:35 Сейчас в теме
Оставьте свое сообщение