Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Найти последнее вхождение ЗАПЯТОЙ , Необходимо получить часть строки после последней запятой          
Pavlik1c Подменю пользователя
сообщение 06.09.16, 15:18
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 48
Спасибо сказали: 2 раз
Рейтинг: 0

"Управление производственным предприятием для Украины", редакция 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"

Mularik Подменю пользователя
сообщение 06.09.16, 15:35
Сообщение #2

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 1 раз
Рейтинг: 0

Pavlik1c @ Сегодня, 16:18 * ,
    Разделитель = ",";
    Строки = СтрЗаменить("ЗАМОВЛЕНІ ДОДАТКОВІ ПОСЛУГИ ЗА МЕЖАМИ ПАКЕТА:,3.9216,196.0784,200.0000", Разделитель, Символы.ПС);
    Результат = СтрПолучитьСтроку(Строки, 4);
    ДлСтр = СтрДлина(Результат);
    Сообщить(Лев(Результат,ДлСтр-5));

Pavlik1c Подменю пользователя
сообщение 06.09.16, 15:43
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 48
Спасибо сказали: 2 раз
Рейтинг: 0

Mularik @ Сегодня, 16:35 * ,


После "ЗАМОВЛЕНІ ДОДАТКОВІ ПОСЛУГИ ЗА МЕЖАМИ ПАКЕТА:," могут быть разные значения...

logist Подменю пользователя
сообщение 06.09.16, 15:48
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Курите функцию СтрНайти, там есть направление поиска СКонца


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 06.09.16, 16:06
Сообщение #5

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Во всех типовых есть функция ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок. В вашем случае использовать так:

Массив = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Строка);
Значение = Массив[Массив.Количество() - 1];

Спасибо сказали: andreykyiv@bigmir.net,

Pavlik1c Подменю пользователя
сообщение 06.09.16, 16:29
Сообщение #6

Общительный
**
Группа: Пользователи
Сообщений: 48
Спасибо сказали: 2 раз
Рейтинг: 0

logist @ Сегодня, 16:48 * ,
Пробую использовать Функцию СтрНайти() в модуле формы... ругается - Процедура или функция с указанным именем не определена (СтрНайти)

logist Подменю пользователя
сообщение 06.09.16, 16:40
Сообщение #7

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Pavlik1c @ 06.09.16, 17:29) *
Процедура или функция с указанным именем не определена (СтрНайти)

Подозреваю, что в режиме совместимости с 8.2 (у типовой УПП) ее нет.
В управляемом, без совместимости на платформе 8.3.6.2449 такая функция есть.

Тогда как предложил Vofka


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Нонна Подменю пользователя
сообщение 06.09.16, 16:51
Сообщение #8

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Харьков
Спасибо сказали: 50 раз
Рейтинг: 0


 ! 

Правила: 16.
 


Сообщение отредактировал logist - 06.09.16, 16:56

sava1 Подменю пользователя
сообщение 06.09.16, 18:37
Сообщение #9

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

Функция РазложитьСтрокуВМассив(Строка,Разделитель)
    RegExp = Новый COMОбъект("VBScript.RegExp");
    RegExp.MultiLine = Истина;  // истина — текст многострочный, ложь — одна строка
    RegExp.Global = Истина;   // истина — поиск по всей строке, ложь — до первого совпадения
    RegExp.IgnoreCase = Ложь; // истина — игнорировать регистр строки при поиске
    
    RegExp.Pattern = "[^\" + Разделитель + "]+";    
    Matches = RegExp.Execute (Строка);
    
    Массив = Новый Массив;
    
    Для Сч = 0 По Matches.Count - 1 Цикл
        Массив.Добавить(Matches.Item(Сч).Value);
    КонецЦикла;
        
    Возврат Массив;
КонецФункции


ВЫзов

Массив = РазложитьСтрокуВМассив(Строка,",");


Последнне значение в массиве - искомое

Сообщение отредактировал sava1 - 06.09.16, 18:38

Mularik Подменю пользователя
сообщение 06.09.16, 19:05
Сообщение #10

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Pavlik1c @ 06.09.16, 16:43) *
После "ЗАМОВЛЕНІ ДОДАТКОВІ ПОСЛУГИ ЗА МЕЖАМИ ПАКЕТА:," могут быть разные значения...

Это не важно. Главное - что бы не менялось положение относительно запятых и количество нулей после точки в последнем числе, т.е.:
"ЗАМОВЛЕНІ ДОДАТКОВІ ПОСЛУГИ ЗА МЕЖАМИ ПАКЕТА:,[Число_1],[Число_2.],[Число_3.0000]" - в таком виде будет работать с любыми числами

logist Подменю пользователя
сообщение 06.09.16, 19:06
Сообщение #11

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

sava1, зачем? В УПП есть типовая функция

Mularik, зачем так сложно? Предложили уже идеальное решение.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

sava1 Подменю пользователя
сообщение 06.09.16, 19:11
Сообщение #12

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

Для полного комплекта.
Кстати, в 3.6 есть функция СтрРазделить()

Сообщение отредактировал sava1 - 06.09.16, 19:13

logist Подменю пользователя
сообщение 06.09.16, 19:15
Сообщение #13

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(sava1 @ 06.09.16, 20:11) *
в 3.6 есть функция СтрРазделить()

В 3.6 есть много новых полезных функций начинающихся с "Стр", но в режиме совместимости с 8.2 они не работают.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.04.24, 2:04
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!