Символ ° в 1С 8.3: с клавиатуры, в макете, в коде и на телефоне
Содержание
Чтобы поставить знак градуса в 1С, встаньте в поле, включите NumLock, зажмите Alt и наберите на цифровом блоке 0176. Отпустите Alt — появится °. Так работает в любом поле 1С 8.3 на Windows: в документе, справочнике, табличном документе, в Конфигураторе.
Если цифрового блока нет, символ берут из таблицы символов Windows или копируют. В печатных формах ° дописывают в шаблон ячейки макета, а в коде получают через Символ(176). Ниже каждый способ отдельно, плюс что делать, если вместо градуса видно В° или квадратик.
Как набрать градус в 1С с клавиатуры
Сама 1С отдельной горячей клавиши для градуса не имеет. Символ вводится средствами операционной системы, и платформе всё равно, откуда он пришёл.
Windows: Alt-коды
| Сочетание | Что происходит | Условие |
|---|---|---|
Alt + 0176 | ° по кодовой таблице Windows-1251 | цифровой блок, NumLock включён |
Alt + 248 | ° по старой DOS-таблице 866 | то же |
Win + . (точка) | панель эмодзи и символов, вкладка «Символы» | Windows 10 и 11 |
Порядок для Alt-кода:
- Поставьте курсор в поле 1С.
- Проверьте, что горит индикатор
NumLock. - Зажмите левый
Alt. - Наберите
0176цифрами справа, а не верхним рядом. - Отпустите
Alt.
Цифры верхнего ряда не работают: Windows понимает Alt-код только с цифрового блока. На ноутбуке без него ищите встроенный блок под клавишей Fn (цифры нарисованы на буквах J, K, L) или берите символ из таблицы.
Раскладка не важна: Alt-код работает и в русской, и в английской.
macOS и Linux
Тонкий клиент 1С есть и для этих систем. Ввод символа там тоже системный:
- 🍏 macOS: в английской раскладке
Option+Shift+8. Есть ещё «Эмодзи и символы» поControl+Command+Пробел, поиск по слову «градус». - 🐧 Linux с IBus (Ubuntu и похожие):
Ctrl+Shift+U, затемb0, затемПробелилиEnter. Если не срабатывает, назначьте клавишу Compose: последовательностьCompose,o,oдаёт °.
Таблица символов, копирование и похожие значки
Когда набирать неудобно, символ проще вставить из готового источника.
Таблица символов Windows
- Нажмите
Win+R, введитеcharmap,Enter. - Отметьте «Дополнительные параметры просмотра».
- В поле «Поиск» наберите
degreeи нажмите «Найти». - Выберите
°, нажмите «Выбрать», затем «Копировать». - В 1С встаньте в поле и нажмите
Ctrl+V.
Этот способ удобен на ноутбуках и на терминальном сервере, где Alt-коды иногда перехватывает RDP-клиент.
Похожие символы, которые путают с градусом
Скопировать градус из интернета или из Word легко, но вместе с ним часто приходит двойник. На экране разницы почти нет, а для поиска и отборов в 1С это разные символы.
| Символ | Название | Код | Где встречается |
|---|---|---|---|
| ° | знак градуса | 176 | правильный вариант |
| º | порядковый индикатор | 186 | испанская раскладка, автозамена «№» |
| ˚ | кольцо сверху | 730 | копии из PDF и с сайтов |
| ℃ | градус Цельсия одним знаком | 8451 | копии с сайтов, не во всех шрифтах |
| ⁰ | надстрочный ноль | 8304 | Word, мессенджеры |
Если в справочнике номенклатуры половина позиций записана как «+5º», а половина как «+5°», поиск по строке «5°» найдёт только вторую половину. Проверить, что именно стоит в поле, можно в коде: КодСимвола(Строка, Позиция) вернёт 176 для настоящего градуса.
Для значка Цельсия надёжнее два символа °C, чем одиночный ℃. Букву C берите латинскую, так её требуют правила записи единиц.
Знак градуса в макете печатной формы
В пользовательском режиме ° вводится в ячейку табличного документа так же, как в любое поле. Сложнее, когда нужно, чтобы градус сам появлялся в печатной форме после числа.
Ячейка с шаблоном
Типовой приём в Конфигураторе:
- Откройте макет печатной формы.
- Выделите ячейку, где выводится температура, и откройте её свойства (
Alt+Enter). - В свойстве «Заполнение» выберите «Шаблон».
- В тексте ячейки напишите
[Температура]°C. - В коде формирования печатной формы заполните параметр
Температура.
Квадратные скобки обозначают параметр, всё остальное печатается как есть. Число подставится, градус останется на месте.
Свойство «Формат» ячейки здесь не поможет: форматная строка задаёт число знаков и разделители, но не дописывает суффикс к числу. Для суффикса нужен шаблон или готовая строка из кода.
Если форма типовая
Менять макет типовой конфигурации напрямую нельзя без снятия с поддержки. Правильный путь — расширение конфигурации : заимствуете макет, правите ячейку в расширении, основная конфигурация остаётся на поддержке и обновляется без конфликтов.
Есть и вариант без Конфигуратора. В БП 3.0, ЗУП 3.1, УТ 11 есть пользовательская правка макетов: откройте печатную форму, в командах печати найдите «Изменить макет». Изменённый макет хранится в базе и не трогает конфигурацию. Минус: после обновления, если типовой макет поменялся, правку придётся повторить.
Шрифты
Градус есть во всех стандартных шрифтах Windows: Arial, Times New Roman, Calibri, Tahoma. Проблемы бывают со шрифтами штрихкодов и экзотическими шрифтами этикеток. Если в этикетке вместо ° пустой квадрат, вынесите знак в соседнюю ячейку с обычным шрифтом.
Символ градуса программно: Символ(176) и формат числа
В модуле 1С знак можно написать прямо в строковом литерале: "°". Модули хранятся в Юникоде, символ сохранится. Но надёжнее получать его функцией: при копировании кода через почту или старые редакторы литерал иногда портится, а число нет.
ЗнакГрадуса = Символ(176); // °
Код = КодСимвола("°"); // 176
Сообщить("Температура: +18" + ЗнакГрадуса + "C");
Хранить число, выводить строку
Главная ошибка — хранить температуру строкой «+18°C». Такую строку нельзя сложить, сравнить, отобрать «выше 25». Храните число, а градус добавляйте только при выводе. Удобно завести функцию в общем модуле:
// Возвращает строку вида "+4,5°C", "-12,0°C", "0,0°C"
Функция ТемператураСтрокой(Температура) Экспорт
Если Не ЗначениеЗаполнено(Температура) И Температура <> 0 Тогда
Возврат "";
КонецЕсли;
Знак = ?(Температура > 0, "+", "");
Число = Формат(Температура, "ЧДЦ=1; ЧН=0,0; ЧГ=0");
Возврат Знак + Число + Символ(176) + "C";
КонецФункции
Проверка на примерах: 4,5 → «+4,5°C»; −12 → «-12,0°C»; 0 → «0,0°C». Минус у отрицательного числа Формат ставит сам, плюс добавляем только для положительных.
Для углов (геодезия, раскрой, координаты) формат другой: градусы, минуты, секунды.
// 37.6173 -> 37°37′02″
Функция УголСтрокой(ДесятичныеГрадусы) Экспорт
Всего = Окр(ДесятичныеГрадусы * 3600, 0); // в секундах
Град = Цел(Всего / 3600);
Мин = Цел((Всего - Град * 3600) / 60);
Сек = Всего - Град * 3600 - Мин * 60;
Возврат Формат(Град, "ЧН=0; ЧГ=0") + Символ(176)
+ Формат(Мин, "ЧЦ=2; ЧВН=; ЧН=00") + Символ(8242)
+ Формат(Сек, "ЧЦ=2; ЧВН=; ЧН=00") + Символ(8243);
КонецФункции
Пересчёт: 37,6173 × 3600 = 135 422,28 → 135 422 секунды. 135 422 / 3600 = 37 градусов, остаток 2 222 секунды. 2 222 / 60 = 37 минут, остаток 2 секунды. Итог «37°37′02″». Символы 8242 и 8243 — штрих и двойной штрих, они правильнее апострофа и кавычки.
Навести порядок в уже введённых данных
Если двойники из таблицы выше уже попали в справочник, замените их обработкой:
Текст = СтрЗаменить(Текст, Символ(186), Символ(176)); // º -> °
Текст = СтрЗаменить(Текст, Символ(730), Символ(176)); // ˚ -> °
Текст = СтрЗаменить(Текст, Символ(8451), Символ(176) + "C"); // ℃ -> °C
Перед массовой заменой наименований сделайте резервную копию базы : обработка перезапишет тысячи элементов, а откатить её можно только из копии.
В запросе отбор по знаку работает обычным ПОДОБНО:
ГДЕ Номенклатура.Наименование ПОДОБНО "%°%"
Градус на формах и в отчётах
Пользователь вводит число в числовое поле, а градус должен быть виден рядом. Дописать ° внутрь числового поля нельзя: туда попадут только цифры. Решают иначе.
- 🏷️ Заголовок поля. Самое простое: заголовок реквизита на форме «Температура, °C». Пишется в свойствах элемента формы или реквизита.
- 🔤 Декорация-надпись справа от поля с текстом
°C. Подходит, когда заголовок стоит слева и место занято. - 🔘 Кнопка вставки для текстовых полей, где пользователи часто пишут градусы (описания режимов хранения, технологические карты).
Обработчик команды для кнопки, которая дописывает знак в конец текстового реквизита:
&НаКлиенте
Процедура ВставитьГрадус(Команда)
Объект.УсловияХранения = Объект.УсловияХранения + Символ(176);
Модифицированность = Истина;
КонецПроцедуры
Здесь УсловияХранения — строковый реквизит вашего объекта, имя подставьте своё. Код работает на клиенте и не обращается к серверу, кнопка срабатывает мгновенно.
Отчёты на СКД
В отчёте на системе компоновки данных градус проще всего вынести в заголовок поля: в наборе данных у поля укажите заголовок «Температура, °C». Число останется числом: итоги, сортировка и условное оформление «выше 8° — красным» будут работать. Если склеить число со знаком в строку, всё это пропадёт.
Мобильная платформа и мобильный клиент 1С
На телефоне градус набирают системной клавиатурой. Сочетаний Alt там нет.
- 📱 iPhone, iPad: переключитесь на цифры и задержите палец на клавише
0— появится°. - 🤖 Android: зависит от клавиатуры. Обычно ° лежит на второй странице символов или открывается долгим нажатием на
0. В Gboard и Samsung Keyboard он есть на дополнительной странице символов.
Если вы дорабатываете мобильное приложение и пользователи вводят температуру часто, не заставляйте их искать знак. Сделайте поле числовым, а градус выведите в заголовке или надписи, как на десктопной форме. Символ(176) в мобильной платформе работает так же, код из разделов выше переносится без изменений.
В мобильном клиенте (тот же интерфейс конфигурации, но на телефоне) обработчик кнопки «Вставить °» тоже работает. Это удобнее, чем объяснять кладовщикам, где на их клавиатуре спрятан знак.
Вместо градуса видно «В°», «░» или знак вопроса
Внутри базы ° хранится корректно всегда. Портится он на границе: при выгрузке в файл, обмене с другой программой, печати на старом принтере.
КодировкаТекста.UTF8) или в КодировкаТекста.ANSI.КодировкаТекста.OEM для таких программ.КодСимвола и замените обработкой.При записи файлов из 1С кодировку задают явно:
Текст = Новый ТекстовыйДокумент;
Текст.ДобавитьСтроку("Товар;Температура");
Текст.ДобавитьСтроку("Молоко;+4" + Символ(176) + "C");
Текст.Записать(ИмяФайла, КодировкаТекста.ANSI);
В Windows-1251 градус есть (байт 176), так что ANSI-выгрузка его не теряет. В Excel такой CSV откроется без «В°».
Частые вопросы
Можно ли повесить градус на свою горячую клавишу внутри 1С?
Символ(176) или системная утилита переназначения клавиш, тогда сочетание будет работать во всех программах, включая 1С.Почему Alt+0176 не работает на терминальном сервере?
Alt. Попробуйте Win + . на сервере или вставьте знак через буфер обмена из таблицы символов.