Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Последняя версия Следующая версия справа и слева | ||
отрывки:для_умного_гашения [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> |