Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
отрывки:для_умного_гашения [2019/03/25 12:08]
asp
отрывки:для_умного_гашения [2019/03/26 09:30] (текущий)
asp
Строка 1: Строка 1:
 ======= Для умного гашения ======= ======= Для умного гашения =======
  
-===== Заполнение даты/номера заявки по комментарию =====+===== Убрать Префиксы и лидирующие ​нули в обработке на ФормаУмногоГашенияУФ ​=====
  
 <1c> <1c>
-Процедура ДействияПослеПроведенияВетСертификата(Объект, ДвиженияЭкспорт +&​НаКлиенте 
-    ... +Функция НайтиВДереве(Имяолонка,Значение) 
- Если ​Найти(Ссылка.Комментарий, "Накладная создана на основании Заказа")>0 Тогда + Рез = Новый Массив;​  ​       ​ 
- ОбъектСертификата.Документы.Очистить();​ + Если ​ТипЗнч(Колонка) = Тип("Строка"​) Тогда 
- НовСтрТД = ОбъектСертификата.Документы.Добавить();​ + Для Каждого ​Стр Из ЭтаФорма["​Таб"​+Имя+"​Дерево"​].ПолучитьЭлементы() Цикл 
- НовСтрТД.Тип Справочники.АСП_ТипыДокументов.DOC16+ ПодСтр = Стр.ПолучитьЭлементы(); 
- НовСтрТД.Связь = Справочники.АСП_ТипыСвязейДокументов.REF6+ Если ПодСтр.Количество()=0 Тогда 
- Поз1 Найтисылка.Комментарий, "​№"​)+ Если ​Стр[Колонка] = Значение Тогда  
- Поз2 = Найти(Ссылка.Комментарий, " ​от ")+ Рез.Добавить(Стр); 
- Поз3 = Найтисылка.Комментарий, " ​0:​00:​00"​);​ + КонецЕсли;​ 
- НовСтрТД.Номер = Сред(Ссылка.Комментарий, Поз1+1, Поз2-Поз1-1); + Иначе 
- НовСтрТД.Дата = Дата(Сред(Ссылка.Комментарий, Поз2+4, Поз3-Поз2-4+8));+ Для Каждого пСтр ​Из ПодСтр Цикл 
 + Если пСтролонка] = Значение Тогда  
 + Рез.Добавить(пСтр); 
 + КонецЕсли;​ 
 + КонецЦикла;​ 
 + КонецЕсли
 + КонецЦикла;​  
 + Иначе  
 + Для Каждого Стр ​Из ЭтаФорма["​Таб"​+Имя+"​Дерево"​].ПолучитьЭлементы() Цикл 
 + ПодСтр = Стр.ПолучитьЭлементы()
 + Если ​ПодСтр.Количество()=0 Тогда 
 + Буф = Истина; 
 + Для каждого ТекКолонка из Колонка цикл 
 + Если Стр[ТекКолонка.Ключ] <> ТекКолонка.Значение Тогда  
 + Буф = Ложь; 
 + КонецЕсли;  
 + КонецЦикла;​ 
 + Если Буф Тогда 
 + Рез.Добавитьтр); 
 + КонецЕсли; 
 + Иначе 
 + Для ​Каждого пСтр Из ПодСтр Цикл 
 + Для каждого ТекКолонка из Колонка цикл 
 + Буф = Истина
 + Для каждого ТекКолонка из Колонка цикл 
 + Если пСтр[ТекКолонка.Ключ] <> ТекКолонка.Значение Тогда  
 + Если ТекКолонка.Ключ = "НомерТТН" Тогда 
 + ЛевЗнч ​пСтрекКолонка.Ключ];​ 
 + ПравЗнч = ТекКолонка.Значение; 
 + Если СтрокуВЧисло(ЛевЗнч) <> СтрокуВЧисло(ПравЗнчТогда 
 + Буф = Ложь
 + КонецЕсли;​ 
 + Иначе  
 + Буф = Ложь; 
 + КонецЕсли;​ 
 + КонецЕсли;​  
 + КонецЦикла;​ 
 + Если Буф ​Тогда 
 + Резобавить(пСтр); 
 + КонецЕсли; 
 + КонецЦикла
 + КонецЦикла
 + КонецЕсли
 + КонецЦикла; 
 +
  КонецЕсли;​  КонецЕсли;​
-КонецПроцедуры+ Возврат Рез; 
 +КонецФункции 
 + 
 +&​НаКлиенте 
 +Функция СтрокуВЧисло(СтрокаСЧислом)  
 + МассивСтрок = СтрРазделить(СтрокаСЧислом,​ "​0123456789",​ Ложь);​ 
 + Для Каждого ТекСтрока из МассивСтрок Цикл  
 +     СтрокаСЧислом = СтрЗаменить(СтрокаСЧислом,​ ТекСтрока,​ ""​);​ 
 + КонецЦикла;​  
 + СтрокаСЧислом = УбратьЛидирующиеНули(СтрокаСЧислом);​ 
 + Возврат СтрокаСЧислом;​  
 +КонецФункции 
 + 
 +&​НаКлиенте 
 +Функция УбратьЛидирующиеНули(Код) Экспорт     
 +    _Код = СтрЗаменить(Код,​ "​УТ",​ ""​); ​    
 +    Если Лев(_Код,​ 1) = "​0"​ Тогда 
 +        Возврат УбратьЛидирующиеНули(Прав(_Код,​ СтрДлина(_Код) - 1));  
 +    Иначе 
 +        Возврат _Код; 
 +    КонецЕсли; ​     
 +КонецФункции ​
 </1c> </1c>