Skip to content

Commit

Permalink
Перенос и адаптация подсистемы загрузки файла Excel (#37)
Browse files Browse the repository at this point in the history
Перенос и адаптация подсистемы https://github.com/Bayselonarrend/uniloadXLS
  • Loading branch information
ivanmolodec authored Apr 10, 2024
1 parent 996effa commit 9d39ee9
Show file tree
Hide file tree
Showing 7 changed files with 438 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Подсистема загрузки файлов Excel через табличный документ

Пример вызова на форме

```1C (BSL)
&НаКлиенте
Асинх Процедура ЗагрузитьXLS(Команда)
СтруктураКолонок = Новый Структура;
СтруктураКолонок.Вставить("Спр2" , "СправочникСсылка.Спр2");
СтруктураКолонок.Вставить("Перечисление1" , "ПеречислениеСсылка.Перечисление1");
СтруктураКолонок.Вставить("ЛюбоеИмя" , "");
СтруктураКолонок.Вставить("Док1" , "ДокументСсылка.Док1");
СтруктураКолонок.Вставить("Спр1" , "СправочникСсылка.Спр1");
ИД = Ждать __ЗагрузкаФайлаЧерезТабличныйДокументКлиент.ЗагрузитьИзXLS(СтруктураКолонок, , 2);
Если ЗначениеЗаполнено(ИД) Тогда
ЗагрузкаНаСервере(ИД);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗагрузкаНаСервере(ИД)
ТЗ = ПолучитьИзВременногоХранилища(ИД);
КонецПроцедуры
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
<CommonModule uuid="69beac3a-36fd-4246-8d7d-dfaeca98cbb2">
<Properties>
<Name>__ЗагрузкаФайлаЧерезТабличныйДокументВызовСервера</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Загрузка файла через табличный документ вызов сервера</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Global>false</Global>
<ClientManagedApplication>false</ClientManagedApplication>
<Server>true</Server>
<ExternalConnection>false</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
<ServerCall>true</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
<CommonModule uuid="7a89e22f-71d4-4875-81c4-426ef92f36ee">
<Properties>
<Name>__ЗагрузкаФайлаЧерезТабличныйДокументКлиент</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Загрузка файла через табличный документ клиент</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Global>false</Global>
<ClientManagedApplication>true</ClientManagedApplication>
<Server>false</Server>
<ExternalConnection>false</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
<ServerCall>false</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
// MIT License

// Copyright (c) 2024 Anton Tsitavets

// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:

// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.

// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.

#Область ПрограммныйИнтерфейс

// Функция - Загрузить из XLS
//
// Параметры:
// СоответствиеКолонок - Структура - Описание колонок загружаемого файла
// НазваниеЛиста - Строка - Имя загружаемого листа (по-умолчанию не заполнено)
// НомерПервойСтроки - Число - Номер строки с которой начинается загрузка данных (по-умолчанию 1)
//
// Возвращаемое значение:
// - Строка - Адрес файла во временном хранилище
//
Асинх Функция ЗагрузитьИзXLS(СоответствиеКолонок, НазваниеЛиста = "", НомерПервойСтроки = 1) Экспорт

// ++ Обход ошибки отстутствия модуля БСП, не переносить
ОбщегоНазначенияКлиент = Неопределено;
// -- Обход ошибки отстутствия модуля БСП, не переносить

АдресПомещения = __ЗагрузкаФайлаЧерезТабличныйДокументВызовСервера.ПоместитьЗаглушку(СоответствиеКолонок);

Параметры = Новый Структура("Макет, АдресПомещения, НазваниеЛиста, НомерПервойСтроки", СоответствиеКолонок, АдресПомещения, НазваниеЛиста, НомерПервойСтроки);

ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов;
ПараметрыДиалога.Фильтр = "Документ Excel (*.xls, *.xlsx)|*.xls;*.xlsx|";
ПараметрыДиалога.МножественныйВыбор = Ложь;
ПараметрыДиалога.ИндексФильтра = 0;
ПараметрыДиалога.Заголовок = "Выберите файл для загрузки";

ОписаниеФайла = Ждать ПоместитьФайлНаСерверАсинх( , , , ПараметрыДиалога);

Если ТипЗнч(ОписаниеФайла) = Тип("ОписаниеПомещенногоФайла") И Не ОписаниеФайла.ПомещениеФайлаОтменено Тогда
__ЗагрузкаФайлаЧерезТабличныйДокументВызовСервера.ФормированиеТаблицы(ОписаниеФайла.Адрес, ОписаниеФайла.СсылкаНаФайл.Расширение, Параметры);
Иначе
ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Помещение файла отменено'"));
АдресПомещения = Неопределено;
КонецЕсли;

Возврат АдресПомещения;

КонецФункции

#КонецОбласти
11 changes: 7 additions & 4 deletions src/Configuration.xml
Original file line number Diff line number Diff line change
Expand Up @@ -232,11 +232,11 @@
<ConfigurationInformationAddress/>
<DataLockControlMode>Managed</DataLockControlMode>
<ObjectAutonumerationMode>NotAutoFree</ObjectAutonumerationMode>
<ModalityUseMode>DontUse</ModalityUseMode>
<ModalityUseMode>UseWithWarnings</ModalityUseMode>
<SynchronousPlatformExtensionAndAddInCallUseMode>DontUse</SynchronousPlatformExtensionAndAddInCallUseMode>
<InterfaceCompatibilityMode>Taxi</InterfaceCompatibilityMode>
<InterfaceCompatibilityMode>TaxiEnableVersion8_2</InterfaceCompatibilityMode>
<DatabaseTablespacesUseMode>DontUse</DatabaseTablespacesUseMode>
<CompatibilityMode>Version8_3_14</CompatibilityMode>
<CompatibilityMode>Version8_3_18</CompatibilityMode>
<DefaultConstantsForm/>
</Properties>
<ChildObjects>
Expand All @@ -249,6 +249,7 @@
<Subsystem>__ПредопределенныеЗначения</Subsystem>
<Subsystem>__СоответствиеОбъектовИБ</Subsystem>
<Subsystem>__УправлениеИнтеграциями</Subsystem>
<Subsystem>__ЗагрузкаИзТабличногоДокумента</Subsystem>
<CommonPicture>__ПодсистемаУправлениеИнтеграциями</CommonPicture>
<CommonPicture>__Реквизит</CommonPicture>
<CommonPicture>__Реквизиты</CommonPicture>
Expand All @@ -269,11 +270,14 @@
<CommonTemplate>__XMLEditor</CommonTemplate>
<CommonModule>__ВспомогательныйМодульНеПереносить</CommonModule>
<CommonModule>__ВспомогательныйМодульНеПереноситьКлиент</CommonModule>
<CommonModule>__ВспомогательныйМодульНеПереноситьКлиентСервер</CommonModule>
<CommonModule>__ДокументыОбработкаЗаполнения</CommonModule>
<CommonModule>__ДокументыОбработкаПроведения</CommonModule>
<CommonModule>__ДокументыПередЗаписью</CommonModule>
<CommonModule>__ДокументыПриЗаписи</CommonModule>
<CommonModule>__ДокументыПриКопировании</CommonModule>
<CommonModule>__ЗагрузкаФайлаЧерезТабличныйДокументВызовСервера</CommonModule>
<CommonModule>__ЗагрузкаФайлаЧерезТабличныйДокументКлиент</CommonModule>
<CommonModule>__ИнтеграцииСервер</CommonModule>
<CommonModule>__КоннекторHTTP</CommonModule>
<CommonModule>__МетодыРегламентныхЗаданийСервер</CommonModule>
Expand All @@ -298,7 +302,6 @@
<CommonModule>__СправочникиПриКопировании</CommonModule>
<CommonModule>__СтроковыеФункцииКлиентСервер</CommonModule>
<CommonModule>__ТипСоответствияОбъектовИБПереопределяемый</CommonModule>
<CommonModule>__ВспомогательныйМодульНеПереноситьКлиентСервер</CommonModule>
<EventSubscription>__ДокументыОбработкаЗаполнения</EventSubscription>
<EventSubscription>__ДокументыОбработкаПроведения</EventSubscription>
<EventSubscription>__ДокументыПередЗаписью</EventSubscription>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
<Subsystem uuid="c42cc67d-57d4-4d30-9546-56096c4506a6">
<Properties>
<Name>__ЗагрузкаИзТабличногоДокумента</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Загрузка из табличного документа</v8:content>
</v8:item>
</Synonym>
<Comment/>
<IncludeHelpInContents>true</IncludeHelpInContents>
<IncludeInCommandInterface>false</IncludeInCommandInterface>
<UseOneCommand>false</UseOneCommand>
<Explanation/>
<Picture/>
<Content>
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.__ЗагрузкаФайлаЧерезТабличныйДокументВызовСервера</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.__ЗагрузкаФайлаЧерезТабличныйДокументКлиент</xr:Item>
</Content>
</Properties>
<ChildObjects/>
</Subsystem>
</MetaDataObject>

0 comments on commit 9d39ee9

Please sign in to comment.