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