В практической деятельности бухгалтера и программиста 1С часто возникает ситуация, когда стандартной точности учета количества (в типовых конфигурациях это обычно 3 знака после запятой) становится недостаточно. Например, при списании лома драгоценных металлов, учете химических реактивов, парфюмерии или высокоточных расчетах в энергетике (отопление, гигакалории, объемы газа) требуется точность до 6 или даже 9 знаков после запятой.
Разберем детально, как решить задачу изменения разрядности количества в оборотно-сальдовой ведомости (ОСВ) и отчете «Обороты счета» в системе «1С:Предприятие», проанализируем возможные способы реализации — от простых настроек пользователя до доработки метаданных, а также рассмотрим критические риски, с которыми можно столкнуться при выполнении этих изменений.
Даже если в документах списания или поступления вам удалось указать и провести количество с высокой точностью (например, 0.000015 кг), в стандартных отчетах, таких как ОСВ по счету или обороты счета, это значение может отобразиться округленным до 3 знаков (то есть как 0.000). Это происходит по двум основным причинам:
Бухгалтерия предприятия основным регистром, хранящим данные проводок, является регистр бухгалтерии Хозрасчетный. Его ресурс Количество по умолчанию имеет тип данных Число (15, 3). Любые данные, попадающие в этот регистр при проведении документов, физически обрезаются базой данных до 3 знаков после запятой.Рассмотрим по шагам все возможные варианты решения этой задачи, начиная от самых безопасных и простых, заканчивая глубокой модификацией системы.
Это самый предпочтительный способ, так как он не требует снятия конфигурации с поддержки, не ломает механизм обновлений и выполняется силами пользователя или администратора непосредственно в режиме предприятия.
Выясним, как настроить вывод нужного числа знаков после запятой в ОСВ с помощью механизма условного оформления СКД:
ЧДЦ=6 (Число Дробная Часть = 6). Нажмите «ОК».Количество Дт (нач. сальдо), Количество Кт (нач. сальдо), Количество Дт (оборот), Количество Кт (оборот), Количество Дт (кон. сальдо) и Количество Кт (кон. сальдо).Преимущества метода: База остается на полной поддержке, обновление конфигурации пройдет в штатном режиме без ручного совмещения макетов компоновки данных.
Если вам требуется жестко зафиксировать вывод повышенной разрядности для всех пользователей «из коробки», можно отредактировать схему компоновки данных самого отчета в Конфигураторе. Напомним, что этот метод требует внесения изменений в основную конфигурацию.
Выполним процедуру изменения макета по шагам:
ОборотноСальдоваяВедомостьПоСчету).ОсновнаяСхемаКомпоновкиДанных).КоличествоНачальныйОстатокДт, КоличествоОборотДт и т. д.).ЧДЦ=6.Важно: При таком подходе измененный макет отчета затрется при следующем типовом обновлении конфигурации. Вам придется вручную контролировать изменения и объединять макеты при каждом обновлении.
Если на предыдущих шагах вы обнаружили, что в отчет по-прежнему попадает округленное до 3 знаков количество, значит, проблема лежит глубже — на уровне хранения данных. Сами регистры не могут физически сохранить 6 знаков. В таком случае придется корректировать метаданные конфигурации.
Проанализируем, какие объекты конфигурации необходимо изменить:
ТребованиеНакладная, СписаниеТоваров, РеализацияТоваровУслуг) найдите реквизит Количество в табличных частях и измените его длину. По умолчанию там установлено 15, 3. Вам необходимо установить, например, 15, 6 (где 6 — количество знаков после запятой).Хозрасчетный. Перейдите к его свойствам, откройте вкладку «Данные», найдите ресурс Количество и аналогичным образом измените его точность на 6.ТоварыНаСкладах, ПартииТоваровНаСкладах), вам также потребуется изменить разрядность ресурса Количество во всех связанных регистрах накопления.Ограничение механизмов расширений (Платформа 8.3.18+): Современные версии платформы позволяют изменять разрядность числовых реквизитов документов через расширения конфигурации (без изменения основной конфигурации). Однако, платформа 1С по-прежнему **не поддерживает** изменение структуры регистров (включая регистр бухгалтерии Хозрасчетный) через механизм расширений. Таким образом, для полноценного изменения точности хранения количества вам все равно придется снимать основную конфигурацию с замка поддержки.
Прежде чем принимать решение об увеличении разрядности количества в системе, необходимо оценить последствия этого шага. Изменение точности хранения количества — это не просто визуальная доработка, это глубокое вмешательство в логику расчетов системы.
Рассмотрим основные технические риски:
1. Зависание «копеек» и копеечных остатков при закрытии месяца.
Алгоритмы расчета себестоимости списания ТМЦ (по средней стоимости или по ФИФО) в типовых конфигурациях часто используют жестко зашитые формулы распределения сумм с округлением. Посмотрим на примере:
// Типичный пример скрытого округления в алгоритме списания ТМЦ:
ЦенаСписания = СтоимостьОстаток / КоличествоОстаток;
СуммаСписания = Окр(ЦенаСписания * Окр(КоличествоСписываемое, 3), 2);
Если в коде проведения документа или в обработке «Закрытие месяца» присутствует явное округление количества до 3 знаков перед расчетом суммы, то при списании количества с 6 знаками на счетах учета (например, 10 или 41) будут систематически зависать суммовые остатки без количественных, либо наоборот — копеечные количественные остатки без суммовых. Это приведет к необходимости постоянных ручных корректировок в конце каждого месяца.
2. Проблемы с электронным документооборотом (ЭДО).
Форматы обмена электронными документами (УПД, счета-фактуры), утвержденные Федеральной налоговой службой (ФНС), строго регламентированы XML-схемами. В этих схемах для передачи количества в XML-файле часто жестко заложено ограничение на количество знаков после запятой (обычно не более 3 или 4 знаков). При попытке отправить контрагенту УПД, в котором количество лома указано как 0.000125 т, система ЭДО выдаст ошибку формата XML-схемы, и документ просто не пройдет валидацию на стороне оператора.
3. Рассинхронизация при обменах данными.
Если в вашей компании настроен регулярный обмен данными (например, между конфигурациями Управление торговлей и Бухгалтерия предприятия), изменение разрядности обязательно должно быть синхронным в обеих базах. Если в одной базе точность останется стандартной (3 знака), а во второй будет увеличена до 6, то при каждом обмене данными количество будет автоматически округляться по правилам принимающей базы. Это вызовет перманентный хаос в остатках на складах и расхождения при сверке учетов.
Для того чтобы избежать технических проблем, доработок конфигурации и рисков при обновлении, программисты и методологи часто используют обходные организационные решения:
Вместо того чтобы хранить лом металла в тоннах с точностью до 6 знаков после запятой, измените базовую единицу хранения остатков в карточке номенклатуры на килограммы или даже граммы. Например:
0.000125 тонн превращаются в комфортные для системы 0.125 кг (3 знака после запятой).0.000005 кг превращаются в 5 миллиграмм или 0.005 грамм.Для отображения в отчетности крупных единиц измерения (например, для сдачи деклараций в тоннах) можно настроить дополнительную единицу отчетов с соответствующим коэффициентом пересчета. В этом случае базовая база данных работает с целыми и понятными величинами, а пересчет в крупные единицы происходит только на этапе формирования внешних печатных форм.
Если базовой единицей номенклатуры обязательно должна выступать стандартная единица (например, штука), но в документах фигурируют дробные части, в системе можно задействовать механизм упаковок. Вы можете создать упаковку с коэффициентом 0.001 (например, «тысячная доля штуки») и указывать количество в документах именно в этих упаковках. Платформа 1С корректно пересчитает объемы без необходимости изменения метаданных конфигурации.