Убираем лишние и неразрывные пробелы при копировании из 1С

· 9 мин

Содержание

Пробелы в числе, скопированном из 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. Скопируйте выделенную область в 1С (Ctrl+C).
  2. В Excel встаньте на нужную ячейку и нажмите Ctrl+Alt+V (Специальная вставка).
  3. Выберите вариант текст или текст в кодировке Юникод и нажмите ОК.

Это убирает ширину колонок, цвета и шрифты 1С, но сам неразрывный пробел внутри числа остаётся. Поэтому следующий шаг — замена символа:

  1. Выделите вставленный столбец.
  2. Нажмите Ctrl+H (Найти и заменить).
  3. В поле «Найти» введите неразрывный пробел: удерживая Alt, наберите на цифровой клавиатуре 0160, затем отпустите Alt. Поле останется визуально пустым — это нормально.
  4. Поле «Заменить на» оставьте пустым.
  5. Нажмите «Заменить всё».

После замены числа из текстовых часто остаются текстовыми. Чтобы «дожать» их до настоящих чисел, выделите столбец и пройдите Данные → Текст по столбцам → Готово — Excel пересчитает значения и выровняет их вправо.

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

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

Разовая выгрузка числа из 1С в Excel
Выполнено: 0 / 5

Как убрать разделитель разрядов ещё в 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С?
Потому что это не обычный пробел (код 32), а неразрывный разделитель разрядов (код 160). СЖПРОБЕЛЫ его не видит. Используйте ПОДСТАВИТЬ(A1;СИМВОЛ(160);"") или замену через Ctrl+H.
Как набрать неразрывный пробел в поле «Найти» Excel?
Удерживая Alt, наберите на цифровой клавиатуре 0160 и отпустите Alt. Поле будет выглядеть пустым. Если цифрового блока нет, скопируйте пробел прямо из проблемной ячейки через строку формул.
Можно ли убрать пробелы сразу при выгрузке, не чистя потом?
Да. Пропишите в формате числового поля ЧГ=0 — это отключит группировку разрядов. Задаётся в макете печатной формы или в настройках поля отчёта на СКД.
Число после копирования прижато влево — что это значит?
Это признак текстового значения: Excel не распознал его как число из-за лишнего символа. После удаления пробелов и преобразования (Текст по столбцам) оно встанет вправо.
Копирую данные в Word, там тоже лишние пробелы — как убрать?
В Word откройте «Найти и заменить» (Ctrl+H), в поле «Найти» введите код неразрывного пробела ^s, поле «Заменить» оставьте пустым и замените всё. Перенос строки в Word ищется кодом ^l, абзац — ^p.
В одной ячейке после вставки оказался перенос строки — как его убрать?
Это символ с кодом 10. Формулой убирает ПЕЧСИМВ(A1), а через Ctrl+H — замена Alt+010 на пробел. В многострочных реквизитах и комментариях 1С такой перенос встречается чаще всего.