|
v7: Значок Амперсанд "&" в заголовке текстового реквизита на форме. Куда девается? | ☑ | ||
---|---|---|---|---|
0
MWWRuza
гуру
18.01.23
✎
21:10
|
Добрый день!
Я знаю, что "семерка еще сырая", об этом можно мне не рассказывать. То-ли очередной баг-глюк, то-ли я чего-то не понимаю... Есть некая строка, в которой присутствует символ амперсанда - "&". в отладчике, и в ТЗ на форме отображается правильно: https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-470.jpg Но, почему-то эта-же строка, просто текстовым полем на форме прорисовывается методом: Форма.НаимНомПост.Заголовок(НаимНомПоставщика) без амперсанда... https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-469.jpg Куда он девается? Есть какое-то огланичение на вывод подобных символов на формы? Может их экранировать нужно, или выводить тегами как html - ??? Странно, семерка, вроде не должно такого быть, каких-то html-лов, или чего-то подобного там отродясь не было... Но, факт. Что я не так делаю? |
|||
1
MWWRuza
гуру
18.01.23
✎
21:13
|
+(0) и в ТЗ на форме
Ошибся, не в ТЗ, а в строковом реквизите формы, см. второй скриншот, там это видно... |
|||
2
MWWRuza
гуру
18.01.23
✎
21:17
|
+(1) а в строковом реквизите формы
Точнее даже в поле ввода. Вот: https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-471.jpg |
|||
3
mikecool
18.01.23
✎
21:19
|
я не знаю, но Ззакуп цена понравилось ))
|
|||
4
MWWRuza
гуру
18.01.23
✎
21:19
|
В ТЗ, кстати, тоже правильно эта строка отображается, только на другой форме. И текстовый комментарий на той форме тоже без амперсанда выводится....
|
|||
5
MWWRuza
гуру
18.01.23
✎
21:22
|
(3) А чего с ней не так? Я сам не курю, поэтому не обращал внимания... Ну, 101.44, при МРЦ 130... Какие-то третьесортные сигареты наверное... Это УПД реального клиента, сегодняшняя.
|
|||
6
MWWRuza
гуру
18.01.23
✎
21:25
|
+(5) И поставщик "серьезный", не левак - АО ТК "Мегаполис"
|
|||
7
mikecool
18.01.23
✎
21:27
|
(5) две З в начале - норма?
|
|||
8
MWWRuza
гуру
18.01.23
✎
21:35
|
(7) Глаза сломал, искал в данных... Ничего не нашел. А там оказывается реквизит так подписан :-)
Это Ззззз не спроста! (С) ВинниПух :-) (правда там "жжж" было, ну ды ладно)... Спасибо, глаз замылился, не обращал внимания :-( Исправлю. Но, это к проблемме не относится... |
|||
9
Злопчинский
18.01.23
✎
21:43
|
Конфигуратор-Файл-Новый-Внешняяобработка - свойства кнопки Сформировать - посмотри внимательно, может это наведет тебя на мысль
|
|||
10
Злопчинский
18.01.23
✎
21:44
|
как говорится "в мире слепых и одноглазый - король"
|
|||
11
Злопчинский
18.01.23
✎
21:51
|
фиг его знает что ты там делаешь, но штатно это так выглядит
//******************************************* // Процедура ПриОткрытии() стрТекст = "ТутБудет&Амперсанд"; Форма.тТекст.Заголовок("ТутБудет&Амперсанд"); КонецПроцедуры // ПриОткрытии() https://i.ibb.co/GJJb07p/2023-01-18-215039.png |
|||
12
Злопчинский
18.01.23
✎
21:51
|
||||
13
MWWRuza
гуру
18.01.23
✎
21:58
|
Ну, да, в кнопках символ для комбинации "Альт+ЭтотСимвол" амперсандом обозначается, и в заголовке кнопки подчеркивание при этом ставится.
Но, это-же не кнопка... А в твоей обработке, как ты сделал подчеркивание - ? У меня, ни "S" ни "r" не подчеркиваются, просто амперсанд не выводится, как будто его и нет. |
|||
14
Злопчинский
18.01.23
✎
22:05
|
(13) все в (11)
даже если стрТекст = "Тут ""Будет&Амперсанд"""; подчеркивание будет. может у тебя шрифт такой, что не отображает, поставь на стандартный |
|||
15
Злопчинский
18.01.23
✎
22:06
|
(13) "У меня, ни "S" ни "r" не подчеркиваются, просто амперсанд не выводится, как будто его и нет."
созлдавать проблемы - это тоже надо уметь... |
|||
16
MWWRuza
гуру
18.01.23
✎
22:11
|
(13) А в твоей обработке, как ты сделал подчеркивание - ?
Все, понял, через функцию: Функция ВывестиСтроку() Возврат "ТутБудет&Амперсанд"; КонецФункции У меня тоже подчеркивает. В пробной обработке. А в рабочей базе, почему-то нет. Шрифт стандартный. Ну, да ладно, не умеет семерка выводить амперсанд в загоровки реквизитов, приму как аксиому :-( В общем, не очень то и хотелось... Просто бросилось в глаза, решил понять почему так. |
|||
17
MWWRuza
гуру
18.01.23
✎
22:13
|
(11) А что я там делаю? Ничего особенного, на самом первом скриншоте видно. Все штатно.
|
|||
18
MWWRuza
гуру
18.01.23
✎
22:23
|
(16) приму как аксиому :-(
Ну, вообще, это баг по большому счету. Видимо, в ядре 7.7(платформе :-) ) одна и та-же функция отображения заголоака текстового реквизита(надписи) и заголовка кнопки используется. А по хорошему, должны быть разные. Функционал то у надписи и у кнопки разный. С реквизитом "поле ввода" такого не происходит, там амперсанд выводится без проблемм. А для надписи разрабочики просто поленились делать отдельную функцию вывода заголовка... |
|||
19
MWWRuza
гуру
18.01.23
✎
22:40
|
А вот и хренушки!
Семерка - форера! :-) Рано ее еще хоронить из-за какого-то амперсанда: https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-472.jpg Все работает, вот: Функция ВывестиСтроку() Возврат "ТутБудет&&Амперсанд"; КонецФункции |
|||
20
MWWRuza
гуру
18.01.23
✎
23:03
|
В рабочей, одна экспортная функция в ГМ:
https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-473.jpg |
|||
21
uno-group
19.01.23
✎
09:45
|
& служебный символ используется для того чтобы повесить быстрый доступ к кнопке на клавишу следующую за этим символом. Видать решили не заморачиваться и во всех элементах диалога его одинаково обрабатывают. Боюсь что даже двойной & может в каких то случаях ломать клавиши быстрого доступа ИМХО лучше не использовать а заменить на что то аналогичное.
Хитрый обход подобных трюков может привести к тому, что перестанет работать тестирование и исправление в конфигурации или будет не коректно отрабабывать |
|||
22
uno-group
19.01.23
✎
09:48
|
Я сейчас не могу сделать тестирование из-за того что в свое время поборол Украинскую букву i Ї и вторую Г. Сейчас отловить и исправить все текстовые поля где пользователи их набили не реально хотя легко можно было с этим бороться на этапе ввода данных просто запретив их.
|
|||
23
Волшебник
модератор
19.01.23
✎
09:51
|
(21) А я говорил, что семёрка ещё сырая... Переходите на восьмёрку, там это реализовано.
|
|||
24
uno-group
19.01.23
✎
09:53
|
(23) Все что задокументировано, не баг это фича. А про & даже в желтых книжечках было. ;)
|
|||
25
MWWRuza
гуру
19.01.23
✎
11:25
|
Ну, реально амперсанд в наименовании справочника проходит нормально, и с тестированием вроде проблемм нет.
Другое дело - всякие непечатные символы, вроде GS1 от маркировки, действительно не проходят, при тестировании пишет про "не верное содержание текстового поля". Вот: https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-475.jpg Я специально, для примера, взял тестовую базу, в которой была попытка хранить коды маркировки с непечатными символами, в рабочих базах этого естественно уже давно нет Но, по большому счету, и незачем их хранить в базе - достаточно хранить КИЗ, до первого символа GS1, а всякие "криптохвосты" и "индикаторы применения" они в базе и не нужны. Амперсанд же довольно часто используется именно в наименованиях, типа "Проктер&Гембл", или "Пупкин&Компания", и сложно от этого куда-то деться. Вот, в этой-же базе(тестирование которой на предыдущем скриншоте) например, там несколько позиций, в наименованиях которых есть амперсанд. При тестировании ошибок по этим полям нет. А двойной амперсанд, просто использую при выводе текстовой надписи на экранную форму, реально там, в базе, один хранится. Форматирую строку перед выводом, функцией меняю в строке "&" на "&&"... Естественно, заголовок клавиши я таким образом "курочить" не собираюсь, только надпись. А она в 7.7 не активна, это не восьмерка... |
|||
26
MWWRuza
гуру
19.01.23
✎
11:29
|
Второй скриншот забыл :-) Вот: https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-474.jpg
|
|||
27
АгентБезопасной Нацио
19.01.23
✎
11:43
|
(25) "только надпись. А она в 7.7 не активна, это не восьмерка..." - при желании...
|
|||
28
MWWRuza
гуру
19.01.23
✎
11:55
|
(27) Сделать можно все. Или почти все. А штатно, если не делать, ничего ради этого, то это просто надпись, не активная.
PS Кстати, проверил сейчас - кнопки с амперандом работают нормально на форме, при нажатии "Альт+буква", не зависимо от того, что на форме есть надпись в которой амперсанд перед такой-же буквой стоит. https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-476.jpg |
|||
29
АгентБезопасной Нацио
19.01.23
✎
12:07
|
(28) не люблю это слово - "штатно". особенно в качестве ограничительного условия.
|
|||
30
MWWRuza
гуру
19.01.23
✎
12:13
|
Откуда вообще возник вопрос - извращенцы из Мегаполиса, что-то перемудрили с экранированием символов в XML УПД, и одну из пачек сигарет передали в таком виде:
НаимТов="сигареты с фильтром "Parker<(>&<)>Simpson Red 100's", МТ 130,00 руб." Зачем-то амперсанд взяли в круглые скобки, потом эти круглые скобки в свою очередт передали как теги в треугольных скобках... Да еще и апостроф в конце вкорячили... Майкрософтовский ХМЛ-парсер, немного офигел от такого безобразия, и распарсил так: НаимТовараУПД = "сигареты с фильтром "Parker<(>&<)>Simpson Red 100's", МТ 130,00 руб." Не красиво... Сначала хотел просто повырезать треугольные скобки и апостроф... Но, амперсанд остается в круглых скобках... Опять "не красиво" :-) Написал такую функцию: Функция ОчиститьОтЛишнихСимволов(Стр) // Исправление косяков экранировки спец. символов поставщиком Для Сч = 1 По СтрДлина(Стр) Цикл НачПозТега = Найти(Стр, "<"); ОстСтр = Сред(Стр, НачПозТега + 1); КонПозТега = Найти(ОстСтр, ">"); НачСтр = Лев(Стр, НачПозТега - 1); КонСтр = Сред(ОстСтр, КонПозТега + 1); Если (НачПозТега = 0) И (КонПозТега = 0) Тогда Прервать; КонецЕсли; Стр = НачСтр + КонСтр; КонецЦикла; // Стр = СтрЗаменить(Стр, "<", ""); // Стр = СтрЗаменить(Стр, ">", ""); // Стр = СтрЗаменить(Стр, "&", ""); Стр = СтрЗаменить(Стр, "'", ""); Возврат Стр; КонецФункции Так, получилось вполне удовлетворительно: Стр = "сигареты с фильтром "Parker&Simpson Red 100s", МТ 130,00 руб." Решил на этом и успокоиться, но тут заметил, что амперсанд в надпись на форму не выводится :-( Вот и возник сабж :-) |
|||
31
Arbuz
19.01.23
✎
14:19
|
Детектив. Есть ещё у семёрки порох в пороховницах... и ягоды в ягодицах )))
|
|||
32
MWWRuza
гуру
19.01.23
✎
16:22
|
Может несколько ОФФТоп... Но.
А как правильно с точки зрения не программного кода и всяких правил формирования XML и тому подобного, а с точки зрения... Ээээ... Русским языком это даже не назвать, но, с точки зрения правильного написания наименований, содержащих "&" - амперсанд лолжен быто окружен пробелами или нет? Т.е, как правильно: "Parker&Simpson" или "Parker & Simpson" - ? Мегаполис вообще решили почему-то, что амперсанд надо взять в круглые скобки-??!!, а сами скобки еще и в треугольные, типа так: "<(>"... Понятно, что это бред и такого в наименовании быть не должно, но, если я уж нормализую наименование при загрузке, убирая эту лабуду, то как правильно - амперсанд отделять пробелами от остальных слов или нет? Набрал в яндексе "проктер энд гэмбл", вышла куча ссылок, где "Procter & Gamble" через пробелы написано... Но, правильно ли это? |
|||
33
MWWRuza
гуру
19.01.23
✎
16:28
|
На самих сигаретах непонятно написано, вот(картинка из интернета): https://avatars.dzeninfra.ru/get-zen_doc/142473/pub_5bfa45c16b2b7e00aaa1fbb1_5bfa46831e536c00abd99e6d/scale_1200
там перенос нав новую строку... Да и не одними этими сигаретами такая "нормализация" может ограничиться... Еще вполне может встретиться с другими товарами. |
|||
34
Злопчинский
19.01.23
✎
16:30
|
Открой родное написание иностранной хрени. Официальное. Так и должно быть.
. Как правильно New York New-York NewYork ? |
|||
35
MWWRuza
гуру
19.01.23
✎
16:40
|
Вроде, везде с пробелами пишут.
Добавил в функцию: Стр = СтрЗаменить(Стр, "&", " & "); Ни на что не влияет но пусть будет... |
|||
36
victuan1
20.01.23
✎
08:03
|
Да, с пробелами. Символ & означает союз "and" (по-русски, "и"). А союз это самостоятельное слово, которое отделяется от соседних слов пробелами.
|
|||
37
Arbuz
20.01.23
✎
16:15
|
(36) Там всё несколько сложнее и правила английского языка чётко регламентируют когда использовать &, а когда and, они не равнозначны.
|
|||
38
Курцвейл
20.01.23
✎
16:22
|
(6) Кроме Мегаполиса других поставщиков сигарет в РФ нет.
|
|||
39
Курцвейл
20.01.23
✎
16:28
|
(37) Доступно & Всерьез
|
|||
40
Arbuz
20.01.23
✎
16:59
|
(39) Если это фирма организованная Доступно Ириной Петровной и Всерьез Муратом Ибрагимовичем то да.
|
|||
41
MWWRuza
гуру
20.01.23
✎
21:26
|
(38) Ну, по сути да... Есть еще СНС, но, как-то мелко... Но у того-же Мегаполиса, есть куча филиалов, в разных городах... И я не думаю,что эта "хренотень" в наименовании этих сигарет, заведена централизовано... Иначе, уже куча клиентов бы отзвонились, что не проходит(на самом деле, скобки и амперанд тут ни при чем, просто у меня в конфе SQL-лайт апостроф не понмает), но позвонили только одни.
|
|||
42
Злопчинский
20.01.23
✎
21:38
|
еще текстовая надпись если ее на маленькую букву "я" сделать - тоже занятно...
|
|||
43
ДедМорроз
21.01.23
✎
11:19
|
Символ & в Windows в заголовке окна - это отображение команды быстрого вызова через Alt.
Текстовое поле надписи выводит надпись в заголовок окна,поэтому - операционная система при выводе удаляет & и добавляет акселератор в таблицу акселераторов. При нажатии Alt должна появиться черточка на следующем после & символа. Раньше черточка была всегда,но потом придумали,что их можно скрывать до нажатия Alt - это,кстати,в настройках отключается. Насколько я помню,два && подряд выведутся как один и механизм акселераторов не будет работать. |
|||
44
MWWRuza
гуру
21.01.23
✎
16:00
|
(43) Да, все именно так.
(42) Эээээ..... А вот тут не понял, что с "я" не так - ? Вот скриншот, не вижу ничего необычного: https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-477.jpg |
|||
45
ДедМорроз
21.01.23
✎
16:41
|
В однобайтовой кодировке маленькая я - это символ 255,который,в некоторых случаях служебный.
|
|||
46
Харлампий Дымба
23.01.23
✎
10:44
|
(44) Если Форма.Реквизит.Заголовок("яИРебята") - всё нормально, но если задашь текстовый реквизит на форме и в Заголовке пропишешь "яИРебята" - будет пустота.
|
|||
47
MWWRuza
гуру
23.01.23
✎
17:13
|
(46) Ага. Все так и есть. В конфигураторе - есть, в режиме предприятия - нет:
https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-478.jpg |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |