Ввод специальных символов в 1С: от Alt-кода до программной вставки

· 9 мин

Содержание

Знак, которого нет на клавиатуре, в 1С ставят теми же способами, что и в любой программе Windows: Alt-кодом с цифровой клавиатуры, через «Таблицу символов» (charmap) или копированием из готового текста. Для печатных форм добавляется шрифт Wingdings, а в коде конфигурации символ получают функцией Символ().

Платформа 1С хранит строки в Юникоде, так что сам символ в поле ввода не теряется. Проблемы возникают в другом месте: на этапе ввода, при выводе на печать, где у шрифта нет нужного значка, и при выгрузке в файл со старой кодировкой. Разберём каждое по порядку.

Как поставить знак в 1С через Alt-код

Это самый быстрый способ для частых символов. Работает в любом поле ввода, в табличном документе и в комментарии к документу.

  1. Включите NumLock, чтобы работала правая цифровая панель.
  2. Поставьте курсор в нужное место.
  3. Зажмите левый 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-кодов, откройте штатную таблицу символов.

  1. Нажмите Win+R, введите charmap, подтвердите.
  2. Выберите шрифт, например «Arial» или «Segoe UI Symbol».
  3. Найдите символ, нажмите «Выбрать», затем «Копировать».
  4. В 1С поставьте курсор в поле и нажмите Ctrl+V.

Внизу окна таблицы показан код символа. Он пригодится, если потом понадобится вставить тот же знак программно.

Отметьте галку «Дополнительные параметры просмотра»: появится поиск по названию («рубль», «галочка», «стрелка») и переход по группам Юникода. Без этого искать значок вручную среди тысяч ячеек долго.

В Windows 10 и 11 есть и панель эмодзи: Win+. (клавиша «Win» и точка или точка с запятой). В ней вкладка символов с валютами, стрелками и математическими знаками. Вставка идёт сразу в позицию курсора.

Цветные эмодзи в поле ввода 1С часто отображаются чёрно-белыми или квадратиком, а в печатной форме и в выгрузке могут пропасть. Для справочников, наименований и документов берите обычные текстовые символы.

Шрифт Wingdings для значков в макетах

Wingdings — шрифт, где вместо букв нарисованы значки: галочки, рамки, телефоны, стрелки. Он удобен в макетах печатных форм: пустой квадрат для отметки, галочка рядом с пунктом анкеты.

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

Как сделать чекбокс в печатной форме:

  1. Откройте макет в конфигураторе или через режим редактирования макета.
  2. Выделите ячейку, где нужен значок.
  3. В палитре свойств найдите шрифт ячейки и выберите Wingdings.
  4. Впишите в ячейку символ с нужным кодом (например, через 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С появляется не тот символ?
Скорее всего, вы набрали код без ведущего нуля. Код без нуля идёт в старой DOS-кодировке. Введите четыре цифры, например 0171.
Как поставить знак рубля в 1С?
Alt-кода в кодировке 1251 для него нет. Скопируйте символ из таблицы символов или вставьте кодом Символ(8381) в программе.
Почему в печатной форме вместо значка квадрат?
У шрифта ячейки нет такого глифа. Смените шрифт на «Segoe UI Symbol» или «Arial» с поддержкой нужного знака и проверьте печать.
Можно ли хранить в справочнике текст со значками Wingdings?
Хранить можно, но смысла в этом мало: в базе лежит обычная буква, а значок виден только при заданном шрифте. Для данных берите символы Юникода.
Работает ли Win+. внутри 1С?
Да. Это системная панель Windows, она вставляет символ в текущее поле ввода любой программы, включая 1С.