Лишние нули в полях количества товаров, остатков или документов в 1С:Предприятие — распространённая проблема, которая усложняет работу с данными. Они появляются при экспорте/импорте, ручном вводе через точку (например, 5.000 вместо 5), или из-за особенностей хранения чисел в базе. В некоторых случаях нули мешают аналитике, занимают место в отчётах, а иногда даже вызывают ошибки при обмене данными с внешними системами.

Решить эту проблему можно разными способами — от базовых настроек интерфейса до программных доработок конфигурации. Важно понимать, что метод зависит от версии платформы (1С 8.2 или 1С 8.3), типа данных (число, дробное число) и конкретной конфигурации (УТ 11, ERP 2, Розница 2.3 и др.). В этой статье разберём все актуальные способы, включая нюансы для типовых и нетиповой конфигураций.

Если вы не программист, начните с первых трёх разделов — там описаны решения без кода. Разработчикам пригодятся разделы про программное форматирование и обработку данных на уровне СКД или запросов.

📊 С какой конфигурацией 1С вы работаете?
Управление Торговлей (УТ 11)
ERP 2
Розница 2.3
Бухгалтерия 3.0
Зарплата и Управление Персоналом (ЗУП)
Другая (нетиповая)

1. Настройка отображения чисел в интерфейсе 1С

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

Для этого:

  1. Откройте любой документ или справочник, где отображаются числа с нулями (например, Остатки товаров или Приходная накладная).
  2. Кликните правой кнопкой мыши по колонке с количеством и выберите Настройка списка1С 8.3 путь может отличаться: Ещё → Настроить список).
  3. В открывшемся окне найдите вкладку Колонки, выделите нужную колонку (например, Количество) и нажмите Изменить.
  4. В поле Формат укажите параметр ЧДЦ=0 (число десятичных знаков равно 0). Для дробных чисел используйте ЧДЦ=2, если нужны только два знака после запятой.

Эти настройки сохранятся для текущего пользователя. Чтобы применить их для всех, потребуется доработка конфигурации (см. раздел 5).

  • Плюсы: не требует прав администратора, работает сразу.
  • Минусы: не убирает нули в базе, только скрывает их в интерфейсе.
  • ⚠️ Нюанс: в некоторых конфигурациях (например, 1С:ERP) настройки колонок могут сбрасываться после обновлений.
💡

Если после изменения формата нули всё равно отображаются, проверьте настройки Регистра сведений или Плана видов характеристик — там может быть привязан другой формат.

2. Использование обработок для массового исправления

Если нули stored directly in the database (например, после импорта из Excel или миграции данных), их можно удалить с помощью стандартных или внешних обработок. Для типовой 1С:Управление Торговлей 11 подойдёт обработка Поиск и замена значений, которая входит в комплект поставки.

Алгоритм действий:

  1. Откройте обработку через меню Файл → Открыть (выберите файл SearchAndReplace.epf в каталоге шаблонов).
  2. В поле Таблица укажите документ или справочник (например, Документ.ПоступлениеТоваровУслуг).
  3. В поле Поле выберите Количество (или аналогичное).
  4. В Значение для поиска введите *.000 (звёздочка — любой символ, точка и три нуля).
  5. В Значение для замены укажите \1 (это регулярное выражение, которое оставляет только целую часть числа).
  6. Нажмите Заменить все и подтвердите действие.

Для нетиповой конфигурации может потребоваться внешняя обработка, например, "Универсальный корректор данных" от Инфостарт. Она позволяет гибко настраивать правила замены, включая работу с дробными числами.

⚠️ Внимание: Перед массовой заменой обязательно сделайте резервную копию базы! Ошибка в регулярном выражении может испортить данные. Например, замена *.000 на \1 преобразует 10.000 в 1, что не всегда корректно.
Обработка Поддерживаемые конфигурации Особенности
Поиск и замена значений (стандартная) УТ 11, ERP 2, Розница 2.3 Работает только с простыми типами данных, нет поддержки транзакций.
Универсальный корректор данных (Инфостарт) Любые конфигурации на 8.3 Поддерживает сложные условия, транзакции, логирование изменений.
DataProcessor (от 1С-Битрикс) 1С + интеграция с веб Позволяет экспортировать данные в CSV, исправить и импортировать обратно.

3. Корректировка через запросы (для разработчиков)

Если нули хранятся в базе в виде дробных чисел (например, 5.000000), их можно исправить SQL-запросом. Этот метод подходит для 1С на MS SQL Server или PostgreSQL, но требует прав доступа к серверу базы данных.

Пример запроса для MS SQL, который обрезает нули в таблице документов:

UPDATE [dbo].[Document_ПоступлениеТоваровУслуг]

SET [Количество] = CAST([Количество] AS INT)

WHERE [Количество] = CAST([Количество] AS INT)

Для PostgreSQL используйте функцию TRUNC:

UPDATE document_поступлениетоваровуслуг

SET количество = TRUNC(количество)

WHERE количество = TRUNC(количество);

  • 🔧 Важно: перед выполнением запроса проверьте его на тестовой копии базы!
  • 📊 Нюанс: в некоторые поля могут храниться как NUMERIC(15,6), и простое приведение к INT приведёт к ошибке.
  • 🔄 Альтернатива: если нули появляются при обмене данными, исправляйте их на стороне источника (например, в Excel перед импортом).
⚠️ Внимание: Прямые SQL-запросы к базе могут нарушить целостность данных, если не учитывать механизмы блокировок и транзакций платформы. Используйте этот метод только в крайнем случае или через Внешнее соединение в конфигураторе.
Что будет если обнулить дробную часть в валютах?

Если в поле хранится курс валюты (например, 75.0000), а вы приведёте его к целому числу (75), это исказит все расчёты в документах. Перед массовой заменой проверьте, не используется ли поле в финансовых операциях.

4. Настройка печатных форм и отчётов

Нули в количестве часто проявляются в печатных формах документов (например, в Счёте на оплату или Торг-12). Исправить это можно через редактор макетов:

Инструкция для 1С 8.3:

  1. Откройте нужный документ (например, Реализация товаров) и перейдите в печатную форму (Печать → Счёт на оплату).
  2. Нажмите Изменить форму (или Настроить макет в зависимости от конфигурации).
  3. Найдите поле с количеством (обычно это ТаблицаДокумента.Количество) и откройте его свойства.
  4. В свойстве Формат укажите ЧДЦ=0; ЧН=Неотрицательное.
  5. Сохраните макет и обновите форму.

Для системы компоновки данных (СКД) (используется в отчётах вроде Остатки товаров):

  1. Откройте отчёт в режиме Конфигуратор.
  2. Перейдите на вкладку НастройкиПоля.
  3. Выделите поле Количество и в свойствах укажите Формат = ЧДЦ=0.
  4. Если нужно округлить дробные значения, добавьте выражение:
    ВЫБРАТЬ
    

    ЦЕЛ(Количество) КАК КоличествоБезНулей

    ИЗ

    &Таблица

Сделать резервную копию макета|Проверить права доступа (нужен режим"Конфигуратор")|Убедиться, что поле не используется в расчётах|Тестировать изменения на копии документа-->

5. Программное решение: обработка событий

Если нули появляются при вводе данных (например, пользователь вводит 5.000, а нужно 5), можно добавить обработчик события ПриИзменении для поля Количество. Этот метод требует доступа к конфигуратору и знания 1С-программирования.

Пример кода для обработки ввода в документе ПоступлениеТоваровУслуг:

&НаСервере

Процедура КоличествоПриИзменении(Элемент)

Если ТипЗнч(Элемент.Значение) = Тип("Число") Тогда

Элемент.Значение = Цел(Элемент.Значение);

КонецЕсли;

КонецПроцедуры

Для управляемых форм (тонкий клиент, веб-клиент) используйте серверный код:

&НаСервере

Процедура ТоварыКоличествоПриИзменении(Элемент)

Если Элемент.Значение = Цел(Элемент.Значение) Тогда

Элемент.Значение = Цел(Элемент.Значение);

КонецЕсли;

КонецПроцедуры

  • 💡 Совет: чтобы не терять дробную часть при реальной необходимости (например, для весового товара), добавьте проверку на тип номенклатуры:
    Если НЕ Номенклатура.ВесовойТовар Тогда
    

    Элемент.Значение = Цел(Элемент.Значение);

    КонецЕсли;

  • 🔧 Нюанс: в 1С:Розница 2.3 поле Количество может быть привязано к РегиструНакопления.ОстаткиТоваров, и его изменение потребует перепроведения документа.
💡

Обработчики событий — самый надёжный способ контролировать ввод данных, но они работают только для новых документов. Для исправления старых данных используйте обработки или запросы.

6. Обмен данными и интеграции: почему нули возвращаются

Если вы удалили нули в , но они появляются снова после обмена с внешними системами (например, 1С-Битрикс, МойСклад, или Excel), проблема кроется в настройках интеграции. Рассмотрим типичные сценарии:

1. Импорт из Excel:

  • 📑 Excel по умолчанию сохраняет числа с двумя десятичными знаками. При импорте в через ЗагрузкаДанныхИзТабличногоДокумента нули переносятся"как есть".
  • 🔄 Решение: перед загрузкой отформатируйте колонку в Excel как Целое число или используйте обработку с предварительной очисткой данных.

2. Обмен с сайтом (1С-Битрикс, WooCommerce):

  • 🌐 Многие CMS передают количество как строку (например, "5.000"). В это преобразуется в дробное число.
  • 🔧 Решение: доработайте обработку обмена, добавив приведение к целому числу:
    Количество = Цел(Число(ДанныеJSON.Количество));

3. Обмен с МойСклад или Диадок:

  • 📦 Эти сервисы часто передают количество с фиксированной точностью (например, 3.000000).
  • ⚙️ Решение: настройте правила конвертации в Плане обмена или используйте промежуточную обработку для очистки данных.
⚠️ Внимание: Если вы используете 1С:EDT (Enterprise Development Tools) для интеграций, проверьте настройки Формата обмена — там может быть явное указание на передачу дробных чисел даже для целых значений.

7. Особенности для конкретных конфигураций

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

Конфигурация Типичные проблемы с нулями Рекомендуемое решение
1С:Управление Торговлей 11 Нули в Остатках товаров и Заказах покупателей после обмена с МойСклад. Использовать обработку Поиск и замена или доработать План обмена.
1С:ERP 2 Нули в Планах производства и Спецификациях из-за дробных коэффициентов. Настроить округление в Регистре сведений"Нормы расхода".
1С:Розница 2.3 Нули в Чеках ККМ при работе с весовыми товарами. Добавить обработчик ПриЗаписи для документа ЧекККМ.
1С:Бухгалтерия 3.0 Нули в Счётах-фактурах при экспорте в Контур.Диадок. Исправить шаблон печатной формы или настроить Формат выгрузки.

Для нетиповой конфигурации или сильно доработанной типовика потребуется анализ структуры базы. В этом случае:

  1. Откройте конфигуратор и найдите поле с количеством (например, через Поиск по метаданным).
  2. Проверьте тип поля: если это Число(15,3), а вам нужны только целые значения, измените его на Число(15,0).
  3. Обновите конфигурацию базы и перепроверьте документы.

Изменение типа поля в метаданных может привести к ошибкам в существующих документах! Перед такой доработкой обязательно протестируйте её на копии базы.

FAQ: Частые вопросы по удалению нулей в 1С

Почему после удаления нулей через обработку они появляются снова?

Скорее всего, нули прописаны в правилах обмена данными или в источнике данных (например, в Excel-файле, из которого вы загружаете товары). Проверьте настройки интеграции и отключите автоматическое округление в внешней системе.

Также причиной может быть регламентное задание, которое периодически обновляет данные из другого источника. Откройте Администрирование → Регламентные задания и проверьте задачи, связанные с синхронизацией.

Можно ли убрать нули в отчёте"Ведомость по товарам" без доработок?

Да, в большинстве отчётов на СКД (Система Компоновки Данных) можно изменить формат прямо в настройках:

  1. Откройте отчёт и нажмите Настройки → Другие настройки.
  2. Перейдите на вкладку Поля и найдите колонку Количество.
  3. В свойствах поля укажите Формат = ЧДЦ=0.
  4. Сохраните настройки как пользовательские или общие.

Если отчёт не на СКД, а на старых механизмах (например, Табличный документ), потребуется доработка макета.

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

При выгрузке через Сохранить как Excel формат чисел сохраняется"как есть". Чтобы убрать нули:

  1. Перед выгрузкой отредактируйте макет отчёта (см. раздел 4).
  2. Или экспортируйте данные в CSV, затем откройте файл в Excel и примените формат Целое число.
  3. Для автоматической выгрузки без нулей используйте обработку с кодом:
    Таблица = Новый ТаблицаЗначений;
    

    Таблица.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число",,"ЧДЦ=0"));

    // Заполнение таблицы данными

    Таблица.Выгрузить(ПутьКФайлу, ФорматВыгрузкиДанных.Excel8);

Почему в некоторых документах нули остаются, а в других — нет?

Это зависит от типа поля в метаданных:

  • Если поле имеет тип Число(10,0) — нулей не будет.
  • Если тип Число(10,3) — платформа будет хранить три знака после запятой, даже если они нулевые.

Чтобы унифицировать отображение:

  1. Откройте конфигуратор и найдите документ, где остаются нули.
  2. Проверьте тип поля Количество в его структуре.
  3. Если нужно изменить тип, сделайте это через Конфигуратор → Объекты → [ВашДокумент] → Реквизиты.

После изменения типа поля может потребоваться обновление конфигурации базы и перепроведение документов.

Как убрать нули в количестве при печати этикеток?

В этикетках (например, в 1С:Розница) формат чисел настраивается в макете печатной формы:

  1. Откройте документ (например, Поступление товаров) и выберите Печать → Этикетки.
  2. Нажмите Настроить макет и найдите поле с количеством.
  3. В свойствах поля укажите Формат = ЧДЦ=0; ЧН=Неотрицательное.
  4. Если макет на СКД, измените формат в настройках компоновки (см. раздел 4).

Для термопринтеров (например, Атол или Штрих-М) может потребоваться доработка драйвера печати, так как некоторые модели автоматически добавляют нули к дробным числам.