Тернистый путь к физической клавиатуре для программиста 1С
Интеграция - Периферийные устройства
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Видеомонтажеры, звукооператоры, стримеры, геймеры часто используют в своей деятельности специализированные пульты или программируемые клавиатуры. И я решил копать в этом направлении.
В итоге на маркетплейсах была найдена вот такая клавиатура на 24 программируемых клавиши.

Описание к ней было довольно скудным, заявлялась возможность записи неких макросов в память устройства и то, что устройству для работы не требуются никакие спецдрайвера (определяется как обычный HID). Стоила она в районе 2т.р. (сейчас по акции можно найти за 1.5).
Несмотря на скудное описание, я решил заказать эту штуковину и заняться ее изучением.
Итак, что же я получил за свои 2т.р.
Производитель: SayoDevice (SayoDevice.com)
Вполне добротная механическая клавиатура на 24 клавиши на красных свитчах.
В комплекте двухметровый USB type C и инструкция на китайском.
Клавиатура умеет:
1. Выполнять нажатие различных сочетаний клавиш
2. Хранить в памяти 128 шаблонов текста (длина до 28 символов)
3. Хранить в памяти 128 паролей (длина до 28 символов)
4. Хранить в памяти до 32 скриптов (включаем запись действий, программа запоминает и может повторить)
5. Хранит в памяти до 5 раскладок клавиатуры (1 основная, на переключение остальных требуется выделять клавиши). При использовании всех 5 слоев можно назначить на клавиши 100 различных действий.
6. Для каждой раскладки и каждой клавиши можно настроить подсветку (цвет, поведение), но зачем...
Так выглядит интерфейс программы:

Я быстренько придумал раскладку для первого слоя:

Записал настройки в клавиатуру, начал тестировать... И... ничего не работает =(.
Программа охотно ест строки с кириллическими символами, записывает их в клавиатуру, но та ,в свою очередь, печатает белиберду. "&НаКлиенте" превращается в "&↔0→;85=B5". Смена кодировки, таймингов в настройках не дали ничего.
Это был провал.
Продавец клавиатуры предпочел не отвечать на мои вопросы, а какой-либо формы обратной связи на сайте производителя нет.
Погрустил... и пошел искать софтовое решение для железки, которая сама должна решать софтовую задачу...
В программе от производителя была замечена станица "Backup", а как известно где Backup, там и Restore. А между этими процедурами конфиг можно поменять ручками.
Сохраняю бэкап, открываю файл и вижу вот такой красивый JSON:

И вот тут я понял, что успех неизбежен. Уж сформировать правильный JSON и загрузить его в устройство я точно смогу. Это одна из тех задач, которые решаются в голове за минуту, а потом несколько часов уходит на то, чтобы это решение записать. Ах да. Я же все это ради ускорения процесса записи и затеял!
Утром следующего дня я сел за расшифровку этого файла. Структура его оказалась весьма простой. Непонятно было только, какие числовые значения надо подставить для вывода конкретных кириллических символов.
Я пошел от обратного, и задался вопросом "А как она вообще печатает нужную строку, не зная текущую раскладку системы?". Ведь клавиатура лишь передает в систему код нажатой клавиши, а ОС уже сама преобразует его в определенный символ в зависимости от текущей раскладки. Также исходя из данных в файле я знал, что числовые представления набираемых символов имеют длину не более трех знаков.
Сложив дважды два стало понятно, что это самый обычный Alt-код! Набирая на клавиатуре Alt+38(на Numpad) мы всегда получим символ "&", независимо от раскладки. Точно также можно набирать и другие символы. Я чувствовал себя Аланом Тьюрингом, расшифровавшим Энигму.
Вскоре передо мной красовалось окно готового кодировщика:

Получив из кодировщика готовый файл я загрузил его в клавиатуру и увидел в настройках программы вот что:

Ранее программа корректно отображала кириллицу, но клавиатура печатала белиберду. Теперь же программа отображает белиберду... Так может клавиатура сможет нормально печатать?
Давайте проверим! Если встроенное видео не отображается, то вот прямая ссылка на youtube.
Как видно, все работает! Ну почти всё. Длина названия некоторых БСПшных модулей превышает 28 символов - последние несколько символов до точки приходится добивать руками. Возможно, что это ограничение удастся преодолеть с помощью записи скриптов.
Спасибо, если вы вдруг дочитали это повествование.
К статье прикрепляю обработку для кодирования файлов и готовый конфиг, который можно загрузить в клавиатуру.
UPD: Обработка в статье обновлена.
Обработка обучена создавать скрипты, что позволило:
1. Преодолеть ограничение в 28 кириллических символов
2. Размещать начало и конец конструкции на одной клавише ("Если КонецЕсли;") с переносами строк и возвратом курсора к месту, в котором требуется продолжить ввод.
Например по одному нажатию клавиши выполняется скрипт, который вводит конструкцию
Функция ()
Возврат Результат;
КонецФункции;
после чего курсор автоматически возвращается к скобкам для ввода названия функции и её параметров.
3. Для нажатия клавиш можно подобрать задержку ввода, что актуально для работы по RDP. Это замедляет ввод символов, но зато в терминале не глотаются символы. После смены задержки на странице клавиш необходимо пересчитать скрипты на странице скриптов.


Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.10.383
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Распознавание документов и образов Периферийные устройства Разработчик Автомобили, автосервисы Россия Платные (руб)
Программа считывает кадры с ip-камер (http - запрос к камере), видео, фото (источники кадров (нет ограничения на их количество) настраивается в конфигурационном файле), находит и распознает номера автомашин и сохраняет в базу db, с сохранением фото номера и автомашины, а также времени детекции.
20740 руб.
31.05.2023 7877 5 5
Периферийные устройства Системный администратор Разработчик 1С 8.3 1С 8.5 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 10 1С:Управление торговлей 11 1С:Розница 2 1С:Розница 3.0 1С:РМК Россия Абонемент ($m)
Эмулкон подключается к «Библиотеке подключаемого оборудования» настоящим драйвером и передаёт вызовы серверу эмуляции: двенадцать типов оборудования, управляемые сценарии сбоев, журнал обменов, веб-интерфейс, трей у кассы и консоль службы. Конфигурация не меняется - проверяется то, что уйдёт в работу. Прогоны на десяти стендах типовых конфигураций: Розница, УНФ, УТ, КА, БП, БГУ. Исходный код открыт и входит в поставку. Принимаются только тестовые данные: реальные карты и ПИН не проходят.
10 стартмани
11.11.2026 174 1 imiron_ru 2
Периферийные устройства Разработчик Пользователь Абонемент ($m)
Представляю небольшую компоненту-мост, позволяющую печатать на мобильных принтерах по протоколу BT.
4 стартмани
09.10.2026 658 2 aximo 14
Периферийные устройства Разработчик 1С:Предприятие 8 Абонемент ($m)
Внешняя компонента для 1С:Предприятие, позволяющая узнать статус клавиш CapsLock, NumLock, ScrollLock и переключить их при необходимости.
1 стартмани
15.07.2026 769 0 Kuzja_R 0
Периферийные устройства Распознавание документов и образов Системный администратор Разработчик 1С 8.3 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Россия Абонемент ($m)
Расширение конфигурации, реализующее сканирование посредством scanimage на клиенте Linux без использования компоненты ImageScan. Если Ваш сканер виден и работает в SANE, но категорически не хочет видеться в 1С, то это расширение решает данную проблему. Проверено на БП 3.0.194.23 и ЗУП 3.1.37.49. В ДО, вроде, нет обработки «сканирование», так что переделать немного надо будет.
1 стартмани
27.04.2026 1379 2 Горыня 2
Периферийные устройства Пользователь Отраслевые Автомобили, автосервисы Абонемент ($m)
В результате простой интеграции на экране отображаются записи клиентов, статусы работ и ответственные мастера — вся информация обновляется автоматически прямо из 1С. Тестировалось на релизе 6.1.23.17
1 стартмани
30.03.2026 1462 1 krumenko 0
Периферийные устройства Управленческий учет Абонемент ($m)
Материал отражает личное мнение по оценке рисков использованию торгового оборудования, приобретенного на маркетплейсах.
2 стартмани
20.03.2026 2875 2 aximo 22
Периферийные устройства Разработчик Пользователь 1С 8.5 1С:Розница 3.0 Россия Абонемент ($m)
Очередной баян на эту тему. Конечно же, многие скажут, это лишнее, и никому не нужно, и стоит дорого! Но тем не менее это так или иначе повышает уровень продаж как акционных продуктов, так и обычных. И в этом, конечно же, огромную роль играет психология покупателей. Когда они вживую видят все на экране, это типа продавец открыт и ничего не скрывает, продажи становятся более эффективными.
6 стартмани
10.03.2026 1684 1 kras_71 2
1. Ограничение в 28 символов - преодолено. Теперь 128, можно больше, но есть риск, что не хватит памяти в ячейке скрипта.
2. Невозможность ввода многострочных строк - преодолено. Теперь 1 кнопка вводит всю многострочную конструкцию. Для "Функция ()" и "КонецФункции" больше не требуются 2 разных кнопки.
3. Задержки нажатия клавиш для корректной работы в терминале - реализованы. Можно настраивать и побыстрее и помедленнее, смотря у кого насколько тормозит удаленка.
4. Реализован автоматический возврат курсора к месту продолжения ввода. Например набрав "Функция () КонецФункции" курсор встает перед скобками.
Для реализации всего этого мне пришлось помимо кодировщика строк написать еще и редактор скриптов.
Обо всем подробно напишу в слеющих сериях наших познавательных телепередач.
На выходе получаю:
&НаСервер165
&НаСе▬4в►5р►5Бе167Контекс▬6160
Проце164☻27224а()
КонецПроцедур☻35
Фу◄3кц168↨9(41
КонецФункци►8
Видно, что дело не в кодировке, просто терминал не успевает отработать вод символов через ALT-коды.
В настройках клавиатуры вроде как настраивается задержка. Придется тащить клавиатру обратно домой и донастраивать =).
Пробовал разные значения. На скрине 10 / 50 / 255 условных единиц этого параметра.
Эххх, ну так же все хорошо было!
Выставил на 255 (раньше стояло 10). Завтра попробую в терминале, но чую, что ничего не изменится.
Похоже, что придется осваивать скрипты.
Собственно, вот тут описано:
На самом деле, малинка или ардуино были у меня в качестве плана Б, на случай если эту клавиатуру не удастся надрессировать на выполнение нужных функций.
Смотрю текущие цены... с готовым решением из поднебесной вашему решению по стоимости конкурировать очень сложно. И с эстетической, наверное тоже.
Преимущество вашего решения - это более широкий потенциал с точки зрения разработки софтовых фишек (кто же вас ограничит 28 символами на шаблон!). Но вам их придется писать самому, а у китайской клавиатуры много уже написано (пусть и местами кривовато).
PS. Мне теперь стало интересно что за плата внутри китайской клавиатуры. Не удивлюсь, если та же самая)).
Бессмертное произведение Николая Носова рассказ "Телефон"!
Прошу прощения, не удержался....)))))
Обойти все ограничения и решить все проблемы мне удалось софтом. Теперь и разбирать никаких причин нет. Но желание почему-то никуда не пропало... Первые 40 лет детства самые трудные.
У меня всплыла проблема, что для терминала набор символов идет слишком быстро.
В коде вижу "delay(10);"...
Это вроде 10мс. У меня также настроено. Не хватает. Не приходилось корректировать это значение?
Нажатие нам1 пауза 2мс
Поднятие нам1 пауза 2мс
Нажатие нам2 пауза 2мс
Поднятие нам2 пауза 2мс
Нажатие нам3 пауза 2мс
Поднятие нам3 пауза 2мс
Поднятие Альт, пауза 2мс
Получилась скорость ввода около 40 знаков в секунду. Возможно даже чересчур замедлил. Но я теперь в любой момент могу поменять задержки, тк освоил скрипты.
Завтра буду тестировать на терминале.
А почему не взяли просто полноразмерную механику (или какую по вкусу), поддерживающую QMK/ZMK и не настроили отдельный слой под 1С на ней?
На отдельный кейпад руки переносить надо - это не очень удобно в процессе написания кода, особенно в конфигураторе 1С, когда вы будете вынуждены между основной клавиатурой, мышкой и теперь еще кейпадом руки переносить.
"Обычный человек" с таким действительно не заморачивается, он просто работу работает, а тут нужна либо конкретная цель/задача и острое желание ее решить, либо увлечение своим делом, толкающее пробовать разные инструменты, выбирать из них лучшее и совершенствовать/адаптировать под себя.
Автор публикации попадает по крайней мере в одну из названных мной категорий, так что вроде все ок )
Когда-то давно под windows настроил комбинации дополнительных 16-ти клавиш и забыл, пользуюсь 6-ю. Комп под линуксом.
Мышка аналогично была с 24 доп кнопками, сейчас с 3-мя в дополнение к основным. На винде настроил и в памяти устройства хранится.
Шаблоны кода 1С использовать могу. Но идеей вставлять куски кода кнопкой, пожалуй воспользуюсь.
off
Есть ещё синтезатор, который дети забросили после музыкальной школы. Никто его не пробовал для программиста подключать? )
Сколько лет прошло, а Razer так и не научились делать надежные мышки) В геймерскую бытность тоже было несколько (и Naga, и DeathAdder v1 и v2) - больше года не продержалась ни одна из них. В итоге плюнули и заменили на A4Tech X7 - благополучно живут уже больше 5 лет.
Уже неудобно работать без Esc и Enter на мышке.
Ну и клавиши большинство для 1с, часть для вызова приложений, пароли (скайп, почта, телега) .
Свой скриптовый язык на lua. Так например скриптом пароль вводится только в 1с, а в других приложениях это же нажатие выполняет другое действие.
У меня все макросы с мыши и клавиатуры отрабатывают через рдп корректно, клавиатура Razer Huntsman V2, с кликающими свичами.
Макросы ввода текста настраиваю только через макросы, при этом раскладка клавиатуры должна быть соответствующая. Клавиатура Huntsman V2 позволяет использовать 1 дополнительный слой где можно переопределить любую из 110 кнопок, на основном слое можно назначать макросы на комбинации.
Для тех кто интересуется кастомными клавиатурами с несколькими слоями, с возможностью заливать свои прошивки и настраивать кнопки на слоях, советую присмотреться к клавиатурам lily58 pro.
То о чем написал здесь автор статьи лучше не брать.
Из всех предложенных хардварных альтернатив всего один вариант сопоставим по стоимости - . Но даже он дороже и предполагает много ручной работы, а также требует 3D печати.
Никого не призываю. Я нашел дешевое решение и им поделился. Кто предпочитает доски по 10-30тр - могу только за них порадоваться.
Я лично работаю с ноута и ставить еще блок рядом не вариант, но если ты работаешь на 80% или меньше % размера клавиш, то это удобно.
Или у тебя нет клавы за N количество денег с возможностью программировать клавиши.
Если что готовые отдельные блоки, тоже разных денег стоит.
1. Ограничение в 28 символов - преодолено. Теперь 128, можно больше, но есть риск, что не хватит памяти в ячейке скрипта.
2. Невозможность ввода многострочных строк - преодолено. Теперь 1 кнопка вводит всю многострочную конструкцию. Для "Функция ()" и "КонецФункции" больше не требуются 2 разных кнопки.
3. Задержки нажатия клавиш для корректной работы в терминале - реализованы. Можно настраивать и побыстрее и помедленнее, смотря у кого насколько тормозит удаленка.
4. Реализован автоматический возврат курсора к месту продолжения ввода. Например набрав "Функция () КонецФункции" курсор встает перед скобками.
Для реализации всего этого мне пришлось помимо кодировщика строк написать еще и редактор скриптов.
Обо всем подробно напишу в слеющих сериях наших познавательных телепередач.
Пока устройство ехало, читал комменты и не понимал зачем так все сложно, и паралельно писал шаблон для автозамены в 1с8 вида key_a1, key_b1 и т.д., где a - это колонка, а цифра это номер кнопки на клавиатуре.
Когда устройство приехало - сразу настроил его под вывод текста вида key_a1, key_b1, key_c1 и т.д. без всяких кодировок и заморочек.
В итоге - полет нормальный (macbook + rdp), скорость набирания кода высокая (на самом деле сам печатаю вслепую). Ограничений на вывод символов в шаблонах нет.
Закупаю для отдела еще несколько. В отделе не все печатают быстро, хочу ускорить.
Интересный вариант использования. Вполне имеет право на жизнь.
Исходя из опыта могу порекомендовать делать строки как можно короче, тк чем длиннее строка, тем больше вероятность сбоя печати в терминале, а без использования скриптов задержку не добавить.
Вариант действительно попроще. Для меня не подходит, тк у меня очень много терминалов и профили на них очищаются. Каждый раз подключать шаблоны кода мне не нравится =)).
Может быть кто-то знает решение? (физический микшерский пульт между компом и устройствами воспроизведения не предлагать)
Физически я так и не придумал как их нанести.
Наклейки - сотрутся, да и выглядят некрасиво, а все остальные варианты выходят дороже самой клавиатуры.
Я использую всего 2 слоя, и выучил все кнопки быстрее, чем нашел решение по нанесению на них маркировки.
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 2088605
Создание 15.04.24 11:00
Обновление 12.12.24 18:59
Просмотры 13690
Загрузки 15
Рейтинг
41
Комментарии 63
Код открыт Да
Рубрики Периферийные устройства
Кому Разработчик
Тип файла Внешняя обработка (ert,epf)
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)