From 91ad583c59823ed216515ee4d620e6468f1d7b89 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Thu, 14 Dec 2023 12:16:24 +0300 Subject: [PATCH] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BD=D0=B0=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=B2=D1=8F=D0=B7=D0=BA=D0=B0=20=D0=BA=20=D0=BE?= =?UTF-8?q?=D0=B1=D1=89=D0=B8=D0=BC=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8F?= =?UTF-8?q?=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Word2MXL/Ext/ObjectModule.bsl | 50 +++++++++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/Word2MXL/Ext/ObjectModule.bsl b/Word2MXL/Ext/ObjectModule.bsl index 8a943a8..82bcdeb 100644 --- a/Word2MXL/Ext/ObjectModule.bsl +++ b/Word2MXL/Ext/ObjectModule.bsl @@ -514,6 +514,52 @@ Возврат Результат; КонецФункции + +Функция СвернутьМассив(Знач Массив) Экспорт + Результат = Новый Массив; + ДополнитьМассив(Результат, Массив, Истина); + Возврат Результат; +КонецФункции + +Функция РазностьМассивов(Знач Массив, Знач МассивВычитания) Экспорт + + Результат = Новый Массив; + Для Каждого Элемент Из Массив Цикл + Если МассивВычитания.Найти(Элемент) = Неопределено Тогда + Результат.Добавить(Элемент); + КонецЕсли; + КонецЦикла; + Возврат Результат; + +КонецФункции + +Процедура ДополнитьМассив(МассивПриемник, МассивИсточник, ТолькоУникальныеЗначения = Ложь) Экспорт + + Если ТолькоУникальныеЗначения Тогда + + УникальныеЗначения = Новый Соответствие; + + Для Каждого Значение Из МассивПриемник Цикл + УникальныеЗначения.Вставить(Значение, Истина); + КонецЦикла; + + Для Каждого Значение Из МассивИсточник Цикл + Если УникальныеЗначения[Значение] = Неопределено Тогда + МассивПриемник.Добавить(Значение); + УникальныеЗначения.Вставить(Значение, Истина); + КонецЕсли; + КонецЦикла; + + Иначе + + Для Каждого Значение Из МассивИсточник Цикл + МассивПриемник.Добавить(Значение); + КонецЦикла; + + КонецЕсли; + +КонецПроцедуры + Процедура ИсправитьНедопустимыеСимволы(ТабДок) // список символов из: // https://ru.wikipedia.org/wiki/%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%8E%D1%89%D0%B8%D0%B5_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D1%8B @@ -523,9 +569,9 @@ ИнтервалыКодов = Мап("Результат = СтрРазделить(Элемент, ""-"")", ИнтервалыКодов); ИнтервалыКодов = Мап("Результат = Мап(""Результат = Ох(Элемент)"" ,Элемент)", ИнтервалыКодов); ИнтервалыКодов = Мап("Результат = СформироватьДиапазон(Элемент)", ИнтервалыКодов); - УпрСимволы = Свернуть("ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Результат, Элемент)", ИнтервалыКодов, Новый Массив); + УпрСимволы = Свернуть("ДополнитьМассив(Результат, Элемент)", ИнтервалыКодов, Новый Массив); УпрСимволы = Мап("Результат = Символ(Элемент)", УпрСимволы); - УпрСимволы = ОбщегоНазначенияКлиентСервер.СвернутьМассив(УпрСимволы); + УпрСимволы = СвернутьМассив(УпрСимволы); Исключения = Мап("Результат = Символы[Элемент]", СтрРазделить("ПС,ВК", ",")); УпрСимволы = Фильтр("Условие = Неопределено = _.Найти(Элемент)", УпрСимволы, Исключения);