К статье
Практический материал

Разработка и Конфигурация · 12 мин

Что означает символ в 1С: разбираем значки, коды и функцию Символ()

Что означают символы в 1С: пиктограммы в интерфейсе, служебные знаки в коде, функция Символ() и неразрывный пробел. Таблица кодов, примеры и ответы на вопросы.

Вопрос «что означает символ в 1С» возникает в двух совершенно разных ситуациях. Первая — пользователь видит в интерфейсе программы непонятный значок: кружок, галочку, карандаш, восклицательный знак рядом с документом или строкой списка. Вторая — разработчик или продвинутый пользователь встречает во встроенном языке 1С конструкции вроде Символ(1050) или загадочный знак в строке и хочет понять, что за ними стоит.

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

Материал ориентирован на типовые конфигурации (Бухгалтерия, Управление торговлей, Зарплата и управление персоналом) и на платформу 1С:Предприятие 8.3. В отраслевых и сильно доработанных решениях набор пиктограмм может отличаться, но общая логика обозначений сохраняется.

Какие бывают символы в 1С и почему их путают

В 1С слово «символ» используется в трёх значениях. Первое — графические пиктограммы в интерфейсе: значки в списках документов, справочниках, на кнопках и в строках состояния. Второе — символы как единицы текста: буквы, цифры, пробелы и специальные знаки, с которыми работают строковые функции встроенного языка. Третье — служебные и управляющие символы: перевод строки, табуляция, неразрывный пробел, кавычки внутри строковых литералов.

Путаница возникает потому, что пользователь ищет «что означает символ», видя картинку, а находит в справке описание функции Символ(). Чтобы быстро сориентироваться, задайте себе вопрос: вы видите значок на экране или знак в тексте/коде? От ответа зависит, куда смотреть дальше — в расшифровку пиктограмм или в таблицу кодов символов.

Что означают пиктограммы в списках документов и справочников

Самый частый вопрос пользователей — значки в журналах документов. В типовых конфигурациях картинка в первой колонке показывает состояние объекта. Документ, который проведён, обычно отображается обычным значком документа. Непроведённый документ показывается бледным или с пометкой, а помеченный на удаление — с красным крестом. В справочниках аналогично: помеченный на удаление элемент перечёркнут или имеет крест на пиктограмме, пометка группы отличается от пометки элемента.

Отдельная группа значков — индикаторы обмена данными и состояния синхронизации. В конфигурациях с обменом (например, с сайтом или другой базой) рядом с объектом могут появляться значки «зарегистрирован к выгрузке», «выгружен», «конфликт». Их точный вид зависит от конфигурации, поэтому универсальной картинки-расшифровки нет: ориентируйтесь на всплывающую подсказку — если навести курсор на пиктограмму, платформа обычно показывает текстовое пояснение.

Крест на пиктограммеОбъект помечен на удаление

Снимите пометку или проведите документ заново при необходимости

Бледный/серый документДокумент не проведён

Откройте документ и нажмите «Провести»

Замок на объектеОбъект заблокирован другим пользователем или сеансом

Дождитесь завершения сеанса или попросите коллегу закрыть объект

Значок обмена/стрелкиОбъект участвует в обмене данными

Проверьте журнал регистрации обмена и настройки синхронизации

Если подсказка не появляется, откройте сам объект: его состояние (проведён, помечен, заблокирован) всегда видно в шапке формы или в командной панели. Это надёжнее, чем гадать по картинке, особенно в нестандартных конфигурациях, где разработчик мог назначить свои пиктограммы.

Функция Символ() во встроенном языке: что это и зачем нужна

Во встроенном языке 1С функция Символ(Код) возвращает строку из одного знака по его числовому коду Unicode. Синтаксис прост: Символ(65) вернёт латинскую букву «A», Символ(1040) — кириллическую «А». Обратная операция — функция КодСимвола(Строка), которая возвращает код первого знака строки.

Зачем это нужно на практике? Некоторые знаки нельзя или неудобно ввести с клавиатуры напрямую: неразрывный пробел, кавычки-ёлочки, специальные разделители, управляющие коды при обмене с внешними системами. Вместо попытки вставить такой знак в исходный код (где он может быть невидим или испортиться при копировании) разработчик пишет Символ(160) — и код остаётся читаемым и устойчивым.

bsl
НеразрывныйПробел = Символ(160);
ПереводСтроки = Символы.ПС;
Кавычка = Символ(34);
Сообщить("Сумма:" + НеразрывныйПробел + "1 000 руб.");

Важно различать Символ(Код) и объект Символы. Первый требует знать числовой код знака. Второй — это предопределённый набор констант для самых востребованных управляющих символов, и в большинстве задач удобнее использовать именно его.

Объект Символы: готовые константы для управляющих знаков

Платформа предоставляет системный набор Символы, где собраны часто используемые управляющие символы. Основные из них: Символы.ПС — перевод строки, Символы.ВК — возврат каретки, Символы.Таб — табуляция, Символы.НПП — неразрывный пробел, Символы.ПФ — перевод формы (страницы). Использовать их предпочтительнее, чем числовые коды: код Символы.ПС читается очевидно, тогда как Символ(10) требует комментария.

Типовой сценарий — формирование многострочного текста для сообщения, печатной формы или файла. Перевод строки внутри строкового литерала 1С задаётся либо вертикальной чертой | в начале каждой новой строки литерала, либо конкатенацией с Символы.ПС. При выгрузке в текстовый файл для внешней системы уточните, какой разделитель строк она ожидает: Windows-стиль (ВК+ПС) или Unix-стиль (только ПС). Несовпадение разделителей — частая причина того, что файл «не читается» на принимающей стороне.

Часто используемые коды символов и специальные знаки

Ниже — коды, которые чаще всего нужны в прикладной разработке и при разборе чужого кода. Это стандартные значения Unicode, они не зависят от версии платформы.

КодСимволГде применяется
9ТабуляцияРазделители колонок в текстовых файлах
10Перевод строки (ПС)Многострочный текст, файлы Unix-формата
13Возврат каретки (ВК)Пара ВК+ПС для Windows-файлов
32Обычный пробелСтандартный разделитель слов
34Кавычка "Экранирование кавычек внутри строк
160Неразрывный пробелЧисла в печатных формах, «склеивание» слов
171, 187Кавычки-ёлочки « »Типографское оформление текстов

Неразрывный пробел (код 160) заслуживает отдельного упоминания, потому что он — источник массовых проблем. Визуально он неотличим от обычного пробела, но функции сравнения и поиска строк считают их разными символами. Если строка из файла или с сайта «не находится» в базе, хотя выглядит идентично, — почти наверняка дело в неразрывном пробеле. Лечится заменой: СтрЗаменить(Строка, Символ(160), " ") с последующим СокрЛП().

Типичные ошибки при работе с символами
01
Сравнение строк без очистки от неразрывных пробелов — поиск и сопоставление «не работают» при визуально одинаковых значениях
02
Копирование управляющих символов прямо в исходный код — знак теряется или портится при переносе кода, используйте Символ() или Символы.*
03
Выгрузка файла только с Символы.ПС, когда принимающая система ждёт ВК+ПС, — файл открывается одной строкой
04
Использование КодСимвола() для строки из нескольких знаков без учёта, что функция берёт только первый символ

Как самостоятельно определить, что за символ в строке

Если вы столкнулись с «невидимым» или непонятным знаком в данных, его можно идентифицировать штатными средствами. Порядок действий простой и безопасный — он не меняет данные, а только анализирует их.

Как определить код неизвестного символа
  1. 1
    Скопируйте проблемную строку в переменную в консоли кода или в отладчике
  2. 2
    Пройдите по строке циклом: для каждой позиции выведите КодСимвола(Строка, НомерПозиции)
  3. 3
    Сопоставьте полученные коды с таблицей Unicode или с таблицей из этой статьи
  4. 4
    Если код 160 — это неразрывный пробел; коды 9, 10, 13 — табуляция и переводы строк
  5. 5
    После идентификации выполните очистку строки через СтрЗаменить и проверьте результат повторным сравнением

Пример цикла разбора строки: Для Н = 1 По СтрДлина(Строка) Цикл Сообщить(КодСимвола(Строка, Н)); КонецЦикла;. В результате вы получите последовательность числовых кодов, по которым видно все скрытые знаки. Этот приём незаменим при разборе данных из Excel, веб-сервисов и старых файлов обмена.

В конфигураторе есть и другой путь: откройте синтакс-помощник (Ctrl+F1 при курсоре на функции), найдите описание Символ() и КодСимвола() — там приведены сигнатуры и примеры. Для пиктограмм интерфейса аналогичного справочника нет, поэтому ориентируйтесь на всплывающие подсказки и состояние объекта в его форме.

Контрольные точки

Как проверить результат очистки строки

Сравнение строк после СтрЗаменить и СокрЛП
Норма

Строки равны, поиск и сопоставление срабатывают

Тревожный признак

Строки всё ещё различаются — ищите другие скрытые коды через КодСимвола

Выгруженный текстовый файл
Норма

Открывается с корректными переносами строк в целевой системе

Тревожный признак

Весь текст в одной строке — неверная комбинация ВК/ПС

Печатная форма с Символ(160)
Норма

Число не разрывается при переносе на новую строку

Тревожный признак

Сумма разорвана — неразрывный пробел не применён или потерян

Границы самостоятельной работы и когда обращаться к специалисту

Чтение пиктограмм, очистка тестовой строки в консоли кода, просмотр синтакс-помощника — безопасные операции, которые можно выполнять самостоятельно. Они не изменяют данные и не трогают конфигурацию. Рискованные зоны — это массовая обработка данных (например, групповая замена символов в справочнике) и изменение кода конфигурации.

Если непонятный символ появляется систематически — например, при каждом обмене с сайтом или при загрузке из конкретной программы, — причина обычно в настройках обмена или в кодировке файла, а не в самих данных. В этом случае локальная очистка строк не решит проблему: нужно анализировать формат обмена, и это уже задача для специалиста по интеграции.

Итог

Что важно запомнить

«Символ в 1С» — это либо пиктограмма состояния объекта в интерфейсе (расшифровывается по подсказке и форме объекта), либо знак текста, задаваемый функцией Символ(Код) или константами Символы.ПС, Символы.Таб, Символы.НПП. Главный источник скрытых проблем — неразрывный пробел с кодом 160; диагностируется через КодСимвола() и лечится СтрЗаменить.

Частые вопросы

Что означает красный крест на документе в списке 1С?

Документ помечен на удаление. Он не участвует в движениях по регистрам, но физически ещё присутствует в базе. Пометку можно снять через контекстное меню, а окончательное удаление выполняется через штатную обработку «Удаление помеченных объектов».

Чем Символ(10) отличается от Символ(13)?

Код 10 — перевод строки (ПС), код 13 — возврат каретки (ВК). В файлах формата Windows перенос строки кодируется парой ВК+ПС, в Unix-форматах — только ПС. Поэтому при выгрузке файла уточняйте, какой вариант ожидает принимающая система.

Почему строка из файла не находится в базе, хотя выглядит так же?

Чаще всего в строке есть неразрывный пробел (код 160), который визуально неотличим от обычного. Проверьте строку функцией КодСимвола() по позициям и выполните замену: СтрЗаменить(Строка, Символ(160), " ") с последующим СокрЛП().

Как вставить кавычку внутрь строки в коде 1С?

Кавычка внутри строкового литерала удваивается: "Он сказал ""привет""". Альтернатива — использовать Символ(34), что удобно при программной сборке строк с большим количеством кавычек.

Где посмотреть расшифровку нестандартного значка в моей конфигурации?

Наведите курсор на пиктограмму — платформа покажет всплывающую подсказку. Если её нет, откройте сам объект: состояние (проведён, помечен, заблокирован) видно в форме. В отраслевых решениях расшифровку дополнительных значков стоит искать в инструкции к конфигурации.

Можно ли использовать Символ() для смайликов и спецзнаков в сообщениях?

Да, если известен код Unicode знака — например, Символ(10003) даст галочку ✓. Учтите, что отображение зависит от шрифта на стороне пользователя: если в шрифте нет нужного знака, вместо него покажется пустой квадрат.