"Управление производственным предприятием для Украины", редакция 1.3
Разработка конфигурации: "ABBYY Ukraine", 2005-2016 (1.3.45.1) (http://1c.ua/v8/RegionalSolutions_UA_UPP.php)
Copyright © ООО "1C", 2005-2016
(http://www.1c.ru/)
Как найти последнее вхождение символа в строке? В моем случае это ","...
"ЗАМОВЛЕНІ ДОДАТКОВІ ПОСЛУГИ ЗА МЕЖАМИ ПАКЕТА:,3.9216,196.0784,200.0000" на выходе должно остаться "200"
"ЗАМОВЛЕНІ ДОДАТКОВІ ПОСЛУГИ ЗА МЕЖАМИ ПАКЕТА:,113.9216,14.0784,48.0000" на выходе должно остаться "48"
Pavlik1c @ Сегодня, 16:18
необходимо зарегистрироваться для просмотра ссылки
,
Разделитель = ",";
Строки = СтрЗаменить("ЗАМОВЛЕНІ ДОДАТКОВІ ПОСЛУГИ ЗА МЕЖАМИ ПАКЕТА:,3.9216,196.0784,200.0000", Разделитель, Символы.ПС);
Результат = СтрПолучитьСтроку(Строки, 4);
ДлСтр = СтрДлина(Результат);
Сообщить(Лев(Результат,ДлСтр-5));
Mularik @ Сегодня, 16:35 необходимо зарегистрироваться для просмотра ссылки
,
После "ЗАМОВЛЕНІ ДОДАТКОВІ ПОСЛУГИ ЗА МЕЖАМИ ПАКЕТА:," могут быть разные значения...
Курите функцию СтрНайти, там есть направление поиска СКонца
Во всех типовых есть функция ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок. В вашем случае использовать так:
Массив = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Строка);
Значение = Массив[Массив.Количество() - 1];
logist @ Сегодня, 16:48 необходимо зарегистрироваться для просмотра ссылки
,
Пробую использовать Функцию СтрНайти() в модуле формы... ругается - Процедура или функция с указанным именем не определена (СтрНайти)
Цитата(Pavlik1c @ 06.09.16, 17:29) необходимо зарегистрироваться для просмотра ссылки
Процедура или функция с указанным именем не определена (СтрНайти)
Подозреваю, что в режиме совместимости с 8.2 (у типовой УПП) ее нет.
В управляемом, без совместимости на платформе 8.3.6.2449 такая функция есть.
Тогда как предложил
Vofka
! |
| необходимо зарегистрироваться для просмотра ссылки: 16.
|
Функция РазложитьСтрокуВМассив(Строка,Разделитель)
RegExp = Новый COMОбъект("VBScript.RegExp");
RegExp.MultiLine = Истина; // истина — текст многострочный, ложь — одна строка
RegExp.Global = Истина; // истина — поиск по всей строке, ложь — до первого совпадения
RegExp.IgnoreCase = Ложь; // истина — игнорировать регистр строки при поиске
RegExp.Pattern = "[^\" + Разделитель + "]+";
Matches = RegExp.Execute (Строка);
Массив = Новый Массив;
Для Сч = 0 По Matches.Count - 1 Цикл
Массив.Добавить(Matches.Item(Сч).Value);
КонецЦикла;
Возврат Массив;
КонецФункции
ВЫзов
Массив = РазложитьСтрокуВМассив(Строка,",");
Последнне значение в массиве - искомое
Цитата(Pavlik1c @ 06.09.16, 16:43) необходимо зарегистрироваться для просмотра ссылки
После "ЗАМОВЛЕНІ ДОДАТКОВІ ПОСЛУГИ ЗА МЕЖАМИ ПАКЕТА:," могут быть разные значения...
Это не важно. Главное - что бы не менялось положение относительно запятых и количество нулей после точки в последнем числе, т.е.:
"ЗАМОВЛЕНІ ДОДАТКОВІ ПОСЛУГИ ЗА МЕЖАМИ ПАКЕТА:,[Число_1],[Число_2.],[Число_3.0000]" - в таком виде будет работать с любыми числами
sava1, зачем? В УПП есть типовая функция
Mularik, зачем так сложно? Предложили уже идеальное решение.
Для полного комплекта.
Кстати, в 3.6 есть функция СтрРазделить()
Цитата(sava1 @ 06.09.16, 20:11) необходимо зарегистрироваться для просмотра ссылки
в 3.6 есть функция СтрРазделить()
В 3.6 есть много новых полезных функций начинающихся с "Стр", но в режиме совместимости с 8.2 они не работают.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.