uniloadXLS - универсальная загрузка XLS с приведением ссылочных типов (open-source)

12.10.23

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

Приведение типов происходит при помощи прогона полученной из файла таблицы через запрос. На данный момент приводятся документы, справочники и перечисления.

uniloadXLS - универсальная загрузка XLS(X) с приведением ссылочных типов по структуре-описанию колонок. Приводятся ссылки документов, справочников и перечислений (по метаданным). COM объекты не используются

 

Исходный код можно забрать в репозитории на GitHub:
https://github.com/Bayselonarrend/uniloadXLS

 


Установка:

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

  КлиентСерверный Серверный
Клиент +  
Сервер + +
Внешнее соединение + +
Вызов сервера   +

 

Этот код необходимо поместить в подходящие модули или создать новые, провести рефакторинг имен ОМ в методах. Функция для вызова - КлиентСерверный.ЗагрузитьИзXLS(). Вызов - НаКлиенте, возвращаемое значение - адрес во временном хранилище, где находится сформированная таблица значений.
 

Принцип работы:

Пример вызова через кнопку (команду) формы:
 
!!! Пример вызова на форме  !!!

&НаКлиенте
Процедура ЗагрузитьXLS(Команда)
	
	СтруктураКолонок = Новый Структура;
	СтруктураКолонок.Вставить("Спр2"          , "СправочникСсылка.Справочник2");
	СтруктураКолонок.Вставить("Перечисление1" , "ПеречислениеСсылка.Перечисление1");
	СтруктураКолонок.Вставить("ЛюбоеИмя"      , "");
	СтруктураКолонок.Вставить("Док1"          , "ДокументСсылка.Документ1");
	СтруктураКолонок.Вставить("Спр1"          , "СправочникСсылка.Справочник1");

	
	ИД = КлиентСерверный.ЗагрузитьИзXLS(СтруктураКолонок,,2);
	
	Если ЗначениеЗаполнено(ИД)  Тогда
		ЗагрузкаНаСервере(ИД);
	КонецЕсли; 
	
КонецПроцедуры


&НаСервере
Процедура ЗагрузкаНаСервере(ИД)	
	ТЗ = ПолучитьИзВременногоХранилища(ИД);
КонецПроцедуры


 

  1. В первую очередь необходимо сформировать структуру-описание колонок: 

     Ключ - название колонки, которое необходимо получить в финальной таблице значений,  
     Значение - тип данных строкой (как он выглядит в поле "Тип" реквизита в конфигураторе или реквизитах формы).

    Колонки должны идти в том порядке и количестве (до той колонки, которая вам нужна последней), в котором они идут внутри XLS файла. Названия колонок в структуре-описании не влияют на сам документ Excel: чтение всегда идет слева направо, записывая их по порядку в колонки таблицы значений. Порядок и имена колонок уже самой таблицы значений в 1С формируются на основе структуры-описания. Если вам необходимо пропустить колонку (например, первую), то достаточно просто вставить в структуру колонок запись с любым ключом и пустым типом. Такие записи обрабатываются как пропуск колонки.

      Поле1   Поле2 Поле3
     -  Значение  -  Значение Значение
      Значение   Значение Значение
      Значение   Значение Значение

 

СтруктураКолонок = Новый Структура;
  СтруктураКолонок.Вставить("Любое"           , "");
  СтруктураКолонок.Вставить("Поле1"           , "ПеречислениеСсылка.Поле1");
  СтруктураКолонок.Вставить("ДругоеЛюбое"     , "");
  СтруктураКолонок.Вставить("Поле2"           , "ДокументСсылка.Поле2");
  СтруктураКолонок.Вставить("Поле3"           , "СправочникСсылка.Поле3");

 

  1. Вызваемая функция - КлиентСерверный.ЗагрузитьИзXLS
    Параметры
    • Структура колонок - из предыдущего пункта
    • Название листа - чтение идет из первого, если не указан или не был найден в файле
    • Номер первой строки - для пропуска шапки и других лишних строк (по умолчанию - 1)

 

При вызове метода открывается окно выбора файла XLS (XLSX). После обработки возвращает адрес временного хранилища, в котором хранится полученная таблица значений.

Обработка происходит следующим образом:

По очереди считываются столбцы из файла и записываются в таблицу значений с заранее сформированными колонками на основе структуры. Затем эта таблица значений попадает через параметр в запрос, динамически сформированный на основе типов из значений структуры. Документы приводятся по номерам (как число и как строка), справочники - по кодам (как число и как строка) и наименованиям, перечисления - по синониму (не в запросе, по метаданным). Справочник Номенклатура отдельно приводится по реквизиту Артикул. Строковые значения, загруженные из документа, остаются в таблице отдельными колонками на всякий случай. 

Важно: Все примитивные типы остаются после загрузки типом "Строка", однако приводятся платформой автоматически при заполнении в табличную часть или другую таблицу значений с нужным типом колонки (через ЗаполнитьЗначенияСвойств() или присваивание, например).



Пример полученного запроса:

Такой запрос получается на основе структуры-описания. Первым пакетом загружается "сырая" таблица из XLS файла
 
ВЫБРАТЬ
	ВходнаяТаблица.Спр2 КАК Спр2,
	ВходнаяТаблица.Спр2КодЧислом КАК Спр2КодЧислом,
	ВходнаяТаблица.Перечисление1НеОбрабатывать КАК Перечисление1,
	ВходнаяТаблица.Док1 КАК Док1,
	ВходнаяТаблица.Док1КодЧислом КАК Док1КодЧислом,
	ВходнаяТаблица.Спр1 КАК Спр1,
	ВходнаяТаблица.Спр1КодЧислом КАК Спр1КодЧислом,
	ВходнаяТаблица.ПорядковыйНомер КАК ПорядковыйНомер
ПОМЕСТИТЬ ВходнаяТаблица
ИЗ
	&ВходнаяТаблица КАК ВходнаяТаблица
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	Произведения1.Ссылка КАК Спр2,
	Пост1.Ссылка КАК Док1,
	Люди1.Ссылка КАК Спр1,
	ВходнаяТаблица.Спр2 КАК Спр2Служебный,
	ВходнаяТаблица.Перечисление1 КАК Перечисление1,
	ВходнаяТаблица.Док1 КАК Док1Служебный,
	ВходнаяТаблица.Спр1 КАК Спр1Служебный
ИЗ
	ВходнаяТаблица КАК ВходнаяТаблица
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Справочник2 КАК Справочник2
		ПО (ВходнаяТаблица.Спр2 <> "")
			И (ВходнаяТаблица.Спр2 <> 0)
			И (ВходнаяТаблица.Спр2 = Справочник2.Наименование
				ИЛИ ВходнаяТаблица.Спр2КодЧислом = Справочник2.Код
				ИЛИ ВходнаяТаблица.Спр2 = Справочник2.Код)
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.Документ1 КАК Документ1
		ПО (ВходнаяТаблица.Док1 <> "")
			И (ВходнаяТаблица.Док1 <> 0)
			И ВходнаяТаблица.Док1 = Документ1.Номер
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Справочник1 КАК Справочник1
		ПО (ВходнаяТаблица.Спр1 <> "")
			И (ВходнаяТаблица.Спр1 <> 0)
			И (ВходнаяТаблица.Спр1 = Справочник1.Наименование
				ИЛИ ВходнаяТаблица.Спр1КодЧислом = Справочник1.Код
				ИЛИ ВходнаяТаблица.Спр1 = Справочник1.Код)

УПОРЯДОЧИТЬ ПО
	ВходнаяТаблица.ПорядковыйНомер

 

Запрос выполняется, выгружается в ТЗ и помещается во временное хранилище, адрес которого возвращается в результате выполнения функции.

 

Проект распространяется под лицензией MIT

Репозиторий: https://github.com/Bayselonarrend/uniloadXLS

 

 

 Мой GitHub:     https://gitub.com/Bayselonarrend 
 Лицензия MIT:   https://mit-license.org

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    212242    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    152028    368    376    

503

Маркетплейсный загрузчик для 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    32572    252    65    

126

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    217175    935    886    

946

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

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

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

4800 руб.

07.06.2022    15469    83    0    

64

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    102389    298    173    

314
Оставьте свое сообщение