Убираем лишние и неразрывные пробелы при копировании из 1С
Содержание
Пробелы в числе, скопированном из 1С, — это не обычный пробел, а неразрывный символ с кодом 160, которым 1С разделяет разряды (1 234 567,89). Из-за него Excel видит не число, а текст: сумму нельзя сложить, значение прижато к левому краю ячейки. Быстрое решение для разовой выгрузки — вставить данные, нажать Ctrl+H и заменить неразрывный пробел на пустоту. Чтобы проблема не возникала вообще — убрать разделитель разрядов ещё на стороне 1С через формат поля ЧГ=0.
Ниже разберём оба подхода: как чистить уже скопированное и как настроить вывод так, чтобы чистить не пришлось.
Откуда в данных берутся пробелы и неразрывные символы
Причин, по которым после вставки появляются лишние символы, несколько.
- 🔢 Разделитель разрядов. В числах 1С группирует разряды неразрывным пробелом (символ 160). Excel трактует такую строку как текст.
- ✂️ Хвостовые пробелы в строках. Наименования номенклатуры, ФИО, адреса часто заполнены с лишними пробелами в начале или конце — так их завели в справочник.
- ↩️ Переносы строк. Внутри одной ячейки табличного документа может быть перенос (символ 10), особенно в многострочных реквизитах и комментариях.
- 📄 Отступы в печатных формах. В макетах суммы и реквизиты иногда выровнены пробелами вручную, и эти пробелы едут вместе с текстом.
Проверить природу символа просто: если СЖПРОБЕЛЫ (функция TRIM) не помогает, значит, в ячейке не обычный пробел, а неразрывный либо перенос строки. Обычные пробелы имеют код 32, неразрывный — 160, перенос — 10.
Признак того, что число стало текстом: оно прижато к левому краю ячейки, а не к правому, и при суммировании СУММ даёт 0.
Специальная вставка в Excel: текст вместо форматирования
Первый приём — не тащить из 1С лишнее форматирование. Скопируйте данные, затем в Excel вместо обычной вставки используйте специальную.
- Скопируйте выделенную область в 1С (
Ctrl+C). - В Excel встаньте на нужную ячейку и нажмите
Ctrl+Alt+V(Специальная вставка). - Выберите вариант текст или текст в кодировке Юникод и нажмите ОК.
Это убирает ширину колонок, цвета и шрифты 1С, но сам неразрывный пробел внутри числа остаётся. Поэтому следующий шаг — замена символа:
- Выделите вставленный столбец.
- Нажмите
Ctrl+H(Найти и заменить). - В поле «Найти» введите неразрывный пробел: удерживая
Alt, наберите на цифровой клавиатуре0160, затем отпуститеAlt. Поле останется визуально пустым — это нормально. - Поле «Заменить на» оставьте пустым.
- Нажмите «Заменить всё».
После замены числа из текстовых часто остаются текстовыми. Чтобы «дожать» их до настоящих чисел, выделите столбец и пройдите Данные → Текст по столбцам → Готово — Excel пересчитает значения и выровняет их вправо.
Если рядом с ячейками появился зелёный треугольник в углу, Excel сам подсказывает, что число хранится как текст. Выделите такие ячейки, нажмите на значок с восклицательным знаком рядом и выберите Преобразовать в число — это заменяет Текст по столбцам, когда пробелы уже убраны.
Если неразрывный пробел набрать Alt+0160 не получается (нет цифрового блока на ноутбуке), скопируйте символ прямо из проблемной ячейки: встаньте в неё, в строке формул выделите пробел между цифрами и скопируйте, затем вставьте в поле «Найти».
Как убрать разделитель разрядов ещё в 1С
Самый надёжный способ — не чистить данные после, а вывести их сразу без группировки разрядов. За разделитель отвечает параметр форматной строки ЧГ (число групп). Значение ЧГ=0 отключает группировку, и число выводится слитно: 1234567,89.
Где задать формат:
- В печатной форме (макете). Откройте макет на редактирование, выделите ячейку с числом, в свойствах найдите поле «Формат» и впишите
ЧГ=0. Теперь при выводе печатной формы разделителя разрядов не будет. - В отчёте на СКД. В настройках компоновки у нужного поля есть колонка (или свойство) «Формат». Укажите там форматную строку
ЧГ=0. Открыть настройки можно черезЕщё → Изменить вариант отчёта(в разных конфигурациях пункт называется «Настроить» или «Изменить форму»).
Форматная строка понимает и другие параметры, которые пригодятся при выгрузке:
| Параметр | Что делает | Пример |
|---|---|---|
ЧГ=0 | убирает разделитель разрядов | 1234567,89 |
ЧРД=. | задаёт точку как разделитель дробной части | 1234567.89 |
ЧЦ=10 | ограничивает число знаков | — |
ЧН=0 | отрицательные без скобок | -500 |
Для выгрузки в иностранную систему часто нужны разом ЧГ=0; ЧРД=. — слитное число с точкой вместо запятой. Это избавляет и от пробелов, и от проблем с распознаванием дробной части.
Если доступа к конфигуратору нет, а отчёт типовой, меняйте формат именно в пользовательских настройках варианта отчёта — там правка не затрагивает саму конфигурацию и сохраняется в вашем варианте.
Чистим выгрузку формулами Excel
Когда данные уже в Excel и переделывать выгрузку поздно, помогут формулы. Главное — помнить, какая функция какой символ убирает.
СЖПРОБЕЛЫ(A1)— удаляет двойные, начальные и конечные обычные пробелы (код 32). Неразрывный пробел не трогает.ПЕЧСИМВ(A1)— удаляет непечатаемые символы с кодами 0–31, в том числе переносы строк. На код 160 не действует.ПОДСТАВИТЬ(A1;СИМВОЛ(160);"")— убирает именно неразрывные пробелы.
Для текстовых значений (наименования, ФИО) достаточно связки, которая сначала заменит неразрывный пробел на обычный, а затем схлопнет лишние:
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПЕЧСИМВ(A1);СИМВОЛ(160);" "))
Для чисел нужно убрать все пробелы без остатка и превратить результат в число:
=--ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;СИМВОЛ(160);"");" ";"")
Двойной минус в начале преобразует текстовую строку в число. Если в данных точка, а не запятая, добавьте ещё одну замену: ПОДСТАВИТЬ(...;".";",").
После того как формула отработала, скопируйте колонку и вставьте обратно как значения (Ctrl+Alt+V → только значения), иначе при удалении исходного столбца формулы дадут ошибку.
СЖПРОБЕЛЫ оставляет по одному пробелу между словами. Для чисел это критично: 1 234 после СЖПРОБЕЛЫ останется текстом с пробелом. Для чисел применяйте вариант, который удаляет пробелы полностью.
Макрос для пакетной очистки регулярных выгрузок
Если выгрузка повторяется каждый месяц и чистить формулами надоело, задачу закрывает короткий макрос VBA. Он проходит по выделенным ячейкам и убирает неразрывные пробелы и переносы.
Sub ОчиститьПробелы()
Dim c As Range
For Each c In Selection.Cells
If Not IsEmpty(c) Then
c.Value = Application.Trim( _
Replace(Replace(c.Value, Chr(160), " "), Chr(10), " "))
End If
Next c
End Sub
Макрос заменяет неразрывный пробел (Chr(160)) и перенос строки (Chr(10)) на обычный пробел, а Application.Trim схлопывает повторы и срезает края. Для колонки с числами замените тело на удаление всех пробелов:
c.Value = Replace(Replace(c.Value, Chr(160), ""), " ", "")
Как подключить: откройте редактор Alt+F11, вставьте модуль (Insert → Module), скопируйте код, вернитесь в лист, выделите данные и запустите макрос через Alt+F8.
Макрос меняет выделенные ячейки сразу и необратимо — отмена Ctrl+Z после него не всегда срабатывает. Прогоняйте его на копии листа, пока не убедитесь, что результат верный.
Для тех, кто не хочет связываться с VBA, та же логика собирается в Power Query: при загрузке таблицы примените к столбцу шаги Преобразование → Формат → Удалить пробелы и замену символа 160. Запрос запоминает шаги и повторяет их при каждом обновлении — удобно для ежемесячных отчётов.
Особенности копирования из списков, документов и отчётов
Источник данных в 1С влияет на то, как лучше их выгрузить.
Списки (журналы документов, справочники). Вместо выделения строк мышью и копирования используйте команду Ещё → Вывести список. Она формирует табличный документ, который затем сохраняется через Главное меню → Файл → Сохранить как в формат «Лист Excel (*.xlsx)». При таком сохранении 1С записывает числовые ячейки как числа, и неразрывные пробелы в них не попадают — это самый чистый способ забрать список.
Табличные части документов. При копировании ячеек из таблицы документа тащится форматирование. Надёжнее тот же приём: вывести нужные данные отчётом или списком, а не копировать из формы документа напрямую.
Отчёты на СКД. У сформированного отчёта тоже есть Ещё → Сохранить как с выбором Excel. Если сохранять файлом, а не копировать область, числа чаще сохраняют числовой тип. А если заранее прописать ЧГ=0 в формате поля, пробелов не будет ни при копировании, ни при сохранении.
Печатные формы (счета, акты, накладные). Это табличные документы, рассчитанные на печать, а не на выгрузку данных. Числа в них отформатированы с разрядами и выравниванием. Для переноса сумм в Excel лучше взять их из отчёта или списка, а не из печатной формы.
Общий принцип: там, где можно сохранить файлом, а не копировать через буфер, сохраняйте файлом — это снимает большинство проблем с пробелами ещё до Excel.
Отдельно стоит формат CSV. При сохранении в него 1С выгружает числа текстом с теми же разделителями разрядов, поэтому при открытии CSV в Excel пробелы всплывают снова. Если выбор есть, сохраняйте в xlsx или mxl, а не в CSV: там тип ячейки сохраняется, и числа остаются числами. Когда нужен именно CSV для загрузки в другую программу, заранее уберите группировку форматом ЧГ=0, чтобы на выходе в файле не было ни обычных, ни неразрывных пробелов внутри сумм.
Частые ошибки при очистке пробелов
- ❌ Надеются на
СЖПРОБЕЛЫ. Функция не трогает неразрывный пробел, поэтому число остаётся текстом. Нужна связка сПОДСТАВИТЬ(…;СИМВОЛ(160);…). - ❌ Заменяют обычный пробел вместо неразрывного. В
Ctrl+Hвводят пробел пробелом с клавиатуры — для числа с кодом 160 это не сработает. НабирайтеAlt+0160или копируйте символ из ячейки. - ❌ Чистят символы, но забывают преобразовать в число. После удаления пробелов значение всё ещё текст. Помогает
Текст по столбцам, двойной минус в формуле или функцияЗНАЧЕН. - ❌ Путают разделитель дробной части. Убрали пробелы, но в данных точка, а в локали Excel запятая — число снова не распознаётся. Замените
.на,(или настройтеЧРДв 1С). - ❌ Чистят печатную форму вместо отчёта. Пытаются выгрузить суммы из счёта или накладной, где числа выровнены под печать. Проще взять те же данные из списка командой
Вывести списокили из отчёта — так форматирование не мешает. - ❌ Правят типовую конфигурацию
ради формата. Чтобы убрать разделитель разрядов, не нужно снимать конфигурацию с поддержки — формат
ЧГ=0задаётся в пользовательских настройках варианта отчёта и в саму конфигурацию не вмешивается.
Частые вопросы
Почему СЖПРОБЕЛЫ не убирает пробел в числе из 1С?
СЖПРОБЕЛЫ его не видит. Используйте ПОДСТАВИТЬ(A1;СИМВОЛ(160);"") или замену через Ctrl+H.Как набрать неразрывный пробел в поле «Найти» Excel?
Alt, наберите на цифровой клавиатуре 0160 и отпустите Alt. Поле будет выглядеть пустым. Если цифрового блока нет, скопируйте пробел прямо из проблемной ячейки через строку формул.Можно ли убрать пробелы сразу при выгрузке, не чистя потом?
ЧГ=0 — это отключит группировку разрядов. Задаётся в макете печатной формы или в настройках поля отчёта на СКД.Число после копирования прижато влево — что это значит?
Текст по столбцам) оно встанет вправо.Копирую данные в Word, там тоже лишние пробелы — как убрать?
Ctrl+H), в поле «Найти» введите код неразрывного пробела ^s, поле «Заменить» оставьте пустым и замените всё. Перенос строки в Word ищется кодом ^l, абзац — ^p.В одной ячейке после вставки оказался перенос строки — как его убрать?
ПЕЧСИМВ(A1), а через Ctrl+H — замена Alt+010 на пробел. В многострочных реквизитах и комментариях 1С такой перенос встречается чаще всего.