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