Разделители в числах (пробелы, точки, запятые) — стандартный элемент форматирования в 1С:Предприятие, который облегчает восприятие больших чисел. Однако в некоторых случаях они мешают: при экспорте данных в другие системы, загрузке в банк-клиент, формировании штрихкодов или интеграции с API. В этой статье разберём все рабочие способы удаления разделителей — от ручных настроек до программного кода на встроенном языке.
Проблема актуальна для всех конфигураций: 1С:Бухгалтерия 3.0, 1С:УТ 11, 1С:ЗУП 3.1 и других. Методы работают в версиях платформы 8.2–8.3.22, но некоторые нюансы зависят от конкретной сборки. Если вы работаете с облачной версией 1С:Fresh, часть решений может быть ограничена — это связано с политикой безопасности хостинга.
Почему 1С автоматически проставляет разделители
Форматирование чисел с разделителями заложено в стандартные настройки платформы. Это не ошибка, а фича:
- 📊 Удобство чтения: число
1 000 000воспринимается быстрее, чем1000000. - 🌍 Локализация: в российской версии по умолчанию используется пробел, в европейских — точка или запятая.
- 📑 Стандарты отчётности: печатные формы (например, бухгалтерский баланс) требуют разделителей согласно ГОСТ Р 7.0.97-2016.
Однако в технических задачах разделители часто приводят к ошибкам при обмене данными, особенно если принимающая система ожидает "чистые" числа без символов. Например, при интеграции с СБИС, Диадок или банковскими сервисами.
Способ 1: Изменение формата ячейки в таблице
Самый простой метод — отключить разделители прямо в отчёте или документе. Подходит для одноразовых задач, когда не требуется глобальное изменение.
Инструкция:
- Откройте отчёт или документ с числовыми данными (например,
Отчёт по продажамилиАкт сверки). - Кликните правой кнопкой по ячейке с числом → выберите
Формат(илиСвойствав некоторых конфигурациях). - В окне настроек найдите вкладку
Числои снимите галочкуРазделять тысячи. - Примените изменения к текущей ячейке или ко всему столбцу.
☑️ Проверка формата ячейки
⚠️ Внимание: В некоторых конфигурациях (например, 1С:ERP) это меню может быть скрыто. Если пункта Формат нет — используйте горячие клавиши: выделите ячейку и нажмите Ctrl+1 (аналог Excel).
Этот способ не меняет данные в базе — только их отображение. Если нужно экспортировать числа без разделителей, переходите к следующему методу.
Способ 2: Программное удаление разделителей (1С-код)
Для автоматизации или массовой обработки используйте встроенный язык 1С. Ниже приведён универсальный код, который работает с любыми числовыми полями.
Пример для обработки табличного документа:
Процедура УбратьРазделителиИзЧисел(Таблица)
Для Каждого Область Из Таблица.Области Цикл
Для Каждого Ячейка Из Область.Ячейки Цикл
Если ТипЗнч(Ячейка.Значение) = Тип("Число") Тогда
Ячейка.Текст = Формат(Ячейка.Значение, "ЧГ=0");
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Как применять:
- Откройте нужный отчёт в режиме
1С:Предприятие. - Перейдите в
Все действия → Открыть форму отчёта(или нажмитеF5в конфигураторе). - В модуле отчёта вставьте процедуру выше.
- Вызовите её перед выводом данных (например, в обработчике
ПриОткрытии).
Для обработки документов (например, счета или накладной) используйте аналогичный код, но с указанием конкретного реквизита:
ДокументОбъект.СуммаДокумента = Формат(ДокументОбъект.СуммаДокумента, "ЧГ=0");
Если нужно удалить разделители при экспорте в Excel, добавьте в код строку ПараметрыЭкспорта.ФорматЧисел = "ЧГ=0"; перед выгрузкой.
Способ 3: Настройка формата по умолчанию для всех чисел
Если разделители мешают во всех отчётах, можно изменить глобальные настройки форматирования. Это делается в конфигураторе:
- Откройте базу в режиме
Конфигуратор(права администратора обязательны!). - Перейдите в
Администрирование → Настройки программы → Форматы данных. - Найдите параметр
Формат числаи измените его наЧГ=0(гдеЧГ— число без разделителей,0— без десятичных знаков). - Сохраните настройки и перезапустите 1С.
⚠️ Внимание: Это изменение затронет всех пользователей базы. Если в компании есть требования к формату чисел (например, для печатных форм), лучше использовать локальные настройки (Способ 1) или программную обработку (Способ 2).
| Параметр | Значение по умолчанию | Значение без разделителей |
|---|---|---|
Формат числа |
ЧДПРБ=15; ЧРД=" " |
ЧГ=0 |
Разделитель тысяч |
Пробел | Отсутствует |
Десятичный разделитель |
Запятая | Зависит от региональных настроек |
Способ 4: Обработка при обмене данными (XML, JSON, CSV)
Если разделители создают проблемы при интеграции с другими системами, используйте обработчики обмена. Например, при выгрузке в CSV:
Процедура ВыгрузитьБезРазделителей(Данные, ИмяФайла)
ТекстДанных = Новый ТекстовыйДокумент;
Для Каждого Строка Из Данные Цикл
НоваяСтрока = "";
Для Каждого Поле Из Строка Цикл
Если ТипЗнч(Поле) = Тип("Число") Тогда
НоваяСтрока = НоваяСтрока + Формат(Поле, "ЧГ=0") + ";";
Иначе
НоваяСтрока = НоваяСтрока + Поле + ";";
КонецЕсли;
КонецЦикла;
ТекстДанных.ДобавитьСтроку(Лев(НоваяСтрока, СтрДлина(НоваяСтрока)-1));
КонецЦикла;
ТекстДанных.Записать(ИмяФайла, КодировкаТекста.UTF8);
КонецПроцедуры
Для JSON используйте ЗаписьJSON с настройкой формата:
Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку();
Запись.ЗаписатьНачалоОбъекта();
Запись.ЗаписатьЧисло("Сумма", Формат(1000000, "ЧГ=0")); // Без разделителей
Запись.ЗаписатьКонецОбъекта();
Результат = Запись.Закрыть();
Что делать если разделители появляются при импорте из Excel?
При импорте из Excel 1С автоматически применяет региональные настройки. Чтобы избежать разделителей, перед импортом отключите в Excel форматирование чисел (выделите столбец → Формат ячеек → Числовой → укажите 0 десятичных знаков и снимите галочку "Разряды тысяч").
Особенности для разных конфигураций 1С
Некоторые конфигурации имеют уникальные нюансы при работе с разделителями:
- 📌 1С:Бухгалтерия 3.0: В печатных формах (например,
Счёт на оплату) разделители прописываются в макете. Чтобы убрать их, редактируйте макет в конфигураторе (путь:Общие → Макеты → Печатные формы). - 📦 1С:УТ 11: При выгрузке цен в прайс-листы используйте обработку
ВыгрузкаДанныхВОбменФорматес настройкойФорматЧисла = "ЧГ=0". - 👥 1С:ЗУП 3.1: В отчётах по зарплате (например,
Расчётная ведомость) разделители управляются черезНастройки пользователя → Форматы.
⚠️ Внимание: В 1С:Розница 2.3 при работе с кассовыми аппаратами (Атол, Штрих-М) числа без разделителей могут вызвать ошибку округления. Перед изменением формата проверьте совместимость с вашим фискальным регистратором.
Частые ошибки и как их избежать
При удалении разделителей пользователи часто сталкиваются со следующими проблемами:
- Округление чисел: Формат
ЧГ=0отсекает дробную часть. Если нужны копейки, используйтеЧГ=2. - Ошибки при импорте: Некоторые системы (например, Клиент-Банк Сбербанка) требуют разделители в виде точки, а не пробела. В этом случае используйте
Формат(Число, "ЧДЦ=2; ЧРД='.'"). - Конфликт с валютами: В многовалютных базах разделители могут зависеть от курса. Проверяйте настройки в
Справочники → Валюты.
Если после удаления разделителей числа отображаются как 1е+06 (экспоненциальный формат), добавьте в код параметр ЧН=0 (отключение научной нотации):
Формат(1000000, "ЧГ=0; ЧН=0"); // Вернёт "1000000"
Перед массовыми изменениями формата чисел всегда делайте резервную копию базы — особенно если работаете в конфигураторе!
FAQ: Ответы на частые вопросы
Можно ли убрать разделители только для одного пользователя?
Да. Для этого в режиме 1С:Предприятие перейдите в Сервис → Настройки пользователя → Форматы и измените параметр Формат числа только для своей учётной записи. Это не затронет других пользователей.
Почему после обновления 1С разделители вернулись?
Обновления платформы или конфигурации могут сбрасывать пользовательские настройки формата. Чтобы избежать этого, зафиксируйте формат программно (Способ 2) или используйте обработку ПриНачалеРаботыСистемы для автоматического применения настроек.
Как убрать разделители в мобильной версии 1С?
В мобильном клиенте 1С:Предприятие настройки формата привязаны к серверным. Измените их в десктопной версии (Способ 3), и изменения применятся автоматически. Локальное редактирование в мобильном приложении невозможно.
Можно ли сделать так, чтобы разделители отображались в базе, но не экспортировались?
Да. Используйте обработчик экспорта (Способ 4), где программно заменяйте формат только для выгружаемых данных. В базе числа останутся с разделителями.
Какие ещё символы могут мешать при обмене данными?
Помимо разделителей тысяч, проблемы вызывают:
- 💰 Знак валюты (₽, $, €) — убирается через
Формат(Число, "ЧГ=0; ЧВ=0"). - 📌 Неразрывные пробелы ( ) — заменяйте на
СтрЗаменить(Строка, Символы.НПП, ""). - 🔢 Лидирующие нули — используйте формат
ЧГ=10для сохранения нулей (например, для штрихкодов).