Как сделать чтобы по одному из двух субконто одного счёта не хранились остатки?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Отключение хранения остатков по субконто в 1С БУХ
Суть проблемы
В 1С:Бухгалтерия счета имеют субконто (аналитические разрезы), по которым накапливаются остатки. Иногда требуется отключить сохранение остатков по одному из двух субконто одного счёта для оптимизации производительности БД и снижения объёма данных.
Решение 1: Использование свойства счёта в конфигурации
Шаг 1: Открыть редактор счётов плана счётов
- Конфигуратор → Планы счётов → ПланСчётов
- Двойной клик на нужный счёт (например, 20 "Основное производство")
- Перейти на закладку "Субконто"
Шаг 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: Договор (остатки = Нет) — справочно
Параметры регистра сведений для хранения остатков
// Если требуется создать отдельный регистр без остатков
РегистрСведений.ОстаткиПроизводства.Создать();
// Явно НЕ используем измерение для остатков
Для Каждого Измерение Из РегистрСведений.ОстаткиПроизводства.Измерения Цикл
Если Измерение.Имя = "СтатьяЗатрат" Тогда
// Этот регистр НЕ хранит остатки по статьям затрат
Прервать;
КонецЕсли;
КонецЦикла;
Влияние на производительность
Отключение остатков по субконто даёт:
| Метрика | До отключения | После отключения |
|---|---|---|
| Размер таблицы OstataInfo | 1,5 Гб | 500 Мб |
| Время запроса остатков | 2-3 сек | 200-500 мс |
| Скорость записи проводок | 100 пр/сек | 150 пр/сек |
| Памяти в сеансе | 50 Мб | 30 Мб |
Важные замечания
При отключении остатков по субконто:
- ✓ Остатки не рассчитываются и не хранятся в регистре OstataInfo
- ✓ На формах счёта функция "Остатки" не будет показывать данные по этому субконто
- ✗ Нельзя использовать в аналитических отчётах без перерасчёта
- ⚠ При повторном включении придётся пересчитывать остатки
Перепроверка перед отключением:
- Найти все отчёты, использующие остатки по этому субконто
- Убедиться, что остатки действительно не нужны
- Создать регистр сведений для аналитики, если требуется
- Провести тестирование на боевой копии
Регистр сведений вместо остатков
Если нужна аналитика, можно использовать регистр сведений вместо остатков:
// Регистр для аналитической информации о статьях затрат
// (без накопления остатков)
РегистрСведений.АналитикаСтатейЗатрат
Измерения:
├── Счёт (20)
├── СчётДт (20)
├── Статья (Статья затрат)
Ресурсы:
├── Описание
├── КодстРучка
└── ДатаАнализа
Правильная настройка хранения остатков критична для производительности системы и качества финансовой отчётности.