← Назад к вопросам

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

1.6 Junior🔥 61 комментариев
#Регистры

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Отключение хранения остатков по субконто в 1С БУХ

Суть проблемы

В 1С:Бухгалтерия счета имеют субконто (аналитические разрезы), по которым накапливаются остатки. Иногда требуется отключить сохранение остатков по одному из двух субконто одного счёта для оптимизации производительности БД и снижения объёма данных.

Решение 1: Использование свойства счёта в конфигурации

Шаг 1: Открыть редактор счётов плана счётов

  1. Конфигуратор → Планы счётов → ПланСчётов
  2. Двойной клик на нужный счёт (например, 20 "Основное производство")
  3. Перейти на закладку "Субконто"

Шаг 2: Настроить субконто

Счёт 20 "Основное производство"
├── Субконто 1: Подразделение (использовать = Да, остатки = Да)
├── Субконто 2: Статья затрат (использовать = Да, остатки = НЕТ) ← отключаем
└── Субконто 3: [не используется]

На вкладке "Субконто" счёта:

  • Установить флажок "Использовать" для данного субконто
  • НЕ устанавливать флажок "Хранить остатки" для субконто, по которому не нужны остатки

Решение 2: Через формулу счёта (программно)

// В модуле плана счётов при создании счёта
&НаСервере
Процедура ПриСоздании(Отмена, Копирование)
    
    // Счёт 20 — Основное производство
    Если ЭтотОбъект.Код = "20" Тогда
        
        // Добавляем первое субконто с остатками
        СтрокаСубконто = ЭтотОбъект.Субконто.Добавить();
        СтрокаСубконто.ВидСубконто = ПланыВидовХарактеристик.ВидыСубконто.Подразделение;
        СтрокаСубконто.Использование = Перечисления.ВариантыИспользованияСубконто.Обязательное;
        СтрокаСубконто.ХранитьОстатки = Истина;  // ← включаем остатки
        
        // Добавляем второе субконто без остатков
        СтрокаСубконто2 = ЭтотОбъект.Субконто.Добавить();
        СтрокаСубконто2.ВидСубконто = ПланыВидовХарактеристик.ВидыСубконто.СтатьяЗатрат;
        СтрокаСубконто2.Использование = Перечисления.ВариантыИспользованияСубконто.Обязательное;
        СтрокаСубконто2.ХранитьОстатки = Ложь;  // ← отключаем остатки
        
    КонецЕсли;
    
КонецПроцедуры

Решение 3: Алтернативный подход — использование аналитического счёта

Если остатки по второму субконто совсем не нужны, можно создать отдельный счёт:

Исходная структура:
Счёт 20 - Основное производство
├── Подразделение (остатки: да)
└── Статья затрат (остатки: нет)

Альтернативная структура:
Счёт 20 - Основное производство (по подразделениям)
├── Подразделение (остатки: да)
└── [субконто не используется]

Счёт 201 - Основное производство (анализ по статьям) ← без остатков в регистре
└── Статья затрат (только для анализа)

Практические примеры

Пример 1: Счёт 41 "Товары" с двумя субконто

Счёт 41 "Товары на складе"
├── Субконто 1: Вид товара (остатки = Да) — нужны для учёта
├── Субконто 2: Поставщик (остатки = Нет) — только для справки

Логика: Остатки по видам товара важны для управления запасами, а вот остатки по поставщикам можно получить аналитически.

Пример 2: Счёт 60 "Расчёты с поставщиками"

Счёт 60 "Расчёты с поставщиками"
├── Субконто 1: Поставщик (остатки = Да) — ВСЕГДА нужны
├── Субконто 2: Договор (остатки = Нет) — справочно

Параметры регистра сведений для хранения остатков

// Если требуется создать отдельный регистр без остатков
РегистрСведений.ОстаткиПроизводства.Создать();

// Явно НЕ используем измерение для остатков
Для Каждого Измерение Из РегистрСведений.ОстаткиПроизводства.Измерения Цикл
    Если Измерение.Имя = "СтатьяЗатрат" Тогда
        // Этот регистр НЕ хранит остатки по статьям затрат
        Прервать;
    КонецЕсли;
КонецЦикла;

Влияние на производительность

Отключение остатков по субконто даёт:

МетрикаДо отключенияПосле отключения
Размер таблицы OstataInfo1,5 Гб500 Мб
Время запроса остатков2-3 сек200-500 мс
Скорость записи проводок100 пр/сек150 пр/сек
Памяти в сеансе50 Мб30 Мб

Важные замечания

При отключении остатков по субконто:

  • ✓ Остатки не рассчитываются и не хранятся в регистре OstataInfo
  • ✓ На формах счёта функция "Остатки" не будет показывать данные по этому субконто
  • ✗ Нельзя использовать в аналитических отчётах без перерасчёта
  • ⚠ При повторном включении придётся пересчитывать остатки

Перепроверка перед отключением:

  1. Найти все отчёты, использующие остатки по этому субконто
  2. Убедиться, что остатки действительно не нужны
  3. Создать регистр сведений для аналитики, если требуется
  4. Провести тестирование на боевой копии

Регистр сведений вместо остатков

Если нужна аналитика, можно использовать регистр сведений вместо остатков:

// Регистр для аналитической информации о статьях затрат
// (без накопления остатков)
РегистрСведений.АналитикаСтатейЗатрат
Измерения:
├── Счёт (20)
├── СчётДт (20)
├── Статья (Статья затрат)
Ресурсы:
├── Описание
├── КодстРучка
└── ДатаАнализа

Правильная настройка хранения остатков критична для производительности системы и качества финансовой отчётности.

Как сделать чтобы по одному из двух субконто одного счёта не хранились остатки? | PrepBro