Skip to content

Commit

Permalink
Рефакторинг, введение оператора условия "ВИРТ" для виртуальных полей
Browse files Browse the repository at this point in the history
  • Loading branch information
thvvmas committed Nov 18, 2024
1 parent 8d86461 commit 622c911
Show file tree
Hide file tree
Showing 3 changed files with 446 additions and 106 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,23 +27,18 @@
// Параметры:
// АдресВХранилище - Строка - Адрес файла во временном хранилище
// Расширение - Строка - Расширение файла (xls, xlsx)
// Параметры - Структура - структура параметров загрузки Excel-файла
// см. пбп_ЗагрузкаФайлаЧерезТабличныйДокументКлиент.ИнициализироватьСтруктуруПередачиПараметровНаСервер
// ПараметрыЧтения - Структура - структура параметров загрузки Excel-файла
// см. пбп_ЗагрузкаФайлаЧерезТабличныйДокументСервер.ПолучитьПараметрыЧтенияФайла
//
Процедура ФормированиеТаблицы(АдресВХранилище, Расширение, Параметры) Экспорт
Процедура ФормированиеТаблицы(АдресВХранилище, Расширение, ПараметрыЧтения) Экспорт

ТаблицаСвойств = ПолучитьИзВременногоХранилища(Параметры.АдресМакета);

ПараметрыЧтения = пбп_ЗагрузкаФайлаЧерезТабличныйДокументСервер.ПолучитьПараметрыЧтенияФайла();
ПараметрыЧтения.НазваниеЛиста = Параметры.НазваниеЛиста;
ПараметрыЧтения.НомерСтроки = Параметры.НомерПервойСтроки;
ПараметрыЧтения.СопоставлениеПоНаименованию = Параметры.ПоНаименованию;
ТаблицаСвойств = ПолучитьИзВременногоХранилища(ПараметрыЧтения.АдресМакета);

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

ПоместитьВоВременноеХранилище(ТаблицаДанных, Параметры.АдресПомещения);
ПоместитьВоВременноеХранилище(ТаблицаДанных, ПараметрыЧтения.АдресПомещения);

КонецПроцедуры

Expand Down Expand Up @@ -78,19 +73,18 @@
//
Функция ИнициализироватьТаблицуСоСвойствамиКолонок() Экспорт

СвойстваКолонок = Новый ТаблицаЗначений;
ДлинаСтроки = 150;
СвойстваКолонок.Колонки.Добавить("ИмяКолонки" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(ДлинаСтроки));
СвойстваКолонок.Колонки.Добавить("ИмяВТабДоке" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(ДлинаСтроки));
СвойстваКолонок.Колонки.Добавить("ТипЗначения" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(ДлинаСтроки));
СвойстваКолонок.Колонки.Добавить("ПолеПоиска1" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(ДлинаСтроки));
СвойстваКолонок.Колонки.Добавить("ПолеПоиска2" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(ДлинаСтроки));
СвойстваКолонок.Колонки.Добавить("ПолеПоиска3" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(ДлинаСтроки));
// BSLLS:MagicNumber-off
СвойстваКолонок.Колонки.Добавить("ОператорСравнения" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(3));
// BSLLS:MagicNumber-on
Возврат пбп_ЗагрузкаФайлаЧерезТабличныйДокументСервер.ИнициализироватьТаблицуСоСвойствамиКолонок();

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

// Получить параметры чтения файла
//
// Возвращаемое значение:
// Структура - см. пбп_ЗагрузкаФайлаЧерезТабличныйДокументСервер.ПолучитьПараметрыЧтенияФайла
//
Функция ПолучитьПараметрыЧтенияФайла() Экспорт

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

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,34 +22,41 @@

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

// Инициализировать структуру параметров чтения
//
// Возвращаемое значение:
// Структура - см. пбп_ЗагрузкаФайлаЧерезТабличныйДокументСервер.ПолучитьПараметрыЧтенияФайла
//
Функция ИнициализироватьСтруктуруПараметровЧтения() Экспорт

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

Возврат СтруктураПараметров;

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

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

Check notice on line 51 in src/cf/CommonModules/пбп_ЗагрузкаФайлаЧерезТабличныйДокументКлиент/Ext/Module.bsl

View check run for this annotation

sonar.openbsl.ru qa-bot / 1C: Project SubSystems Library Sonarqube Results

src/cf/CommonModules/пбп_ЗагрузкаФайлаЧерезТабличныйДокументКлиент/Ext/Module.bsl#L51

Добавьте описание метода программного интерфейса

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

Параметры = ИнициализироватьСтруктуруПередачиПараметровНаСервер();
Параметры.АдресМакета = АдресСоответствияКолонок;
Параметры.АдресПомещения = АдресПомещения;
Параметры.НазваниеЛиста = НазваниеЛиста;
Параметры.НомерПервойСтроки = НомерПервойСтроки;
Параметры.ПоНаименованию = СопоставлениеПоНаименованию;
ПараметрыЧтения.АдресМакета = АдресСоответствияКолонок;
ПараметрыЧтения.АдресПомещения = АдресПомещения;

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

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

#Область СлужебныеПроцедурыИФункции

Функция ИнициализироватьСтруктуруПередачиПараметровНаСервер()

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

Возврат СтруктураПараметров;

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


#КонецОбласти // СлужебныеПроцедурыИФункции
Loading

0 comments on commit 622c911

Please sign in to comment.