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