Ввод специальных символов в 1С: от Alt-кода до программной вставки
Содержание
Знак, которого нет на клавиатуре, в 1С ставят теми же способами, что и в любой программе Windows: Alt-кодом с цифровой клавиатуры, через «Таблицу символов» (charmap) или копированием из готового текста. Для печатных форм добавляется шрифт Wingdings, а в коде конфигурации символ получают функцией Символ().
Платформа 1С хранит строки в Юникоде, так что сам символ в поле ввода не теряется. Проблемы возникают в другом месте: на этапе ввода, при выводе на печать, где у шрифта нет нужного значка, и при выгрузке в файл со старой кодировкой. Разберём каждое по порядку.
Как поставить знак в 1С через Alt-код
Это самый быстрый способ для частых символов. Работает в любом поле ввода, в табличном документе и в комментарии к документу.
- Включите
NumLock, чтобы работала правая цифровая панель. - Поставьте курсор в нужное место.
- Зажмите левый
Alt, наберите код на цифровой панели и отпуститеAlt.
Цифры верхнего ряда клавиатуры не подходят — нужна именно правая панель. На ноутбуках без неё код набирают через Fn и клавиши, помеченные цифрами, либо берут другой способ из этой статьи.
Ноль в начале кода важен. Код с нулём вводится в кодировке Windows-1251 (для русской версии Windows), код без нуля — в старой DOS-кодировке. Поэтому для надёжности набирайте четыре цифры.
| Символ | Код | Что это |
|---|---|---|
« | Alt+0171 | левая кавычка-ёлочка |
» | Alt+0187 | правая кавычка-ёлочка |
— | Alt+0151 | длинное тире |
– | Alt+0150 | среднее тире |
№ | Alt+0185 | знак номера |
° | Alt+0176 | градус |
± | Alt+0177 | плюс-минус |
© | Alt+0169 | знак авторского права |
§ | Alt+0167 | параграф |
Коды верхних индексов (квадрат, куб) и значок рубля в этой кодировке не набираются так, как ожидаешь: на русской раскладке получатся другие буквы. Для них возьмите таблицу символов или копирование.
Если после набора ничего не появилось, проверьте три вещи:
- 🔢 включён ли
NumLock; - ⌨️ нажат ли именно левый
Alt(на части клавиатур правый работает какAltGr); - 🖥️ не перехватывает ли сочетание программа удалённого доступа — в сеансе RDP или в браузерном клиенте за окном удалённого рабочего стола код иногда «съедается» на стороне клиента.
Таблица символов Windows
Когда нужного значка нет в списке Alt-кодов, откройте штатную таблицу символов.
- Нажмите
Win+R, введитеcharmap, подтвердите. - Выберите шрифт, например «Arial» или «Segoe UI Symbol».
- Найдите символ, нажмите «Выбрать», затем «Копировать».
- В 1С поставьте курсор в поле и нажмите
Ctrl+V.
Внизу окна таблицы показан код символа. Он пригодится, если потом понадобится вставить тот же знак программно.
Отметьте галку «Дополнительные параметры просмотра»: появится поиск по названию («рубль», «галочка», «стрелка») и переход по группам Юникода. Без этого искать значок вручную среди тысяч ячеек долго.
В Windows 10 и 11 есть и панель эмодзи: Win+. (клавиша «Win» и точка или точка с запятой). В ней вкладка символов с валютами, стрелками и математическими знаками. Вставка идёт сразу в позицию курсора.
Цветные эмодзи в поле ввода 1С часто отображаются чёрно-белыми или квадратиком, а в печатной форме и в выгрузке могут пропасть. Для справочников, наименований и документов берите обычные текстовые символы.
Шрифт Wingdings для значков в макетах
Wingdings — шрифт, где вместо букв нарисованы значки: галочки, рамки, телефоны, стрелки. Он удобен в макетах печатных форм: пустой квадрат для отметки, галочка рядом с пунктом анкеты.
Принцип такой: вы вводите обычный символ или его код, а в ячейке макета выбран шрифт Wingdings, поэтому на экране и на бумаге вместо буквы видна картинка.
Как сделать чекбокс в печатной форме:
- Откройте макет в конфигураторе или через режим редактирования макета.
- Выделите ячейку, где нужен значок.
- В палитре свойств найдите шрифт ячейки и выберите
Wingdings. - Впишите в ячейку символ с нужным кодом (например, через Alt-код, если он есть для шрифта, или скопировав из таблицы символов при выбранном шрифте Wingdings).
В Wingdings, например, символ с кодом 254 — квадрат с галочкой, а 168 — пустой квадрат. Но точную раскладку лучше сверять в charmap на своей машине: она проверяется глазами за полминуты.
Что нужно знать про такие знаки:
- 📄 значок существует только там, где установлен сам шрифт. Если пользователь отправит печатную форму в PDF, всё сохранится. Если отдаст файл
.xlsxили.docxна компьютер без Wingdings (например, на Mac или в Linux), вместо значка будет буква; - 🔍 поиск по такому тексту бесполезен: в ячейке лежит обычная буква, а не слово «галочка»;
- 🧩 в табличных документах шрифт задают на ячейке или области, а не на отдельном символе внутри строки. Нужен значок в середине фразы — отдельная ячейка либо отдельная область.
Современная альтернатива — обычные символы Юникода (☐ U+2610, ☑ U+2611, ✓ U+2713) с шрифтом «Segoe UI Symbol» или «Arial Unicode MS». Они копируются и ищутся как текст, не требуют Wingdings.
Настройка раскладки и ввода
Иногда «не ставится» вовсе не знак, а переключается язык. Типичные случаи.
Нужной раскладки нет в системе. Добавьте её в параметрах Windows: раздел «Время и язык» → «Язык и регион» → нужный язык → «Параметры» → «Добавить клавиатуру». Для типографских символов подходит «Русская (типографская)» — в ней кавычки-ёлочки и тире лежат на AltGr и не требуют Alt-кодов. Если у вас такой раскладки нет, ставят сторонние программы, а для ввода достаточно таблицы символов.
Автозамена в Word подставляет не то. Если текст готовили в Word, а потом копировали в 1С, он принесёт «умные» кавычки и длинные тире. Это нормальные Юникод-символы, а вот скрытые символы форматирования могут тянуться вместе с ними. Вставляйте через «Блокнот» или специальную вставку «только текст».
На Mac-клиентах и в Linux Alt-кодов нет. На Mac символы вводятся через Option и панель «Эмодзи и символы» (Control+Command+Пробел).
Символы в веб-клиенте 1С
Веб-клиент работает в браузере, и сочетания перехватывает сам браузер. Из этого следуют ограничения.
- Alt-коды в Windows работают и в браузере, но в отдельных браузерах часть сочетаний с
Altвызывает меню; если код не срабатывает, возьмите копирование. Ctrl+Vвставляет текст из буфера обмена, при этом браузер может спросить разрешение. Если вставка запрещена, воспользуйтесь контекстным меню правой кнопкой мыши.- Знаки из HTML-мнемоник вида
©в обычных полях 1С не превращаются в символы: это просто текст. Мнемоники работают только в тех местах, где содержимое действительно интерпретируется как HTML, например в поле HTML-документа или форматированного документа. Для обычных полей используйте сам символ или его код.
Если веб-клиент работает через стороннюю оболочку или терминал, цифровая панель иногда не передаётся. Тогда помогает Win+. либо вставка из буфера.
Знаки в печатных формах и макетах
Макет — отдельный случай, потому что символ должен пережить три этапа: ввод в макет, заполнение данными и вывод на печать или в файл.
Постоянный текст. Пишется прямо в ячейке макета. Здесь работают все способы выше. Следите, чтобы у шрифта ячейки был нужный глиф: если стоит экзотический шрифт, значок заменится квадратиком.
Текст из данных. Если символ приходит из справочника или формируется кодом, проверяйте шрифт области, куда он попадёт. Шрифт «Arial» поддерживает не все стрелки и математические знаки; «Segoe UI Symbol» покрывает больше.
Неразрывный пробел. Он нужен, чтобы число не отрывалось от единицы измерения («100 шт.» на двух строках выглядит плохо). Код неразрывного пробела — Alt+0160, в программе — Символы.НПП.
Вывод в Excel и PDF. В PDF шрифт внедряется, значки сохраняются. В Excel всё зависит от установленных шрифтов на компьютере получателя.
Печатная форма в стандартной конфигурации может быть подменена при обновлении. Если правите типовой макет, делайте это через расширение конфигурации, иначе правка пропадёт после обновления релиза.
Программный ввод символов в коде 1С
В модуле нельзя надеяться на то, что редактор покажет экзотический знак корректно. Надёжнее получать символ по коду.
Функция Символ(КодСимвола) возвращает строку из одного символа по коду Юникода. Обратная функция — КодСимвола(Строка, Номер).
// Галочка в текст подсказки
ЗнакГалочки = Символ(10003); // ✓ (U+2713)
Подсказка = ЗнакГалочки + " Документ проведён";
// Пустой и отмеченный квадрат
Пустой = Символ(9744); // ☐
Отмечен = Символ(9745); // ☑
Для служебных символов есть системное перечисление Символы:
// Перенос строки и табуляция
Текст = "Строка 1" + Символы.ПС + "Строка 2" + Символы.Таб + "после табуляции";
// Неразрывный пробел между числом и единицей
Подпись = "100" + Символы.НПП + "шт.";
Чтобы узнать код символа, который вы нашли в таблице, используйте её поле «Код знака». Юникод в таблице записан в шестнадцатеричном виде (U+2713), а Символ() принимает десятичное число. Переведите 2713 из шестнадцатеричной в десятичную систему, получите 10003. Калькулятор Windows в режиме «Программист» делает это за секунду.
Пример подсчёта: U+2713 = 2×4096 + 7×256 + 1×16 + 3 = 8192 + 1792 + 16 + 3 = 10003.
Для кавычек удобнее писать код через СтрШаблон:
ЛеваяКавычка = Символ(171); // «
ПраваяКавычка = Символ(187); // »
Наименование = СтрШаблон("%1%2%3", ЛеваяКавычка, "Ромашка", ПраваяКавычка);
Если в тексте запроса нужен спецсимвол, передавайте его параметром запроса, а не вшивайте в строку запроса: так не будет проблем с кодировкой исходника модуля.
Выгрузка в файл и кодировка
Если символ нужно записать в текстовый файл, укажите кодировку при записи. UTF-8 хранит любой символ. Старая кодировка Windows-1251 знает только кириллицу и небольшой набор знаков: галочка или стрелка превратятся в вопросительный знак. Это частая причина жалоб на «потерянные» символы в обмене с банком или с внешней системой.
Правило простое: перед тем как писать в 1251, проверьте, нет ли в тексте символов вне её набора. Если внешняя система требует именно 1251, замените их на допустимые аналоги ещё в коде формирования файла.
Какой способ выбрать
| Задача | Лучший способ | Риск |
|---|---|---|
| Кавычки, тире, номер в тексте документа | Alt-код | не работает без цифровой панели |
| Редкий знак, стрелка, валюта | Таблица символов или Win+. | в старых шрифтах нет глифа |
| Отметка в бланке на бумаге | Символ Юникода в ячейке макета | нужен шрифт с этим знаком |
| Символ в формируемом тексте | Символ(код) в модуле | код надо перевести в десятичный |
| Файл для внешней системы | UTF-8 при записи | старая кодировка заменит знак на «?» |
Порядок простой. Для разового ввода берите Alt-код или копирование. Для бланка, который печатают сотни раз, заранее проверьте знак на принтере и в PDF. Для всего, что формирует код, не вставляйте символ в исходник модуля, а получайте его по коду: так он не зависит от кодировки файла и раскладки разработчика.
Частые ошибки при вставке
- ❌ Копирование из мессенджера или с сайта. Вместе с символом приезжают невидимые знаки: нулевой пробел, символ направления текста. Поиск и сравнение по такой строке потом дают неожиданный результат. Если строка «выглядит одинаково, но не находится», пропустите её через «Блокнот» и сравните длину функцией
СтрДлина(). - ❌ Неразрывный пробел вместо обычного. Визуально его не отличить, а в условии
Строка = "100 шт."он не совпадёт с обычным пробелом. Для сравнения заменяйтеСимволы.НППна обычный пробел функциейСтрЗаменить. - ❌ Символ в имени реквизита или метаданных. Имена объектов конфигурации допускают буквы, цифры и подчёркивание, остальное недопустимо. Знаки живут только в данных и подписях.
- ❌ Проверка печати только на экране. На экране подставился запасной шрифт, а принтер и PDF-конвертер этого не сделают. Напечатайте пробную страницу сразу после правки макета.
Частые вопросы
Почему Alt-код набирается, но в 1С появляется не тот символ?
0171.Как поставить знак рубля в 1С?
Символ(8381) в программе.