Шрифт для программного кода на русском - Hack 1C

0. 6051 13.10.20 11:00 Сейчас в теме
Случалось ли вам долго и мучительно искать, почему код работает неправильно, а оказалось, что вместо кириллической буквы "С" по ошибке была введена латинская "C"? Этот шрифт позволяет быстро отличать такие буквы и букву "О" от цифры "0".

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. nomad_irk 51 13.10.20 11:10 Сейчас в теме
В таком случае, различия нужны для:

русской А - латинской А
русской a - латинской a
русской В - латинской В
русской Е - латинской Е
русской е - латинской е
русской Н - латинской Н
русской М - латинской М
русской О - латинской О
русской о - латинской о
русской Р - латинской Р
русской Т - латинской Т
русской Х - латинской Х
русской х - латинской х
adva; ivanov660; FatPanzer; AzagTot; Darklight; maksa2005; Brawler; wolder; json; lion4iki; unichkin; Cmapnep; rpgshnik; Rustig; vv2; wowik; +16 1 Ответить
2. Азбука Морзе 90 13.10.20 11:13 Сейчас в теме
(1) Видимо это в планах на будущее.
32. wolder 111 16.10.20 05:49 Сейчас в теме
(1) Забыли про: русской у - латинской y
35. tormozit 6051 16.10.20 07:03 Сейчас в теме
(32) Слабенько как то проверил то. Если подходить чисто теоретически, то там еще кучи букв не хватает.
36. dvsidelnikov 17 16.10.20 08:50 Сейчас в теме
(1) особенность проблемы символа с в том, что и латинский, и символ кириллицы на одной клавише.
38. tormozit 6051 16.10.20 12:20 Сейчас в теме
(36) Да. Надо повторить это хотя бы 10 раз. Возможно тогда люди начнут на это обращать внимание.
dvsidelnikov; +1 Ответить
43. FatPanzer 9 17.10.20 12:52 Сейчас в теме
(36) О, O и 0 тоже на трех разных клавишах... Тем не менее автор акцентирует внимание на различение 0 и О...
49. gigabyte_artur 20.10.20 10:44 Сейчас в теме
(1) "3" как "три" - и "З" как заглавная "зэ". Особенно в аббревиатурах часто непонятно.
PS. Пользуюсь в работе виндовым шрифтом Consolas. Он есть на любом компьютере и лучше подходит для кодинга, чем стандартные шрифты конфигуратора. Хотя, Ваша наработка тоже заинтриговала.
tormozit; +1 Ответить
50. tormozit 6051 20.10.20 11:28 Сейчас в теме
(49) Вот это действительно полезное замечание. Спасибо. Доработаю свой шрифт.
51. tormozit 6051 20.10.20 22:02 Сейчас в теме
(49) В цифре "3" заменил верхнюю дугу на угол для различия с русской буквой "З". Это позволяет быстро различить цифру и заглавную букву (например в "ПК3" и "ПКЗ").
gigabyte_artur; +1 Ответить
52. gigabyte_artur 21.10.20 01:28 Сейчас в теме
(51) Рад помочь, спасибо за реализацию!
59. AnryMc 730 26.10.20 12:15 Сейчас в теме
(1)
В таком случае, различия нужны для:


Проверка строки на RUS/LAT - раскраска
https://infostart.ru/public/1302654/

З.Ы. Вопрос волнует аудиторию...
3. tormozit 6051 13.10.20 11:19 Сейчас в теме
(1) Зачем крайности? 2 обозначенные проблемы относительно часто встречаются. А остальные случаи подмены визуально неразличимых символов в моей довольно большой практике программирования на 1С практически не встречались. Поэтому я не планирую делать для них различий. Если тебе они встречались, то хотелось бы реальных примеров, т.е. описания действий пользователя для их появления.
4. nomad_irk 51 13.10.20 11:22 Сейчас в теме
(3)Т.к. при программировании 1С часто приходится переключаться между латинским и русским, бывает в запаре начинаешь писать латинскими буквами по-русски и наоборот.
46. МимохожийОднако 130 18.10.20 07:24 Сейчас в теме
(4)
часто приходится переключаться между латинским и русским

не согласен. Редко приходится переключаться. Не вижу причин для частых переключений.
39. Darklight 24 17.10.20 01:24 Сейчас в теме
(3)Вот это точно ещё встречал
РP pр
ХX xх
ОO oо
АA aа
З3
б6

Bозможно и другиe вaрианты тоже встречал, нo либо не заметил, либо не запомнил.

Tак что, если yж делать пометки - то для всех сxожих сочетаний - такой шрифт я давно ищу... но пока не нашёл :-(
Проcтo дело не стoлько в тeксте кода - а ещё и в сравнении теста данных - частенько визуально строки одинаковы - но "почему-то не равны". Сравнивать их в НЕХ редактоpе не удобно (тем болeе, что я не видел ни одного удобного HEX редактора для этих целей; когда-то я лично делал подо6ные для DОS и Windows 95, а вот на 1С у меня пока нет законченного решения для подобного сравнения).

Ещё часто шрифты становятся невыразительными на спецсимволах и некоторых буквах при курсивном наборе
5. tormozit 6051 13.10.20 11:24 Сейчас в теме
(4) Я имел ввиду пример для конкретной подмены символов.
6. nomad_irk 51 13.10.20 11:33 Сейчас в теме
(5)да первое что пришло в голову:


Комманда.CommandText = "Sel ect ID fr om Buses where Route IN(13, 44)";
RecordSet = Комманда.Execute();

Автобусы = Новый ТаблицаЗначений;

Пока Не RecordSet.EOF Цикл
НСтр = Автобусы.Добавить();
КонецЦикла;


Выделенная буква "А" не редко получается латинской, а далее - русской, потому что переключения языка не происходило.
7. tormozit 6051 13.10.20 11:51 Сейчас в теме
(6) Это не реальный пример. Если пользователь хотел ввести русскую букву "А" и забыл переключить язык с английского на русский, то он бы ввел "F".
ubnkfl; EliasShy; ABudnikov; ltfriend; Painted; teploukhov; +6 Ответить
8. nomad_irk 51 13.10.20 12:17 Сейчас в теме
(7) Переключения раскладки не было, мозг продолжает думать в латинской раскладке, но написать нужно букву "А", он ее и пишет, латинскую.
Когда сознание понимает, что буква "в" должна быть уже русской, то происходит переключение раскладки в мозге, затем на клавиатуре, но латинскую букву "А" заменить на русскую забываешь.

Проблем с буквами в середине слов лично у меня тоже исчезающе мало, но бывают, когда приходится переключаться между окнами, вводить на разных языках что-то, для каждого окна ОС запоминает язык ввода - это и удобно и способствует появлению таких ошибок в коде.
Darklight; +1 Ответить
12. ltfriend 597 13.10.20 18:10 Сейчас в теме
(8) Хоть по себе людей и не судят, но вот у меня ни разу такого не было. Если я набираю текст кириллицей, но раскладка латинская, то всегда получает белиберда. И наоборот. Лично у меня мозг "думает" в той раскладке, в которой я набираю текст. И если реальная раскладка отличается от той, что в мозгу, то это сразу видно. А вот спутать латинскую С и русскую очень легко, потому что это одна и та же клавиша. Но я уже без шрифтов такие ошибки распознаю (кстати, очередной камень в сторону динамической типизации).
16. Rustig 1611 13.10.20 21:54 Сейчас в теме
(7) есть виртуальные клавиатуры (используются на удаленном рабочем столе или андроид-смартфонах при подключении к 1с через терминал) или на кассах, на которых программируемые клавиатуры, поэтому легче использовать виртуальные клавиатуры... но в таких условиях не приходилось именно программировать, лишь только сервисные функции запускать, поиск товара проводить, путь к каталогу прописывать... забыл написать, что раскладка на них другая, чем на ноутах, вспомнил, что на ТСД тоже раскладка иная, но опять-таки ни разу не программировал в конфигураторе 1Сна ТСД...
26. tamepjlah 15.10.20 04:38 Сейчас в теме
(7) Из вашей же оперы: если пользователь хотел ввести букву О, то он не будет вводить 0. Если он забыл сменить раскладку, то он введет J.
27. tormozit 6051 15.10.20 08:20 Сейчас в теме
(26) Я и не утверждал, что проблема различимости буквы "О" и цифры "0" имеет тот же тип что и проблема с буквами "С".
Цифры в идентификаторах и строковых литералах в коде 1С используются намного чаще, чем английские буквы. Поэтому неустранимая контекстом неоднозначность между буквой "О" и цифрой "0" встречается значительно чаще чем между русскими и английскими буквами с одинаковыми формами. Поэтому снова отмечаю, что в шрифте сделана защита для 2-х самых частых проблем, которые встречались в моей практике. Делать защиту от остальных проблем мне кажется неоправданным, т.к. это происходит в ущерб читаемости.
15. Rustig 1611 13.10.20 21:50 Сейчас в теме
(5) такой пример может подойти (?): надо логин и пароль прописать внутри алгоритма 1С, например на доступ к фтп или к почте ?
9. spectre1978 56 13.10.20 14:13 Сейчас в теме
По-моему, это примерно из той же серии как воевать с теми, кто точки над буквой ё не ставит...
10. tormozit 6051 13.10.20 14:34 Сейчас в теме
(9) Нет. "ё" и "е" - четко визуально различимы всегда. Использование "е" вместо "ё" относится к устоявшимся осознанным нарушениям правил орфографии. Здесь же речь про неоднозначную трактовку образа символа - распознавание образов.
ABudnikov; +1 Ответить
13. spectre1978 56 13.10.20 20:19 Сейчас в теме
(10) ну тем не менее. За ~20 лет работы и 6 лет студенчества по айтишной специальности могу вспомнить, наверно, случая два или три, чтобы лично у меня были бы какие-то заморочки, связанные с программированием и одинаковым начертанием разных символов.
Гораздо чаще подобные проблемы бывают вне сферы программирования, например, при опознании человеком распечатанных паролей и их последующем вводе. Вот это - действительно проблема, да. 1 и l, 0 и O и прочая подобная жопота могут заставить потратить немало времени. Но здесь вся беда в том, что, как правило, шрифтом это не решается, потому что оно уже есть тем шрифтом, которым есть, и перепечатать не представляется возможным.
11. nomad_irk 51 13.10.20 14:38 Сейчас в теме
(9)занимаюсь поддержкой ЗУП 3.1 и я уже замучился объяснять пользователям, что "е" и "ё" в ФИО - это разные буквы :)
14. maxx 917 13.10.20 20:57 Сейчас в теме
1с все годы существования 8-ой платформы периодически народ просит в Конфигураторе русские и латинские буквы окрашивать в разные цвета (опционально, кому надо). Однако ух и ах.
GlukAl; Darklight; Rustig; +3 Ответить
18. rpgshnik 2406 14.10.20 07:41 Сейчас в теме
(14) разве вообще конфигуратор развивают, ЕДТ же теперь будущее :)
20. tormozit 6051 14.10.20 08:29 Сейчас в теме
(14) Да, это было бы полезно. Ну и цифры тогда уж надо красить своим цветом, чтобы решить проблему неоднозначности ноль-"О". Шрифт все таки - более доступное, управляемое и более универсальное решение проблемы, но не такое удобное.
40. Darklight 24 17.10.20 01:29 Сейчас в теме
(20)Русскиек цифры в серо-бурмалиновый; английские цифры в фиолетовый-в-крапинку :-D
17. rpgshnik 2406 14.10.20 07:41 Сейчас в теме
В конфигураторе ведь подсветка решает проблему для всего слова
19. tormozit 6051 14.10.20 08:26 Сейчас в теме
(17) Непонятно о чем ты. Как она решает проблему, когда цифры и буквы разных языков в одном имени переменной?
30. rpgshnik 2406 16.10.20 05:00 Сейчас в теме
(19) Курсором встал на переменную, она выделилась, а рядом правильная/не правильная не выделилась. Вроде понятно что есть ошибка в написание, а так сидеть в пиксели вглядываться глаза вытекут. Копировать-Вставить и всё. Гончаров Дмитрий всегда помню говорил "лучше копируйте переменные" :))
33. tormozit 6051 16.10.20 06:52 Сейчас в теме
(30) Идентификатор может быть использован не только "рядом" но и совсем не "рядом" - например это имя свойства структуры, передаваемой через несколько методов в разных модулях, а также это может быть имя объекта метаданных.
41. rpgshnik 2406 17.10.20 06:34 Сейчас в теме
(33) ттт пока не сталкивался с таким :) в рамках модуля да были проблемы, и то которые я сам порождал :)) но в пиксели всматриваться реально не удобно, ноль перечеркнутый у Инфостарта как-то лаконично смотрится.

Для меня идеально было бы создание шрифта для 1С допустим объединившего в себе два шрифта:
один для английских символов - Anonymous Pro (с явными насечками)
один для русских символов - Consolas
Шрифты на вскидку смотрел тут https://habr.com/ru/post/358992/
Chai Nic; +1 Ответить
48. Chai Nic 147 19.10.20 14:26 Сейчас в теме
(41) ИМХО, русский с засечками по типу Courier, латинский рубленый по типу Lucida Console - самое удобное было бы. А цифры и спецсимволы вообще отличающимися сделать и от тех и от других. 0 перечеркнутый по диагонали - самый правильный ноль.
21. JulianK 18 14.10.20 08:36 Сейчас в теме
сам hack пересекается с https://www.jetbrains.com/lp/mono/, но не во всем...
на основе jetbrains mono не было мысли сделать?
ну и букв больше конечно с пометками лучше сделать....
Darklight; +1 Ответить
23. tormozit 6051 14.10.20 15:47 Сейчас в теме
(21)
букв больше конечно с пометками лучше сделать

Зачем? Уже несколько раз ведь объяснил почему сделано только для буквы "C".
25. tormozit 6051 14.10.20 15:53 Сейчас в теме
(21)
сам hack пересекается с https://www.jetbrains.com/lp/mono/, но не во всем...
на основе jetbrains mono не было мысли сделать?

Так это почти одно и то же. Покажи существенные отличия.
22. vano-ekt 845 14.10.20 08:56 Сейчас в теме
латинские и Кириллицу удобно было бы отличать по тону, у нас на местном форуме так реализован вывод ников (видимо для борьбы с двойниками): светло-зеленым кириллица, темно-зеленым - латинские
хотя шрифтами конечно так не реализовать
24. tormozit 6051 14.10.20 15:51 Сейчас в теме
(22) Про расцветку уже писали тут и я уже отвечал, что расцветка конечно удобнее, но не такая универсальная (в каждом приложении в каждом типе поля нужно отдельно реализовывать) и в конфигураторе ее нам не сделают, т.к. просили уже давно.
28. triviumfan 24 15.10.20 09:31 Сейчас в теме
У меня ни разу такого не было, я даже не пойму как такое возможно.
Все описанные выше примеры нереальны.
При смене раскладки ты 100% заметишь это.
Иногда встречаются не те символы, что ты ждёшь, в самой БД в наименовании какого-либо поля - приходилось смотреть код символа, а тут в самом коде... да ну, абсурд какой-то.
31. rpgshnik 2406 16.10.20 05:04 Сейчас в теме
(28) ну если только кто-то пошутить (специально) решил и написал:
CТР0KИ
СТРОКИ


Кстати стоит заметить а ноль перечеркнут на инфостарте, вот этого шрифта было бы достаточно :)
34. tormozit 6051 16.10.20 06:58 Сейчас в теме
(31) Внезапно! Инфостарт тоже оказался сторонником различимости буквы "О" и ноля в теге с кодом. Кому то пришлось изменить свое мнение о достаточности выделения всех вхождений слова в конфигураторе. Что же он будет делать когда обнаружит, что инфостарт и с буквой "С" сделает тоже самое?
42. rpgshnik 2406 17.10.20 06:35 Сейчас в теме
(34) у меня глаза вытекут если они так сделают с буквой С :)) без обид. У них и так у главной страницы вырвиглазный дизайн с радугой, ещё такое издевательство будет :)
29. Dzenn 433 15.10.20 12:11 Сейчас в теме
Хз, ни разу с таким не сталкивался.... Или ну может пару раз за пятнадцать лет
37. dvsidelnikov 17 16.10.20 09:01 Сейчас в теме
(29) позавчера решал проблему. Бюджетная отчётность с ошибками загружалась в свод-смарт. КБК позиций которые не попали с СводСмарт содержали подстатью "2010C". Здравствуй табло:
КодСимвола("C") //=67, символ вставлен копированием
45. oldcopy 125 17.10.20 14:00 Сейчас в теме
(37) Это реальная проблема. Недавно делал обработку для импорта из некой самописной недоСRM в 1С, надо было перенести данные по клиентам. Сначала не мог понять почему не работает код по определению пола. Женский ставился нормально, мужской не ставился ни в какую. Потом тоже посмотрел код символа. Так вот, чудо разработчики исходного решения для обозначения мужского пола использовали английскую М, а женского - русскую Ж.

С латинской С и русской С пару раз чудеса ловил. С нулем проблема более в визуальном восприятии, скажем в логинах/паролях, именах узлов, I и l еще из этой оперы (первая - большая i, вторая - маленькая - L).

Поэтому да, хотелось бы отличий в начертании русских и латинских символов, но не так уродски, как это сделано в текущем шрифте. Можно взять символы из двух шрифтов одного типа, но с несколько различным начертанием. Это не так явно, но в общем ряду буквы другой раскладки будут явно выбиваться из общей колеи.
dvsidelnikov; +1 Ответить
47. AnatolPopov 73 18.10.20 11:40 Сейчас в теме
Меня в конфигураторе 1С дико бесит сходство круглых и фигурных скобок в запросах. Я и так-то вижу не очень, а они еще и похожи, если смотреть с расстояния, комфортного для работы. Особенно когда их много и они чередуются. Реально спасает только большой монитор, например, 24", а иначе приходится рассматривать запрос, чуть ли не носом уткнувшись в экран.
artbear; triviumfan; +2 Ответить
53. user930656 21.10.20 11:56 Сейчас в теме
Здравствуйте! Я давно думаю над темой отличия всех русских от всех латинских, делаю разные эксперименты.

Например, один из них:

http://вече.программирование-по-русски.рф/download/file.php?id=23

В конечном итоге я думаю, что нужно взять шрифт PT Mono (т.к. это шрифт специально разработан в России по заказу государства и имеет действующую в России пермиссивную лицензию, т.е. можно законно делать производные работы и не попасть на деньги), и русские буквы для него сделать чуть стилизованными под шрифт "Ижица", который на сегодня стал стандартом шрифта "под русскую старину" (мы видим его вокруг себя каждый день).

Остаётся проблема с буквами Т, но для этого решение из вязи в виде узелков.

Пока что в своей софтине я просто немного приподнял кириллицу над базовой линией и за счёт этого, если вдруг среди кириллицы попадает латиница, а среди латиницы - кириллица, то это сразу видно.

http://вече.программирование-по-русски.рф/download/file.php?id=41

Кроме того, я хочу не только TrueType, но обязательно точечные шрифты, чтобы можно было отключить сглаживание и не смотреть на "мыло", которым радуют нас современные операционки.

Можно было бы объединить усилия.
55. KilloN 45 24.10.20 12:19 Сейчас в теме
(53)
В конечном итоге я думаю, что нужно взять шрифт PT Mono


Я потестил, визуально PT Mono проигрывает Hack 1C и MS Sans Serif, посмотри где я их сравниваю.
Прикрепленные файлы:
54. KilloN 45 24.10.20 11:59 Сейчас в теме
Использую у себя MS Sans Serif, Ж, 10.
Решил визуально сравнить отображение. Сам по себе шрифт MS Sans Serif - более приятен глазу, буквы более гладкие.
Правда очень криво сделаны знаки препинания, например точку и запятую порой сложно различить.

Было бы здорово, если бы за основу был бы взят именно этот шрифт. ИМХО.
Свободное место между знаками препинания в Hack 1C уменьшил бы % на 30.

П.С. На скрине видимо из-за сжатия, вид немного искажен
Прикрепленные файлы:
56. tormozit 6051 24.10.20 15:54 Сейчас в теме
(54)
Свободное место между знаками препинания в Hack 1C уменьшил бы % на 30.

Ты знаешь про моноширинность или же одинаковость ширины всех символов? Сама эта моноширина подбирается операционной системой в зависимости от нужного размера (высоты) шрифта. У знаков препинания ширина естественно устанавливается таким же образом.
57. KilloN 45 24.10.20 20:19 Сейчас в теме
(56) знаю. Но не убеждён что моноширинность должна быть обязательна. Для меня читаемость или удодство для глаз является в приоритете. Основной проблемой с которой я сталкивался, это изменение отступов при смене шрифта.
Даже если, не привязываться к моноширинности, многие буквы явно лучше выглядят у MS Sans.
Например таже буква б.

Идея с "прыгающими" буквами у некоторых шрифтов тоже является интересной, но более менее подходящего для 1с шрифта я пока не встречал
58. user930656 25.10.20 12:30 Сейчас в теме
(54) Вопрос в целях. Я хочу, чтобы этот шрифт можно было законно использовать в России для любых целей. У шрифта Hack лицензия такова, что его можно использовать только в Windows или распечатывать с ним. В России сейчас идёт импортозамещение, от Windows пытаются отказаться, это идёт с помощью принудиловки. Что будет через 5 лет? Будет большая доля компов без Windows. Можно сделать шрифт на основе Hack, но это будет воровство. Вроде лицензия Hack вообще не разрешает делать на его основе другие шрифты и публиковать их. Сейчас это никого не волнует, но завтра мы можем что-нибудь подписать и начнёт волновать. Вряд ли кто-то полезет на твой компьютер искать ворованный шрифт, но для моих задач не подходит. На основе PT Mono можно делать законный шрифт для России, это в лицензии написано (в той мере, в которой я её читал и понял).

Визуальная читаемость шрифта на малых кеглях КМК очень сильно зависит от алгоритма подгонки под пикселы. Видимо, Микрософт решил этот вопрос на высшем уровне, а Паратайп не осилил.

Касаемо знаков препинания, по-моему отказ от моноширинности для программирования - это всё же слишком революционно, хотя немоноширинные шрифты в целом лучше выглядят.
60. mrsmrv 77 28.10.20 18:08 Сейчас в теме
Так а если просто не заморачиваться в штрихах, там, различиях, просто сделать шрифт, где все англицкие буквы будут идти с чертой сверху, или с каким-то другим отличительным элементом - чертой сбоку, косой чертой сбоку/сверху или с 10% заполненным фоном пикселями в шахматном порядке (понимаю что пиксель тут скорее условное понятие).
Оставьте свое сообщение
Вопросы с вознаграждением