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

Быстрый старт · 12 мин

Как поставить пробел в 1С: обычный, неразрывный и в коде

Как поставить обычный и неразрывный пробел в 1С: в документах, макетах, формулах и коде. Сочетания клавиш, функции и решение типичных проблем с пробелами.

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

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

Отдельная ситуация — пробелы, которые 1С вставляет сама. Например, при форматировании чисел платформа разделяет группы разрядов неразрывными пробелами: «1 250 000». При копировании такого значения в Excel или другую программу эти невидимые символы могут ломать формулы и поиск. Ниже разобраны все рабочие сценарии: от простого ввода до обработки пробелов в коде.

Обычный пробел в полях ввода и документах

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

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

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

Неразрывный пробел: зачем нужен и как его ввести

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

Вручную неразрывный пробел в текстовом поле 1С обычно вводится сочетанием Ctrl+Shift+Пробел — так же, как в Microsoft Word. Работоспособность сочетания зависит от конкретного поля и версии платформы: в некоторых полях ввода оно может не срабатывать. Универсальная альтернатива — ввести символ через Alt-код: зажать Alt и набрать 0160 на цифровом блоке клавиатуры (NumPad), затем отпустить Alt.

Если ни сочетание, ни Alt-код недоступны (например, работа через веб-клиент), самый надёжный способ — скопировать неразрывный пробел из готового текста: из печатной формы, где число уже разбито на разряды, или из таблицы символов Windows (программа «charmap»). Внешне отличить его от обычного пробела невозможно — проверка делается программно, о чём ниже.

Пробел в коде и формулах 1С

Во встроенном языке 1С пробел внутри строкового литерала ставится непосредственно: "Иванов И. И.". Если строка собирается из частей, пробел добавляется как отдельный литерал через оператор конкатенации: Фамилия + " " + Имя. Пропуск этого литерала — самая частая причина «склеенных» строк в печатных формах и сообщениях.

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

В запросах 1С пробел в литерале указывается напрямую: ГДЕ Наименование = "Товар ". Для надёжного поиска применяйте ПОДОБНО с шаблоном или предварительно очищайте данные.

bsl
// Обычный пробел
Результат = Фамилия + " " + Имя;
// Неразрывный пробел
Результат = Формат(Сумма, "ЧДЦ=2") + Символ(160) + "руб.";
// Убрать все пробелы из строки
Чистая = СтрЗаменить(Исходная, " ", "");

Пробелы в числах: разделители разрядов

При выводе чисел 1С по умолчанию группирует разряды: «1 234 567,89». Разделитель групп — именно неразрывный пробел, а не обычный. Это удобно для чтения на экране и в печати, но создаёт проблемы при копировании: вставленное в Excel значение может восприниматься как текст, а не как число, и формулы перестают считать.

Управляется это поведение форматной строкой. Конструкция Формат(Число, "ЧГ=0") или параметр ЧГ= отключает группировку разрядов, и число выводится слитно: «1234567,89». В полях ввода на форме аналогичный параметр задаётся в свойствах поля через «Формат» — там же настраивается число знаков после запятой и представление нуля.

При обмене данными с внешними системами (выгрузка в CSV, XML, передача по API) разделители разрядов в числах недопустимы — принимающая сторона ожидает «чистое» число. Перед выгрузкой либо используйте форматную строку без группировки, либо удаляйте пробелы функцией СтрЗаменить. Учтите, что удалять нужно и обычный пробел (код 32), и неразрывный (код 160).

Как убрать пробелы из числа при выгрузке
  1. 1
    Определите, где формируется строка: форматная строка поля или код выгрузки
  2. 2
    Если используется Формат() — добавьте параметр ЧГ=0 или ЧГ= для отключения группировки
  3. 3
    Если строка уже сформирована — примените СтрЗаменить для обычного пробела и Символ(160)
  4. 4
    Проверьте результат: скопируйте выгруженное значение в Excel и убедитесь, что оно распознаётся как число

Как найти и удалить лишние пробелы в данных

Лишние пробелы — двойные, в начале или в конце строки — типичный мусор в справочниках после ручного ввода или загрузки из Excel. Они ломают поиск («не находится контрагент, хотя он есть»), сортировку и сопоставление при обмене. Платформа предоставляет базовые средства очистки.

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

Двойные пробелы внутри строки убираются циклом замены: повторять СтрЗаменить(Строка, " ", " "), пока длина строки не перестанет меняться. Для массовой чистки справочника пишется простая обработка: перебор элементов, очистка наименования, запись. Перед массовой обработкой обязательно сделайте резервную копию базы — отменить пакетное изменение данных штатными средствами нельзя.

Типичные проблемы и их решение

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

Вторая типичная ситуация — числа из 1С «не считаются» в Excel. Причина — неразрывные пробелы-разделители разрядов. Решение: в Excel использовать «Найти и заменить», где в поле поиска вставляется скопированный неразрывный пробел (или вводится через Alt+0160), а поле замены остаётся пустым. Либо выгружать из 1С числа с отключённой группировкой разрядов.

Третья проблема — «склеенный» текст в печатной форме или сообщении: «По документуРеализация №5». Это ошибка в коде или макете: между частями строки пропущен пробел-литерал. Исправляется добавлением + " " + в месте склейки или правкой шаблона в макете печатной формы.

Типичные ошибки
01
Сравнение строк без учёта неразрывного пробела — поиск и условия ГДЕ дают пустой результат
02
Удаление только обычного пробела через СтрЗаменить, когда в строке символ 160 — «чистка» не работает
03
Пробел в конце наименования при ручном вводе — дубли в справочниках и сбои сопоставления при обмене
04
Пропуск пробела-литерала при конкатенации строк в коде — склеенный текст в печатных формах

Как проверить, какой пробел в строке

Визуально обычный и неразрывный пробелы неотличимы, поэтому проверка делается программно. Простейший способ в конфигураторе или через внешнюю обработку: пройти по символам строки и вывести их коды функцией КодСимвола(Строка, НомерПозиции). Код 32 — обычный пробел, код 160 — неразрывный.

Быстрая проверка без кода: скопируйте проблемную строку в Word и включите отображение скрытых символов (Ctrl+Shift+8). Обычный пробел отобразится точкой посередине строки, неразрывный — маленьким кружком. Также можно вставить строку в «Блокнот» и попробовать поиск по обычному пробелу — неразрывный найден не будет.

Для разовой диагностики данных удобно вывести коды символов прямо в сообщение пользователю из консоли кода (внешней обработки «Консоль кода» или аналогичной). Это занимает минуту и сразу показывает, какие именно невидимые символы присутствуют в строке.

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

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

Код символа-разделителя в строке
Норма

Код 32 — обычный пробел, ожидаемое поведение поиска

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

Код 160 — неразрывный пробел, сравнение и поиск по обычному пробелу не сработают

Число, скопированное из 1С в Excel
Норма

Excel распознаёт значение как число, формулы считают

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

Значение остаётся текстом — в нём есть неразрывные пробелы-разделители

Наименование перед записью в справочник
Норма

Нет пробелов в начале, в конце и двойных внутри

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

Пробелы по краям или двойные — риск дублей и сбоев поиска

Часто задаваемые вопросы

Почему в поле 1С не вводится пробел?

Скорее всего, поле не в фокусе — щёлкните в него мышью. Если фокус есть, а пробел не вводится, у поля может быть задана маска ввода (например, для ИНН или телефона), запрещающая пробелы. Также проверьте саму клавишу в любом другом приложении, чтобы исключить аппаратную причину.

Как в 1С поставить неразрывный пробел без кода?

Используйте сочетание Ctrl+Shift+Пробел в текстовом поле либо Alt-код: зажмите Alt, наберите 0160 на цифровом блоке клавиатуры и отпустите Alt. Если оба способа недоступны (например, в веб-клиенте), скопируйте неразрывный пробел из готовой печатной формы, где число разбито на разряды.

Почему поиск в 1С не находит элемент, который точно есть?

Почти всегда причина в невидимых различиях строк: неразрывный пробел вместо обычного, пробел в конце наименования или двойной пробел внутри. Скопируйте наименование из базы и сравните коды символов или попробуйте искать по фрагменту без пробелов.

Как убрать пробелы из чисел при выгрузке из 1С?

Если число форматируется функцией Формат(), добавьте параметр ЧГ=0 — группировка разрядов отключится. Если строка уже сформирована, удалите пробелы через СтрЗаменить дважды: для обычного пробела и для Символ(160), поскольку разделителем разрядов служит именно неразрывный пробел.

Чем СокрЛП отличается от СтрЗаменить при чистке пробелов?

СокрЛП удаляет пробельные символы только по краям строки и не трогает пробелы внутри. СтрЗаменить заменяет заданный символ в любом месте строки, но работает только с тем символом, который указан явно. Для полной очистки обычно комбинируют оба подхода: СокрЛП для краёв и СтрЗаменить для неразрывных и двойных пробелов внутри.

Опасно ли массово чистить пробелы в справочниках?

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

Итог

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

Обычный пробел в 1С ставится клавишей, неразрывный — Ctrl+Shift+Пробел, Alt+0160 или Символ(160) в коде. Числа платформа разделяет неразрывными пробелами, что мешает обмену и расчётам в Excel. Большинство проблем с поиском и сравнением строк вызваны невидимой разницей между кодами 32 и 160 — проверяйте коды символов и очищайте данные перед записью.