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

Материал из База знаний АО АСП
Перейти к навигации Перейти к поиску
Новая страница: «======= Для умного гашения ======= ===== Убрать Префиксы и лидирующие нули в обработке на ФормаУмногоГашенияУФ ===== <1c> &НаКлиенте Функция НайтиВДереве(Имя,Колонка,Значение) Рез = Новый Массив; Если ТипЗнч(Колонка) = Тип("Строка") Тогда Для Каждого Стр Из Эта...»
 
Нет описания правки
Строка 84: Строка 84:
КонецФункции  
КонецФункции  
</1c>
</1c>
[[Category:Отрывки]]

Версия от 23:14, 24 февраля 2025

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

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

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

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

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

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

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