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

06.01.22

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Сохранение данных табличных частей форм в Excel: файл конфигурации, расширение
.zip 43,17Kb
3
3 Скачать (5 SM) Купить за 3 050 руб.
Назначение подсистемы

Подсистема предназначена для сохранения табличных частей форм прикладного решения 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! 20%

Загрузка и выгрузка в 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С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

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

6000 5100 руб.

09.11.2016    234081    1062    898    

1003

Загрузка и выгрузка в 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 дней БЕСПЛАТНОГО пользования!

2400 руб.

12.08.2021    35483    348    68    

155

SALE! 30%

Загрузка и выгрузка в 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С и нажимаете кнопку "Распознать и загрузить".

8400 5880 руб.

04.06.2019    106884    313    173    

326

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

15600 руб.

20.11.2015    156033    378    378    

513

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

Загрузка данных отчета о реализации и продаже товаров из сервиса Яндекс.Маркета «Беру» в 1С из Отчетов Excel для конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11; Управление торговлей, редакция 10.3; Управление нашей фирмой, редакция 3.0 и Розница, редакция 3.0 в документ «Отчет комиссионера о продажах».

4800 руб.

09.12.2020    25342    252    1    

114

SALE! 15%

Загрузка и выгрузка в 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 9435 руб.

29.10.2014    216740    657    527    

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

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

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