Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Актуализация подсистемы загрузки таб дока #146

Merged
merged 19 commits into from
Nov 21, 2024
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
b41e123
Актуализация подсистемы загрузки таб дока
thvvmas Nov 12, 2024
a75cc86
Исправление ошибок Sonarqube
thvvmas Nov 12, 2024
8e2c73d
Добавление функции парсинга CSV-файлов
thvvmas Nov 13, 2024
154e576
Добавление функции парсинга CSV-файлов
thvvmas Nov 13, 2024
98cd3fb
Исправление ошибок Sonarqube и экранирование БСПшных функций
thvvmas Nov 13, 2024
3778a4a
Доработаны комментарии методов, добавлена кодировка в чтение CSV
thvvmas Nov 14, 2024
439a37e
Исправлена ошибка, если расширение файла передается с клиента
thvvmas Nov 15, 2024
5ed5a95
Исправлены заголовки полей на форме потоков
thvvmas Nov 15, 2024
1fb42b0
Добавлена функция инициализации параметров запроса ВИД
thvvmas Nov 15, 2024
719623f
Добавлена функция работы с командной строкой
thvvmas Nov 15, 2024
500f606
Revert "Рефакторинг, введение оператора условия "ВИРТ" для виртуальны…
thvvmas Nov 18, 2024
e67d49c
Рефакторинг, введение оператора условия "ВИРТ" для виртуальных полей
thvvmas Nov 18, 2024
cce8093
Merge remote-tracking branch 'origin/updating-upload-from-file' into …
thvvmas Nov 18, 2024
7b34469
Экранирование ошибки сонара из-за вызова БСП
thvvmas Nov 18, 2024
12db676
Переименована функция инициализации параметров чтения файла
thvvmas Nov 20, 2024
128daab
Поднял версию конфигурации
thvvmas Nov 20, 2024
0a5b826
Исправлены комментарии к модулям
thvvmas Nov 20, 2024
ec9a37f
Решение мерж конфликтов путем объединения с develop
thvvmas Nov 21, 2024
c7c67c1
Откат версии конфигурации из-за конфликта
thvvmas Nov 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,8 @@
ПреобразованноеЗначение = Формат(Значение, "ДФ=yyyy-MM-dd");
ИначеЕсли ТипJSON = Перечисления.пбп_ТипыJSON.Число Тогда
ПреобразованноеЗначение = Формат(Значение, "ЧГ=0");
ИначеЕсли ТипJSON = Перечисления.пбп_ТипыJSON.Строка Тогда
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это точно относится к данному PR?

ПреобразованноеЗначение = Значение;
Иначе
ПреобразованноеЗначение = "";
КонецЕсли;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -224,8 +224,8 @@
пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ПараметрыВходаПараметрURL, УстанавливаемоеСвойство, Ложь);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ПрямоеПодключениеКБД Тогда
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Текст запроса'");
Элементы.ПараметрыВхода.Заголовок = ПараметрыЗапросаСтрока;
Элементы.ТочкаВхода.Заголовок = НСтр("ru = 'Имя таблицы внешнего источника данных'");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Аналогично)

Элементы.ПараметрыВхода.Заголовок = НСтр("ru = 'Обязательные параметры запроса';");
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Исправьте синтаксическую ошибку

В строке присутствует лишняя точка с запятой после строкового литерала.

Примените следующие изменения:

-			Элементы.ПараметрыВхода.Заголовок = НСтр("ru = 'Обязательные параметры запроса';");
+			Элементы.ПараметрыВхода.Заголовок = НСтр("ru = 'Обязательные параметры запроса'");
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Элементы.ПараметрыВхода.Заголовок = НСтр("ru = 'Обязательные параметры запроса';");
Элементы.ПараметрыВхода.Заголовок = НСтр("ru = 'Обязательные параметры запроса'");


пбп_ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы, ТочкаВхода, УстанавливаемоеСвойство, Истина);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
// 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.
// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
// включая доработку типовых конфигураций.
//
// Copyright First BIT company
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// URL: https://github.com/firstBitSportivnaya/PSSL/
//

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

Expand All @@ -27,23 +25,18 @@
// Параметры:
// АдресВХранилище - Строка - Адрес файла во временном хранилище
// Расширение - Строка - Расширение файла (xls, xlsx)
// Параметры - Структура - структура параметров загрузки Excel-файла
// см. пбп_ЗагрузкаФайлаЧерезТабличныйДокументКлиент.ИнициализироватьСтруктуруПередачиПараметровНаСервер
// ПараметрыЧтения - Структура - структура параметров загрузки Excel-файла
// см. пбп_ЗагрузкаФайлаЧерезТабличныйДокументСервер.ПолучитьПараметрыЧтенияФайла
//
Процедура ФормированиеТаблицы(АдресВХранилище, Расширение, Параметры) Экспорт

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

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

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

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

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

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

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

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

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

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

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

Expand Down
Original file line number Diff line number Diff line change
@@ -1,55 +1,60 @@
// 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.
// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
// включая доработку типовых конфигураций.
//
// Copyright First BIT company
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// URL: https://github.com/firstBitSportivnaya/PSSL/
//

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

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

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

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

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

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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Исправить документацию параметра ПараметрыЧтения

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

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

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

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

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

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

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

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

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

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

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


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