Разработка и Конфигурация · 10 мин
Как установить значение субконто в 1С
Как установить значение субконто в 1С: ручной ввод в проводках, программная установка через код, типовые ошибки и проверка результата в отчётах.
Субконто в 1С — это аналитический разрез счёта бухгалтерского учёта: конкретный контрагент, номенклатура, склад, договор или статья затрат, по которому ведётся детализация проводки. Установить значение субконто можно тремя способами: вручную в документе или операции, программно через встроенный язык и массово — через обработку или изменение плана счетов. Выбор зависит от того, разовая это задача или требуется изменить логику учёта.
Прежде чем что-либо менять, важно понять, где именно устанавливается значение. В типовых конфигурациях субконто чаще всего заполняется автоматически из шапки или табличной части документа: указали контрагента — программа сама подставила его в проводку по счёту 60 или 62. Ручная установка требуется в операциях, введённых вручную, при корректировках и в нестандартных ситуациях, когда типовой алгоритм не срабатывает.
Ниже разобраны все рабочие способы: от простого ручного ввода до программной установки в модуле проведения, с проверкой результата и разбором типовых ошибок.
Как проверить, какие виды субконто назначены счёту
Установить значение субконто можно только для того вида аналитики, который назначен счёту в плане счетов. Если у счёта 41 не включён вид субконто «Склады», никакая настройка документа не позволит указать склад в проводке — поле просто не появится.
Откройте план счетов (раздел «Главное» → «План счетов» в типовой бухгалтерии), найдите нужный счёт и посмотрите колонку с видами субконто. В форме счёта виден список видов субконто с признаками: «Только обороты», «Суммовой», «Количественный», «Валютный». Эти признаки определяют, какие ресурсы будут заполняться в проводке.
Если нужного вида субконто нет, его можно добавить, но только к непредопределённому (самостоятельно созданному) счёту или через расширение конфигурации. Изменение аналитики предопределённых счетов типовой конфигурации снимет её с полной поддержки и может сломать типовые механизмы проведения.
Ручная установка субконто в операции и документе
Для разовой корректировки используйте документ «Операция» (Операции, введённые вручную). Создайте операцию, добавьте проводку, выберите счёт дебета и кредита — после выбора счёта в колонках «Субконто Дт» и «Субконто Кт» появятся поля для каждого вида аналитики, назначенного счёту.
Щёлкните по полю субконто и выберите значение из соответствующего справочника: контрагента, договор, номенклатуру, склад. Тип значения жёстко привязан к виду субконто — в поле «Контрагенты» нельзя выбрать склад, программа не даст этого сделать.
- 1Откройте «Операции» → «Операции, введённые вручную» и создайте новую операцию
- 2Добавьте строку проводки и выберите счета дебета и кредита
- 3Заполните поля субконто, которые появились после выбора счетов
- 4Укажите сумму, при необходимости количество и валюту
- 5Запишите и проведите операцию
- 6Откройте оборотно-сальдовую ведомость по счёту с группировкой по субконто и убедитесь, что аналитика отобразилась
В обычных документах (поступление, реализация, списание) субконто подставляется автоматически из реквизитов документа. Если проводка сформировалась с пустой аналитикой, сначала проверьте заполненность самого документа: не указан договор в шапке — будет пустой договор в проводке.
Программная установка субконто через встроенный язык
При доработке проведения или написании обработок значение субконто устанавливается через коллекцию Субконто движения регистра бухгалтерии. Доступ к конкретному виду аналитики выполняется по виду субконто из плана видов характеристик.
Типовой фрагмент кода для установки субконто в движении выглядит так:
Движение = Движения.Хозрасчетный.Добавить();
Движение.СчетДт = ПланыСчетов.Хозрасчетный.Товары;
Движение.СчетКт = ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками;
Движение.Период = ДатаДокумента;
Движение.Сумма = СуммаДокумента;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура] = НоменклатураСсылка;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады] = СкладСсылка;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = КонтрагентСсылка;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры] = ДоговорСсылка;
Обратите внимание: обращение идёт именно к СубконтоДт или СубконтоКт — в регистре бухгалтерии с балансовым планом счетов аналитика разделена по сторонам проводки. Если установить значение в СубконтоДт, а вид субконто назначен только счёту кредита, значение просто не сохранится.
Установка субконто в типовой проводке через переопределение
Если нужно изменить аналитику, которую формирует типовой документ, не снимая конфигурацию с поддержки, используйте расширение: перехватите обработчик проведения или подписку на событие записи набора движений и скорректируйте коллекцию Субконто после выполнения типового кода. Это безопаснее прямой правки модуля и не сломается при обновлении.
Массовое изменение субконто в существующих проводках
Когда аналитику нужно установить или исправить сразу в большом количестве проводок (например, проставить подразделение в движениях за квартал), ручной ввод не подходит. Есть два рабочих пути: перепроведение документов после исправления реквизитов и целевая обработка движений.
Перепроведение — предпочтительный способ, если значение субконто берётся из документа. Исправьте реквизит в документах (можно групповой обработкой изменения реквизитов), затем перепроведите их за нужный период. Проводки пересоздадутся с корректной аналитикой.
Прямая правка движений обработкой — крайняя мера. Она оправдана, когда источник значения в документе отсутствует. В обработке отбирайте движения запросом по регистратору и периоду, устанавливайте значение субконто и записывайте набор движений с замещением. Обязательно работайте в транзакции и сначала протестируйте на копии базы.
Как проверить, что значение субконто установлено корректно
Основной инструмент проверки — оборотно-сальдовая ведомость по счёту с включённой группировкой по субконто. Откройте отчёт, в настройках добавьте нужный вид аналитики в группировку и сформируйте. Значение должно отображаться в строках отчёта, а не попадать в строку с пустой аналитикой.
Для проверки конкретной проводки используйте отчёт «Анализ счёта» или движения документа: откройте документ, перейдите к движениям по регистру бухгалтерии и посмотрите колонки субконто в таблице проводок. Это быстрее, чем строить отчёт по всему счёту.
Как проверить результат
Обороты распределены по конкретным значениям аналитики
Суммы висят в строке с пустым значением субконто
Поля субконто Дт и Кт заполнены согласно счетам
Поля пустые или содержат значение другого типа
Проводка видна при отборе по установленному значению
При отборе по значению проводка не находится
Ограничения и когда нужен разработчик
Ручная установка субконто доступна любому пользователю с правами на ввод операций. Программная установка и массовые исправления требуют понимания структуры регистра бухгалтерии, плана видов характеристик и механизмов проведения — здесь ошибка стоит дорого, потому что затрагивает учётные данные.
Обратитесь к разработчику, если нужно: изменить состав субконто на предопределённом счёте, исправить аналитику в закрытых периодах, написать обработку массовой корректировки движений или перенести аналитику между базами. Такие задачи выполняются только после резервного копирования и тестирования на копии.
Что важно запомнить
Значение субконто устанавливается только для видов аналитики, назначенных счёту в плане счетов. Разовые проводки заполняйте вручную через операцию, типовую логику меняйте через расширение, массовые исправления делайте перепроведением. Результат всегда проверяйте ОСВ с группировкой по субконто.
Частые вопросы
Почему поле субконто не появляется после выбора счёта?
У счёта в плане счетов не назначены виды субконто либо назначены, но не для той стороны проводки. Откройте счёт в плане счетов и проверьте список видов аналитики. Для субсчетов также проверьте, не переопределён ли состав субконто отдельно от родительского счёта.
Можно ли установить субконто в уже проведённом документе без перепроведения?
Штатно — нет: движения формируются при проведении. Варианты: отменить проведение, исправить реквизиты и провести снова, либо использовать обработку прямой корректировки движений. Второй способ требует резервной копии и аккуратности, особенно в закрытых периодах.
Почему в коде значение субконто присваивается, но в проводке пусто?
Чаще всего причины три: значение установлено не на ту сторону (СубконтоДт вместо СубконтоКт), вид субконто не назначен счёту в плане счетов, либо после вашего кода движения перезаписываются другим обработчиком проведения. Проверяйте порядок выполнения подписок и модулей.
Как установить субконто для счёта, где несколько видов аналитики?
Каждый вид устанавливается отдельной строкой: обращение к коллекции Субконто по конкретному виду из плана видов характеристик. В ручной операции просто заполните все появившиеся поля — их количество равно числу видов субконто, назначенных счёту.
Что будет, если удалить вид субконто со счёта, по которому есть проводки?
Значения аналитики в существующих движениях станут недоступны и при перепроведении документов будут утеряны безвозвратно. Перед таким изменением сделайте резервную копию и убедитесь, что исторические данные по этой аналитике не нужны для отчётности.
Можно ли запретить пустые значения субконто?
Да. В форме счёта в плане счетов для вида субконто можно включить признак обязательности заполнения (в типовых конфигурациях — «Запретить использовать незаполненные значения»). После этого проведение документа с пустой аналитикой будет завершаться ошибкой.