формат модуля
This commit is contained in:
parent
9f8af02165
commit
1f1bdeb8af
@ -165,8 +165,8 @@
|
||||
|
||||
ЗакрытьДокумент(комДокумент); // без сохранения
|
||||
ЗакрытьВорд(комВорд);
|
||||
|
||||
ИсправитьНедопустимыеСимволы(т);
|
||||
|
||||
ИсправитьНедопустимыеСимволы(т);
|
||||
Возврат т;
|
||||
|
||||
Исключение
|
||||
@ -420,19 +420,19 @@
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
Функция АлфавитСистемСчисления(Нотация=36)
|
||||
Алфавит = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
ДлинаАлфавита = СтрДлина(Алфавит);
|
||||
Результат = "";
|
||||
Если ДлинаАлфавита = Нотация Тогда
|
||||
Результат = Алфавит;
|
||||
ИначеЕсли ДлинаАлфавита > Нотация Тогда
|
||||
Результат = Лев(Алфавит, Нотация);
|
||||
Иначе
|
||||
ВызватьИсключение "Алфавит слишком мал";
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
Функция АлфавитСистемСчисления(Нотация = 36)
|
||||
Алфавит = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
ДлинаАлфавита = СтрДлина(Алфавит);
|
||||
Результат = "";
|
||||
Если ДлинаАлфавита = Нотация Тогда
|
||||
Результат = Алфавит;
|
||||
ИначеЕсли ДлинаАлфавита > Нотация Тогда
|
||||
Результат = Лев(Алфавит, Нотация);
|
||||
Иначе
|
||||
ВызватьИсключение "Алфавит слишком мал";
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
Функция ЧислоВДругуюСистему(Знач Значение = 0, Нотация = 36)
|
||||
@ -441,8 +441,8 @@
|
||||
КонецЕсли;
|
||||
|
||||
Значение = Цел(Число(Значение));
|
||||
Если Значение <= 0 Тогда
|
||||
Возврат "0";
|
||||
Если Значение <= 0 Тогда
|
||||
Возврат "0";
|
||||
КонецЕсли;
|
||||
|
||||
Алфавит = АлфавитСистемСчисления(Нотация);
|
||||
@ -455,8 +455,8 @@
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
Функция ЧислоИзДругойСистемы(Знач Значение = "0", Нотация = 36)
|
||||
Если Нотация <= 0 Тогда
|
||||
Функция ЧислоИзДругойСистемы(Знач Значение = "0", Нотация = 36)
|
||||
Если Нотация <= 0 Тогда
|
||||
Возврат 0;
|
||||
КонецЕсли;
|
||||
|
||||
@ -464,15 +464,15 @@
|
||||
Если Значение = "0" Тогда
|
||||
Возврат 0;
|
||||
КонецЕсли;
|
||||
|
||||
Алфавит = АлфавитСистемСчисления(Нотация);
|
||||
|
||||
Алфавит = АлфавитСистемСчисления(Нотация);
|
||||
Результат = 0;
|
||||
Длина = СтрДлина(Значение);
|
||||
Для Позиция = 1 По Длина Цикл
|
||||
Множитель = Pow(Нотация, Длина - Позиция);
|
||||
ТекСимвол = Сред(Значение, Позиция, 1);
|
||||
ИндексСимвола = СтрНайти(Алфавит, ТекСимвол) - 1;
|
||||
Результат = Результат + ИндексСимвола * Множитель;
|
||||
ТекСимвол = Сред(Значение, Позиция, 1);
|
||||
ИндексСимвола = СтрНайти(Алфавит, ТекСимвол) - 1;
|
||||
Результат = Результат + ИндексСимвола * Множитель;
|
||||
КонецЦикла;
|
||||
Возврат Окр(Результат);
|
||||
КонецФункции
|
||||
@ -486,7 +486,7 @@
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗаменитьТекстВТД(ТД, Текст, Замена)
|
||||
Область = ТД.НайтиТекст(Текст);
|
||||
Область = ТД.НайтиТекст(Текст);
|
||||
Пока НЕ Неопределено = Область Цикл
|
||||
Область.Текст = СтрЗаменить(Область.Текст, Текст, Замена);
|
||||
Область = ТД.НайтиТекст(Текст, Область);
|
||||
@ -494,45 +494,44 @@
|
||||
КонецПроцедуры
|
||||
|
||||
Функция МассивПоДиапазонуЧисел(Число_С, Число_По)
|
||||
Результат = Новый Массив;
|
||||
Для ТекЧисло = Число_С По Число_По Цикл
|
||||
Результат.Добавить(ТекЧисло);
|
||||
КонецЦикла;
|
||||
Возврат Результат;
|
||||
Результат = Новый Массив;
|
||||
Для ТекЧисло = Число_С По Число_По Цикл
|
||||
Результат.Добавить(ТекЧисло);
|
||||
КонецЦикла;
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
Функция СформироватьДиапазон(МассивОписанияДиапазона)
|
||||
Результат = Неопределено;
|
||||
Если 1 = МассивОписанияДиапазона.Количество() Тогда
|
||||
Результат = Новый Массив;
|
||||
Результат.Добавить(МассивОписанияДиапазона[0]);
|
||||
ИначеЕсли 2 = МассивОписанияДиапазона.Количество() Тогда
|
||||
Результат = МассивПоДиапазонуЧисел(МассивОписанияДиапазона[0], МассивОписанияДиапазона[1]);
|
||||
Иначе
|
||||
ВызватьИсключение СтрШаблон("Ошибка в описании диапазона: %1 элементов", МассивОписанияДиапазона.Количество());
|
||||
КонецЕсли;
|
||||
Возврат Результат;
|
||||
Результат = Неопределено;
|
||||
Если 1 = МассивОписанияДиапазона.Количество() Тогда
|
||||
Результат = Новый Массив;
|
||||
Результат.Добавить(МассивОписанияДиапазона[0]);
|
||||
ИначеЕсли 2 = МассивОписанияДиапазона.Количество() Тогда
|
||||
Результат = МассивПоДиапазонуЧисел(МассивОписанияДиапазона[0], МассивОписанияДиапазона[1]);
|
||||
Иначе
|
||||
ВызватьИсключение СтрШаблон("Ошибка в описании диапазона: %1 элементов", МассивОписанияДиапазона.Количество());
|
||||
КонецЕсли;
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
Процедура ИсправитьНедопустимыеСимволы(ТабДок)
|
||||
// список символов из:
|
||||
// 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
|
||||
ИнтервалыКодов = "0-1F,7F,80-9F,034F,2008,200B-200F,2028-202E,2060-2061,2063,2066-206F,"
|
||||
+ "FE00-FE0F,FEFF,FFF9-FFFD,E0100-E01EF";
|
||||
ИнтервалыКодов = СтрРазделить(ИнтервалыКодов, ",");
|
||||
ИнтервалыКодов = Мап("Результат = СтрРазделить(Элемент, ""-"")", ИнтервалыКодов);
|
||||
ИнтервалыКодов = Мап("Результат = Мап(""Результат = Ох(Элемент)"" ,Элемент)", ИнтервалыКодов);
|
||||
ИнтервалыКодов = Мап("Результат = СформироватьДиапазон(Элемент)", ИнтервалыКодов);
|
||||
УпрСимволы = Свернуть("ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Результат, Элемент)", ИнтервалыКодов, Новый Массив);
|
||||
УпрСимволы = Мап("Результат = Символ(Элемент)", УпрСимволы);
|
||||
// список символов из:
|
||||
// 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
|
||||
ИнтервалыКодов = "0-1F,7F,80-9F,034F,2008,200B-200F,2028-202E,2060-2061,2063,2066-206F,"
|
||||
+ "FE00-FE0F,FEFF,FFF9-FFFD,E0100-E01EF";
|
||||
ИнтервалыКодов = СтрРазделить(ИнтервалыКодов, ",");
|
||||
ИнтервалыКодов = Мап("Результат = СтрРазделить(Элемент, ""-"")", ИнтервалыКодов);
|
||||
ИнтервалыКодов = Мап("Результат = Мап(""Результат = Ох(Элемент)"" ,Элемент)", ИнтервалыКодов);
|
||||
ИнтервалыКодов = Мап("Результат = СформироватьДиапазон(Элемент)", ИнтервалыКодов);
|
||||
УпрСимволы = Свернуть("ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Результат, Элемент)", ИнтервалыКодов, Новый Массив);
|
||||
УпрСимволы = Мап("Результат = Символ(Элемент)", УпрСимволы);
|
||||
УпрСимволы = ОбщегоНазначенияКлиентСервер.СвернутьМассив(УпрСимволы);
|
||||
Исключения = Мап("Результат = Символы[Элемент]", СтрРазделить("ПС,ВК", ","));
|
||||
УпрСимволы = Фильтр("Условие = Неопределено = _.Найти(Элемент)", УпрСимволы, Исключения);
|
||||
Исключения = Мап("Результат = Символы[Элемент]", СтрРазделить("ПС,ВК", ","));
|
||||
УпрСимволы = Фильтр("Условие = Неопределено = _.Найти(Элемент)", УпрСимволы, Исключения);
|
||||
|
||||
ЗаменитьТекстВТД(ТабДок, Символы.ВТаб, Символы.ПС);
|
||||
|
||||
Для Каждого ТекСимвол_Число Из УпрСимволы Цикл
|
||||
ЗаменитьТекстВТД(ТабДок, ТекСимвол_Число, "");
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
Loading…
Reference in New Issue
Block a user