Как изменить разрядность количества в оборотно-сальдовой ведомости (ОСВ) и оборотах счета в 1С

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

В практической деятельности бухгалтера и программиста 1С часто возникает ситуация, когда стандартной точности учета количества (в типовых конфигурациях это обычно 3 знака после запятой) становится недостаточно. Например, при списании лома драгоценных металлов, учете химических реактивов, парфюмерии или высокоточных расчетах в энергетике (отопление, гигакалории, объемы газа) требуется точность до 6 или даже 9 знаков после запятой.

Разберем детально, как решить задачу изменения разрядности количества в оборотно-сальдовой ведомости (ОСВ) и отчете «Обороты счета» в системе «1С:Предприятие», проанализируем возможные способы реализации — от простых настроек пользователя до доработки метаданных, а также рассмотрим критические риски, с которыми можно столкнуться при выполнении этих изменений.

Причина проблемы: почему в отчетах округляется количество

Даже если в документах списания или поступления вам удалось указать и провести количество с высокой точностью (например, 0.000015 кг), в стандартных отчетах, таких как ОСВ по счету или обороты счета, это значение может отобразиться округленным до 3 знаков (то есть как 0.000). Это происходит по двум основным причинам:

  1. Ограничение разрядности в регистре учета. В конфигурации Бухгалтерия предприятия основным регистром, хранящим данные проводок, является регистр бухгалтерии Хозрасчетный. Его ресурс Количество по умолчанию имеет тип данных Число (15, 3). Любые данные, попадающие в этот регистр при проведении документов, физически обрезаются базой данных до 3 знаков после запятой.
  2. Формат отображения в макете отчета. Даже если в регистре разрядность была увеличена программным путем, сам отчет (ОСВ) строится на базе Системы компоновки данных (СКД), где для числовых полей количества в макете жестко прописан формат вывода. По умолчанию шаблон формата ограничивает вывод теми же 3 знаками.

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

Способ №1. Настройка условного оформления в режиме «1С:Предприятие» (Без Конфигуратора)

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

Выясним, как настроить вывод нужного числа знаков после запятой в ОСВ с помощью механизма условного оформления СКД:

  1. Откройте отчет Оборотно-сальдовая ведомость (или «Обороты счета»).
  2. Нажмите на панели отчета кнопку Показать настройки.
  3. Перейдите на вкладку Оформление.
  4. Нажмите кнопку Добавить для создания нового правила оформления.
  5. В открывшемся окне найдите свойство Формат и нажмите кнопку выбора (три точки).
  6. В конструкторе форматной строки перейдите на вкладку «Число» и установите параметр Точность в необходимое значение (например, 6). Форматная строка примет вид ЧДЦ=6 (Число Дробная Часть = 6). Нажмите «ОК».
  7. Теперь перейдите в табличную часть Оформляемые поля внизу этого же окна. Нажмите кнопку «Добавить» и укажите ресурсы количества, к которым должно применяться это оформление. Для ОСВ это будут поля: Количество Дт (нач. сальдо), Количество Кт (нач. сальдо), Количество Дт (оборот), Количество Кт (оборот), Количество Дт (кон. сальдо) и Количество Кт (кон. сальдо).
  8. Нажмите Сохранить настройки, выберите имя для вашего варианта отчета (например, «ОСВ с точностью до 6 знаков») и нажмите кнопку Сформировать.

Преимущества метода: База остается на полной поддержке, обновление конфигурации пройдет в штатном режиме без ручного совмещения макетов компоновки данных.

Способ №2. Изменение формата ячеек в макете СКД через Конфигуратор

Если вам требуется жестко зафиксировать вывод повышенной разрядности для всех пользователей «из коробки», можно отредактировать схему компоновки данных самого отчета в Конфигураторе. Напомним, что этот метод требует внесения изменений в основную конфигурацию.

Выполним процедуру изменения макета по шагам:

  1. Откройте информационную базу в режиме Конфигуратор.
  2. В дереве метаданных найдите нужный отчет (например, ОборотноСальдоваяВедомостьПоСчету).
  3. Откройте основную схему компоновки данных (обычно это ОсновнаяСхемаКомпоновкиДанных).
  4. Перейдите на вкладку Наборы данных.
  5. В списке полей набора данных найдите поля, отвечающие за вывод количества (например, КоличествоНачальныйОстатокДт, КоличествоОборотДт и т. д.).
  6. В колонке Оформление нажмите кнопку выбора и в появившемся окне параметров оформления найдите строку Формат.
  7. Задайте форматную строку с нужной разрядностью: ЧДЦ=6.
  8. Если у отчета определен собственный ручной макет оформления (вкладка «Макеты»), необходимо найти ячейки, куда выводятся параметры количества, нажать по ним правой кнопкой мыши, выбрать «Свойства» и в строке «Формат» прописать аналогичное выражение.
  9. Сохраните конфигурацию и обновите базу данных.

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

Способ №3. Изменение разрядности ресурсов в метаданных конфигурации

Если на предыдущих шагах вы обнаружили, что в отчет по-прежнему попадает округленное до 3 знаков количество, значит, проблема лежит глубже — на уровне хранения данных. Сами регистры не могут физически сохранить 6 знаков. В таком случае придется корректировать метаданные конфигурации.

Проанализируем, какие объекты конфигурации необходимо изменить:

  1. Табличные части документов. В документах списания, поступления и перемещения (например, ТребованиеНакладная, СписаниеТоваров, РеализацияТоваровУслуг) найдите реквизит Количество в табличных частях и измените его длину. По умолчанию там установлено 15, 3. Вам необходимо установить, например, 15, 6 (где 6 — количество знаков после запятой).
  2. Регистры бухгалтерии. Главное хранилище проводок в регламентированном учете — регистр бухгалтерии Хозрасчетный. Перейдите к его свойствам, откройте вкладку «Данные», найдите ресурс Количество и аналогичным образом измените его точность на 6.
  3. Регистры накопления. Если в вашей программе ведется партионный учет или учет по складам (например, через регистры накопления ТоварыНаСкладах, ПартииТоваровНаСкладах), вам также потребуется изменить разрядность ресурса Количество во всех связанных регистрах накопления.

Ограничение механизмов расширений (Платформа 8.3.18+): Современные версии платформы позволяют изменять разрядность числовых реквизитов документов через расширения конфигурации (без изменения основной конфигурации). Однако, платформа 1С по-прежнему **не поддерживает** изменение структуры регистров (включая регистр бухгалтерии Хозрасчетный) через механизм расширений. Таким образом, для полноценного изменения точности хранения количества вам все равно придется снимать основную конфигурацию с замка поддержки.

Критические риски и скрытые проблемы при изменении разрядности

Прежде чем принимать решение об увеличении разрядности количества в системе, необходимо оценить последствия этого шага. Изменение точности хранения количества — это не просто визуальная доработка, это глубокое вмешательство в логику расчетов системы.

Рассмотрим основные технические риски:

1. Зависание «копеек» и копеечных остатков при закрытии месяца.

Алгоритмы расчета себестоимости списания ТМЦ (по средней стоимости или по ФИФО) в типовых конфигурациях часто используют жестко зашитые формулы распределения сумм с округлением. Посмотрим на примере:


// Типичный пример скрытого округления в алгоритме списания ТМЦ:
ЦенаСписания = СтоимостьОстаток / КоличествоОстаток;
СуммаСписания = Окр(ЦенаСписания * Окр(КоличествоСписываемое, 3), 2);

Если в коде проведения документа или в обработке «Закрытие месяца» присутствует явное округление количества до 3 знаков перед расчетом суммы, то при списании количества с 6 знаками на счетах учета (например, 10 или 41) будут систематически зависать суммовые остатки без количественных, либо наоборот — копеечные количественные остатки без суммовых. Это приведет к необходимости постоянных ручных корректировок в конце каждого месяца.

2. Проблемы с электронным документооборотом (ЭДО).

Форматы обмена электронными документами (УПД, счета-фактуры), утвержденные Федеральной налоговой службой (ФНС), строго регламентированы XML-схемами. В этих схемах для передачи количества в XML-файле часто жестко заложено ограничение на количество знаков после запятой (обычно не более 3 или 4 знаков). При попытке отправить контрагенту УПД, в котором количество лома указано как 0.000125 т, система ЭДО выдаст ошибку формата XML-схемы, и документ просто не пройдет валидацию на стороне оператора.

3. Рассинхронизация при обменах данными.

Если в вашей компании настроен регулярный обмен данными (например, между конфигурациями Управление торговлей и Бухгалтерия предприятия), изменение разрядности обязательно должно быть синхронным в обеих базах. Если в одной базе точность останется стандартной (3 знака), а во второй будет увеличена до 6, то при каждом обмене данными количество будет автоматически округляться по правилам принимающей базы. Это вызовет перманентный хаос в остатках на складах и расхождения при сверке учетов.

Альтернативные бизнес-решения (Workarounds)

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

Переход на сверхдробные (меньшие) единицы измерения

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

Для отображения в отчетности крупных единиц измерения (например, для сдачи деклараций в тоннах) можно настроить дополнительную единицу отчетов с соответствующим коэффициентом пересчета. В этом случае базовая база данных работает с целыми и понятными величинами, а пересчет в крупные единицы происходит только на этапе формирования внешних печатных форм.

Применение упаковок и коэффициентов пересчета

Если базовой единицей номенклатуры обязательно должна выступать стандартная единица (например, штука), но в документах фигурируют дробные части, в системе можно задействовать механизм упаковок. Вы можете создать упаковку с коэффициентом 0.001 (например, «тысячная доля штуки») и указывать количество в документах именно в этих упаковках. Платформа 1С корректно пересчитает объемы без необходимости изменения метаданных конфигурации.

← На главную