Быстрый старт · 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С пробел в литерале указывается напрямую: ГДЕ Наименование = "Товар ". Для надёжного поиска применяйте ПОДОБНО с шаблоном или предварительно очищайте данные.
// Обычный пробел
Результат = Фамилия + " " + Имя;
// Неразрывный пробел
Результат = Формат(Сумма, "ЧДЦ=2") + Символ(160) + "руб.";
// Убрать все пробелы из строки
Чистая = СтрЗаменить(Исходная, " ", "");Пробелы в числах: разделители разрядов
При выводе чисел 1С по умолчанию группирует разряды: «1 234 567,89». Разделитель групп — именно неразрывный пробел, а не обычный. Это удобно для чтения на экране и в печати, но создаёт проблемы при копировании: вставленное в Excel значение может восприниматься как текст, а не как число, и формулы перестают считать.
Управляется это поведение форматной строкой. Конструкция Формат(Число, "ЧГ=0") или параметр ЧГ= отключает группировку разрядов, и число выводится слитно: «1234567,89». В полях ввода на форме аналогичный параметр задаётся в свойствах поля через «Формат» — там же настраивается число знаков после запятой и представление нуля.
При обмене данными с внешними системами (выгрузка в CSV, XML, передача по API) разделители разрядов в числах недопустимы — принимающая сторона ожидает «чистое» число. Перед выгрузкой либо используйте форматную строку без группировки, либо удаляйте пробелы функцией СтрЗаменить. Учтите, что удалять нужно и обычный пробел (код 32), и неразрывный (код 160).
- 1Определите, где формируется строка: форматная строка поля или код выгрузки
- 2Если используется Формат() — добавьте параметр ЧГ=0 или ЧГ= для отключения группировки
- 3Если строка уже сформирована — примените СтрЗаменить для обычного пробела и Символ(160)
- 4Проверьте результат: скопируйте выгруженное значение в Excel и убедитесь, что оно распознаётся как число
Как найти и удалить лишние пробелы в данных
Лишние пробелы — двойные, в начале или в конце строки — типичный мусор в справочниках после ручного ввода или загрузки из Excel. Они ломают поиск («не находится контрагент, хотя он есть»), сортировку и сопоставление при обмене. Платформа предоставляет базовые средства очистки.
Функция СокрЛ(Строка) удаляет пробелы слева, СокрП(Строка) — справа, СокрЛП(Строка) — с обеих сторон. Важно: эти функции работают с обычными пробелами и управляющими символами, но не всегда корректно снимают неразрывный пробел — его надёжнее заменять явно через СтрЗаменить(Значение, Символ(160), "").
Двойные пробелы внутри строки убираются циклом замены: повторять СтрЗаменить(Строка, " ", " "), пока длина строки не перестанет меняться. Для массовой чистки справочника пишется простая обработка: перебор элементов, очистка наименования, запись. Перед массовой обработкой обязательно сделайте резервную копию базы — отменить пакетное изменение данных штатными средствами нельзя.
Типичные проблемы и их решение
Самая частая жалоба — «поиск не находит элемент, хотя он точно есть». Причина почти всегда в невидимом различии строк: неразрывный пробел вместо обычного, пробел в конце, двойной пробел в середине. Диагностика проста: скопируйте наименование из базы и сравните его с искомой строкой программно или вставьте обе в редактор, показывающий служебные символы.
Вторая типичная ситуация — числа из 1С «не считаются» в Excel. Причина — неразрывные пробелы-разделители разрядов. Решение: в Excel использовать «Найти и заменить», где в поле поиска вставляется скопированный неразрывный пробел (или вводится через Alt+0160), а поле замены остаётся пустым. Либо выгружать из 1С числа с отключённой группировкой разрядов.
Третья проблема — «склеенный» текст в печатной форме или сообщении: «По документуРеализация №5». Это ошибка в коде или макете: между частями строки пропущен пробел-литерал. Исправляется добавлением + " " + в месте склейки или правкой шаблона в макете печатной формы.
Как проверить, какой пробел в строке
Визуально обычный и неразрывный пробелы неотличимы, поэтому проверка делается программно. Простейший способ в конфигураторе или через внешнюю обработку: пройти по символам строки и вывести их коды функцией КодСимвола(Строка, НомерПозиции). Код 32 — обычный пробел, код 160 — неразрывный.
Быстрая проверка без кода: скопируйте проблемную строку в Word и включите отображение скрытых символов (Ctrl+Shift+8). Обычный пробел отобразится точкой посередине строки, неразрывный — маленьким кружком. Также можно вставить строку в «Блокнот» и попробовать поиск по обычному пробелу — неразрывный найден не будет.
Для разовой диагностики данных удобно вывести коды символов прямо в сообщение пользователю из консоли кода (внешней обработки «Консоль кода» или аналогичной). Это занимает минуту и сразу показывает, какие именно невидимые символы присутствуют в строке.
Как проверить результат
Код 32 — обычный пробел, ожидаемое поведение поиска
Код 160 — неразрывный пробел, сравнение и поиск по обычному пробелу не сработают
Excel распознаёт значение как число, формулы считают
Значение остаётся текстом — в нём есть неразрывные пробелы-разделители
Нет пробелов в начале, в конце и двойных внутри
Пробелы по краям или двойные — риск дублей и сбоев поиска
Часто задаваемые вопросы
Почему в поле 1С не вводится пробел?
Скорее всего, поле не в фокусе — щёлкните в него мышью. Если фокус есть, а пробел не вводится, у поля может быть задана маска ввода (например, для ИНН или телефона), запрещающая пробелы. Также проверьте саму клавишу в любом другом приложении, чтобы исключить аппаратную причину.
Как в 1С поставить неразрывный пробел без кода?
Используйте сочетание Ctrl+Shift+Пробел в текстовом поле либо Alt-код: зажмите Alt, наберите 0160 на цифровом блоке клавиатуры и отпустите Alt. Если оба способа недоступны (например, в веб-клиенте), скопируйте неразрывный пробел из готовой печатной формы, где число разбито на разряды.
Почему поиск в 1С не находит элемент, который точно есть?
Почти всегда причина в невидимых различиях строк: неразрывный пробел вместо обычного, пробел в конце наименования или двойной пробел внутри. Скопируйте наименование из базы и сравните коды символов или попробуйте искать по фрагменту без пробелов.
Как убрать пробелы из чисел при выгрузке из 1С?
Если число форматируется функцией Формат(), добавьте параметр ЧГ=0 — группировка разрядов отключится. Если строка уже сформирована, удалите пробелы через СтрЗаменить дважды: для обычного пробела и для Символ(160), поскольку разделителем разрядов служит именно неразрывный пробел.
Чем СокрЛП отличается от СтрЗаменить при чистке пробелов?
СокрЛП удаляет пробельные символы только по краям строки и не трогает пробелы внутри. СтрЗаменить заменяет заданный символ в любом месте строки, но работает только с тем символом, который указан явно. Для полной очистки обычно комбинируют оба подхода: СокрЛП для краёв и СтрЗаменить для неразрывных и двойных пробелов внутри.
Опасно ли массово чистить пробелы в справочниках?
Сама операция безопасна, но она необратимо изменяет данные, а изменённое наименование может не совпасть с данными в связанных внешних системах. Перед массовой обработкой сделайте резервную копию базы и сначала проверьте результат на нескольких элементах или на копии базы.
Что важно запомнить
Обычный пробел в 1С ставится клавишей, неразрывный — Ctrl+Shift+Пробел, Alt+0160 или Символ(160) в коде. Числа платформа разделяет неразрывными пробелами, что мешает обмену и расчётам в Excel. Большинство проблем с поиском и сравнением строк вызваны невидимой разницей между кодами 32 и 160 — проверяйте коды символов и очищайте данные перед записью.