К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как установить значение субконто в 1С

Как установить значение субконто в 1С: ручной ввод в проводках, программная установка через код, типовые ошибки и проверка результата в отчётах.

Субконто в 1С — это аналитический разрез счёта бухгалтерского учёта: конкретный контрагент, номенклатура, склад, договор или статья затрат, по которому ведётся детализация проводки. Установить значение субконто можно тремя способами: вручную в документе или операции, программно через встроенный язык и массово — через обработку или изменение плана счетов. Выбор зависит от того, разовая это задача или требуется изменить логику учёта.

Прежде чем что-либо менять, важно понять, где именно устанавливается значение. В типовых конфигурациях субконто чаще всего заполняется автоматически из шапки или табличной части документа: указали контрагента — программа сама подставила его в проводку по счёту 60 или 62. Ручная установка требуется в операциях, введённых вручную, при корректировках и в нестандартных ситуациях, когда типовой алгоритм не срабатывает.

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

Как проверить, какие виды субконто назначены счёту

Установить значение субконто можно только для того вида аналитики, который назначен счёту в плане счетов. Если у счёта 41 не включён вид субконто «Склады», никакая настройка документа не позволит указать склад в проводке — поле просто не появится.

Откройте план счетов (раздел «Главное» → «План счетов» в типовой бухгалтерии), найдите нужный счёт и посмотрите колонку с видами субконто. В форме счёта виден список видов субконто с признаками: «Только обороты», «Суммовой», «Количественный», «Валютный». Эти признаки определяют, какие ресурсы будут заполняться в проводке.

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

Ручная установка субконто в операции и документе

Для разовой корректировки используйте документ «Операция» (Операции, введённые вручную). Создайте операцию, добавьте проводку, выберите счёт дебета и кредита — после выбора счёта в колонках «Субконто Дт» и «Субконто Кт» появятся поля для каждого вида аналитики, назначенного счёту.

Щёлкните по полю субконто и выберите значение из соответствующего справочника: контрагента, договор, номенклатуру, склад. Тип значения жёстко привязан к виду субконто — в поле «Контрагенты» нельзя выбрать склад, программа не даст этого сделать.

Порядок действий при ручной установке
  1. 1
    Откройте «Операции» → «Операции, введённые вручную» и создайте новую операцию
  2. 2
    Добавьте строку проводки и выберите счета дебета и кредита
  3. 3
    Заполните поля субконто, которые появились после выбора счетов
  4. 4
    Укажите сумму, при необходимости количество и валюту
  5. 5
    Запишите и проведите операцию
  6. 6
    Откройте оборотно-сальдовую ведомость по счёту с группировкой по субконто и убедитесь, что аналитика отобразилась

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

Программная установка субконто через встроенный язык

При доработке проведения или написании обработок значение субконто устанавливается через коллекцию Субконто движения регистра бухгалтерии. Доступ к конкретному виду аналитики выполняется по виду субконто из плана видов характеристик.

Типовой фрагмент кода для установки субконто в движении выглядит так:

Движение = Движения.Хозрасчетный.Добавить();

Движение.СчетДт = ПланыСчетов.Хозрасчетный.Товары;

Движение.СчетКт = ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками;

Движение.Период = ДатаДокумента;

Движение.Сумма = СуммаДокумента;

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура] = НоменклатураСсылка;

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады] = СкладСсылка;

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = КонтрагентСсылка;

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры] = ДоговорСсылка;

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

Установка субконто в типовой проводке через переопределение

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

Массовое изменение субконто в существующих проводках

Когда аналитику нужно установить или исправить сразу в большом количестве проводок (например, проставить подразделение в движениях за квартал), ручной ввод не подходит. Есть два рабочих пути: перепроведение документов после исправления реквизитов и целевая обработка движений.

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

Прямая правка движений обработкой — крайняя мера. Она оправдана, когда источник значения в документе отсутствует. В обработке отбирайте движения запросом по регистратору и периоду, устанавливайте значение субконто и записывайте набор движений с замещением. Обязательно работайте в транзакции и сначала протестируйте на копии базы.

Типичные ошибки
01
Запись движений напрямую без установки признака Активность — проводки не попадают в отчёты
02
Изменение движений в закрытом периоде без понимания последствий — расходятся данные сданной отчётности
03
Установка субконто не на ту сторону проводки (Дт вместо Кт) — аналитика теряется
04
Перепроведение большого периода в рабочее время — блокировки и конфликты с пользователями

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

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

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

Контрольные точки

Как проверить результат

ОСВ по счёту с группировкой по субконто
Норма

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

Тревожный признак

Суммы висят в строке с пустым значением субконто

Движения документа по регистру бухгалтерии
Норма

Поля субконто Дт и Кт заполнены согласно счетам

Тревожный признак

Поля пустые или содержат значение другого типа

Карточка счёта по конкретному субконто
Норма

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

Тревожный признак

При отборе по значению проводка не находится

Ограничения и когда нужен разработчик

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

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

Итог

Что важно запомнить

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

Частые вопросы

Почему поле субконто не появляется после выбора счёта?

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

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

Штатно — нет: движения формируются при проведении. Варианты: отменить проведение, исправить реквизиты и провести снова, либо использовать обработку прямой корректировки движений. Второй способ требует резервной копии и аккуратности, особенно в закрытых периодах.

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

Чаще всего причины три: значение установлено не на ту сторону (СубконтоДт вместо СубконтоКт), вид субконто не назначен счёту в плане счетов, либо после вашего кода движения перезаписываются другим обработчиком проведения. Проверяйте порядок выполнения подписок и модулей.

Как установить субконто для счёта, где несколько видов аналитики?

Каждый вид устанавливается отдельной строкой: обращение к коллекции Субконто по конкретному виду из плана видов характеристик. В ручной операции просто заполните все появившиеся поля — их количество равно числу видов субконто, назначенных счёту.

Что будет, если удалить вид субконто со счёта, по которому есть проводки?

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

Можно ли запретить пустые значения субконто?

Да. В форме счёта в плане счетов для вида субконто можно включить признак обязательности заполнения (в типовых конфигурациях — «Запретить использовать незаполненные значения»). После этого проведение документа с пустой аналитикой будет завершаться ошибкой.