|
Замена нескольких символов в строке | ☑ | ||
---|---|---|---|---|
0
asder117
04.08.21
✎
11:23
|
Коллеги день добрый. имеем УПП 1.3. связь с базой WMS
При выгррузке из наименования должны подменяться или удаляться несколько симовлов. Может кто сталкивался как можно сделать проверку и если есть один или несколько подряд символов то удалить или заменить & НЕ ПЕРЕДАВАТЬ! < НЕ ПЕРЕДАВАТЬ! > НЕ ПЕРЕДАВАТЬ! ` НЕ ПЕРЕДАВАТЬ! “ НЕ ПЕРЕДАВАТЬ! ‘ НЕ ПЕРЕДАВАТЬ! | НЕ ПЕРЕДАВАТЬ! % НЕ ПЕРЕДАВАТЬ! / НЕ ПЕРЕДАВАТЬ! \ НЕ ПЕРЕДАВАТЬ! @ НЕ ПЕРЕДАВАТЬ! ( ) НЕ ПЕРЕДАВАТЬ! эти символы лучше не передавать Спасибо заранее |
|||
1
ДенисЧ
04.08.21
✎
11:24
|
СтрЗаменить()
|
|||
2
butterbean
04.08.21
✎
11:25
|
гугли СтрЗаменить()
|
|||
3
Галахад
гуру
04.08.21
✎
11:28
|
А зачем вообще такие символы в наименовании? Может перед записью убирать?
|
|||
4
asder117
04.08.21
✎
11:30
|
(1) (3) один символ да этой командой можно но а если несколько разных будет делать проверку на каждый чеканешся
|
|||
5
ДенисЧ
04.08.21
✎
11:32
|
(4) 4 строчки.
Если у тебя такая слабая психика - может, 1с не для тебя? |
|||
6
butterbean
04.08.21
✎
11:32
|
(4) можешь сделать отдельное поле для выгрузки названия и заполнять его при записи элемента. Это чтобы каждый раз при выгрузке не тратить ресурсы
|
|||
7
acht
04.08.21
✎
11:34
|
(0) > Коллеги
(4) > будет делать проверку на каждый чеканешся Не коллега ты нам |
|||
8
acht
04.08.21
✎
11:36
|
(5) Если удалять - то две строчки.
|
|||
9
acht
04.08.21
✎
11:37
|
Или даже одна...
|
|||
10
asder117
04.08.21
✎
11:37
|
(7) ну на вкус и цвет, (0) а вопрос решил через
RegExp = Новый COMОбъект("VBScript.RegExp"); RegExp.Pattern = "abc"; ИсходнаяСтрока = "abc 123 abc"; Результат = RegExp.Replace(ИсходнаяСтрока, "def"); // def 123 abc RegExp.Global = Истина; Результат = RegExp.Replace(ИсходнаяСтрока, "def"); // def 123 def Вопрос закрыт спасибо всем |
|||
11
mikecool
04.08.21
✎
11:38
|
регулярное выражение
|
|||
12
asder117
04.08.21
✎
11:38
|
(5) с психикой все норм. (8) именно менять надо (11) ответил (10)
Спасибо |
|||
13
Злопчинский
04.08.21
✎
11:39
|
Бляха-муха, сделай функцию типа
глНормализаияСтрокиДляОбмена(ВыбСтрока,Алфавит,СимволНормализации) |
|||
14
asder117
04.08.21
✎
11:40
|
(13) типа того и делаю
|
|||
15
acht
04.08.21
✎
11:41
|
(10) Трындеееец... Не, нахер мне такие "коллеги" не уперлись.
Результат = СтрСоединить(СтрРазделить(ИсходнаяСтрока, "&<>`“‘|%/\@()"), ""); |
|||
16
asder117
04.08.21
✎
11:42
|
(5) с 4 строками не соглашусь..точнее соглашусь если менять один из символов который попался, а если их несколько или не дай бог все вместе))) Пишем бизнес-правила нименований где запретим эти символы
|
|||
17
asder117
04.08.21
✎
11:43
|
(15) За идею решения спасибо
|
|||
18
mistеr
04.08.21
✎
11:43
|
(0) WMS не умеет правильно парсить XML?
|
|||
19
acht
04.08.21
✎
11:44
|
(18) Там с другой стороны такие же "коллеги"
|
|||
20
asder117
04.08.21
✎
11:47
|
(18) неа. не реализовано. причем запись и передача туда идет напрямую запросом в скуль
|
|||
21
Злопчинский
04.08.21
✎
11:54
|
(18) правильно выгруженный иксемель распарсить можно. неправильно выгруженный - проблематично...
|
|||
22
asder117
04.08.21
✎
11:55
|
(15) Сделал для теста
Отбор = Новый Структура("Артикул", СОКРЛП(Артикул)); Выборка = Справочники.Номенклатура.Выбрать(,, Отбор); Если Выборка.Следующий() Тогда Сообщить(Выборка.Наименование); Результат = СтрСоединить(СтрРазделить(Выборка.Наименование, "&<>`“‘|%/\@()"), ""); Сообщить(Результат); КонецЕсли; Результат..почувствуйте разницу)) Было - Конденсатор ECAP 470мкФ х 25В d10мм шаг 5мм - 40...105C >5000часов Стало - Конденсатор ECAP 470мкФ х 25В d10мм шаг 5мм - 40...105C >5000часов |
|||
23
ДенисЧ
04.08.21
✎
11:56
|
(22) А где разница? О_О
|
|||
24
mistеr
04.08.21
✎
11:57
|
(21) Все символы из (0) XML передавать позволяет.
|
|||
25
asder117
04.08.21
✎
11:58
|
(23) Вот и я о том же...хотья сделал как написано (15)
|
|||
26
acht
04.08.21
✎
12:01
|
(22) Не звизди
ИсходнаяСтрока = "Конденсатор ECAP 470мкФ х 25В d10мм шаг 5мм - 40...105C >5000часов"; Сообщить(ИсходнаяСтрока ); Результат = СтрСоединить(СтрРазделить(ИсходнаяСтрока, "&<>`“‘|%/\@()"), ""); Сообщить(Результат); Вывод: Конденсатор ECAP 470мкФ х 25В d10мм шаг 5мм - 40...105C >5000часов Конденсатор ECAP 470мкФ х 25В d10мм шаг 5мм - 40...105C 5000часов |
|||
27
asder117
04.08.21
✎
12:04
|
(26) ничего тогда не понимаю... (22) у меня так выходит...
|
|||
28
acht
04.08.21
✎
12:05
|
(27) Коды символов смотри. У тебя там наверняка какое-нибудь уникодное говно, которое выглядит похоже.
|
|||
29
Bigbro
04.08.21
✎
12:06
|
с юникодами всегда весело)
|
|||
30
Злопчинский
04.08.21
✎
12:11
|
(24) а я и не говорю, что не позволяет...
|
|||
31
assasu
04.08.21
✎
12:18
|
(0) открой для себя регулярные выражения.
|
|||
32
acht
04.08.21
✎
12:26
|
(31) И микросервисы на GO
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |