Для умного гашения: различия между версиями

Материал из База знаний АО АСП
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
======= Для умного гашения =======
====== Для умного гашения ======


===== Убрать Префиксы и лидирующие нули в обработке на ФормаУмногоГашенияУФ =====
===== Убрать Префиксы и лидирующие нули в обработке на ФормаУмногоГашенияУФ =====

Версия от 07:59, 28 марта 2025

Для умного гашения
Убрать Префиксы и лидирующие нули в обработке на ФормаУмногоГашенияУФ

<1c> &НаКлиенте Функция НайтиВДереве(Имя,Колонка,Значение) Рез = Новый Массив; Если ТипЗнч(Колонка) = Тип("Строка") Тогда Для Каждого Стр Из ЭтаФорма["Таб"+Имя+"Дерево"].ПолучитьЭлементы() Цикл ПодСтр = Стр.ПолучитьЭлементы(); Если ПодСтр.Количество()=0 Тогда Если Стр[Колонка] = Значение Тогда Рез.Добавить(Стр); КонецЕсли; Иначе Для Каждого пСтр Из ПодСтр Цикл Если пСтр[Колонка] = Значение Тогда Рез.Добавить(пСтр); КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; Иначе Для Каждого Стр Из ЭтаФорма["Таб"+Имя+"Дерево"].ПолучитьЭлементы() Цикл ПодСтр = Стр.ПолучитьЭлементы(); Если ПодСтр.Количество()=0 Тогда Буф = Истина; Для каждого ТекКолонка из Колонка цикл Если Стр[ТекКолонка.Ключ] <> ТекКолонка.Значение Тогда Буф = Ложь; КонецЕсли; КонецЦикла; Если Буф Тогда Рез.Добавить(Стр); КонецЕсли; Иначе Для Каждого пСтр Из ПодСтр Цикл Для каждого ТекКолонка из Колонка цикл Буф = Истина; Для каждого ТекКолонка из Колонка цикл Если пСтр[ТекКолонка.Ключ] <> ТекКолонка.Значение Тогда Если ТекКолонка.Ключ = "НомерТТН" Тогда ЛевЗнч = пСтр[ТекКолонка.Ключ]; ПравЗнч = ТекКолонка.Значение; Если СтрокуВЧисло(ЛевЗнч) <> СтрокуВЧисло(ПравЗнч) Тогда Буф = Ложь; КонецЕсли; Иначе Буф = Ложь; КонецЕсли; КонецЕсли; КонецЦикла; Если Буф Тогда Рез.Добавить(пСтр); КонецЕсли; КонецЦикла; КонецЦикла; КонецЕсли; КонецЦикла;

КонецЕсли; Возврат Рез; КонецФункции

&НаКлиенте Функция СтрокуВЧисло(СтрокаСЧислом) МассивСтрок = СтрРазделить(СтрокаСЧислом, "0123456789", Ложь); Для Каждого ТекСтрока из МассивСтрок Цикл СтрокаСЧислом = СтрЗаменить(СтрокаСЧислом, ТекСтрока, ""); КонецЦикла; СтрокаСЧислом = УбратьЛидирующиеНули(СтрокаСЧислом); Возврат СтрокаСЧислом; КонецФункции

&НаКлиенте Функция УбратьЛидирующиеНули(Код) Экспорт

   _Код = СтрЗаменить(Код, "УТ", "");    
   Если Лев(_Код, 1) = "0" Тогда
       Возврат УбратьЛидирующиеНули(Прав(_Код, СтрДлина(_Код) - 1)); 
   Иначе
       Возврат _Код;
   КонецЕсли;     

КонецФункции </1c>

0.00
(0 голосов)