Синтаксис и применение Субконто в платформе 1С:Предприятие. Описание и примеры кода.
Полное описание, параметры и ограничения
Субконто
Субконто (необязательный)
Тип параметра: ПланВидовХарактеристикСсылка.<Имя плана видов характеристик>, Массив, ФиксированныйМассив, СписокЗначений.
Ссылка, или массив ссылок, или фиксированный массив ссылок, или список значений, содержащий ссылки, на виды субконто.
Задает набор и порядок субконто, которыми можно оперировать в запросе. Накладывает фильтр на записи по видам субконто (если массив то по И).
Параметр не существует, если при конфигурировании для плана счетов не указаны субконто.
Значение по умолчанию: Неопределено.
Методическая информация
Практические примеры
Прочитать свои субконто: оборот простой записи
Все имена аналитики, счетов и регистров получены из точной собственной учебной схемы. В запросе не подставляются поля, которых эта схема не создаёт.
Где и как запускать
Тело серверной команды собственной обработки; только два подготовленных учебных регистра с субконто.
Подготовка
В своей учебной конфигурации создайте план видов характеристик УчебныеВидыАналитикиКниг: код Строка 10, наименование 100, тип значений Строка 40. Предопределенные виды Книга и Партия должны иметь именно эти имена и строковый тип значения.
Создайте план счетов УчебныеСчетаАналитикиКниг: код Строка 10, маска допускает УЧ-А и УЧ-П, максимум субконто 2, ВидыСубконто = УчебныеВидыАналитикиКниг. Предопределенные счета Актив (код УЧ-А, вид Активный) и Пассив (УЧ-П, вид Пассивный), оба не забалансовые.
У каждого из двух собственных счетов в табличной части ВидыСубконто задайте первым Книга, вторым Партия; ТолькоОбороты = Ложь. Порядок важен: позиции запросов начинаются с 1. Признаки учета и дополнительные признаки субконто не создавайте.
Создайте два регистра бухгалтерии с этим планом счетов: УчебныйДвойнойУчетКниг — Корреспонденция Истина; УчебныйПростойУчетКниг — Корреспонденция Ложь. В обоих итоги включены, длина уточнения периода 3, измерение Организация Строка 20 балансовое, ресурс Сумма Число 15.2 балансовый. Других ресурсов и разделителей нет.
Создайте документ УчебнаяЗаписьАналитикиКниг: автонумерация, проведение разрешено. Реквизиты Организация Строка 20, НаименованиеКниги и Партия Строка 40, Сумма Число 15.2, Обратная Булево. В движения включите оба собственных регистра.
Три отдельных BSL-блока подготовки поместите на уровне модуля объекта этого документа. Только один ОбработкаПроведения вызывает две собственные процедуры; вторую одноименную процедуру события создавать нельзя.
Обновите только свою учебную базу с созданием предопределенных данных. Создайте и проведите собственный документ 15.10.2026 10:00: Организация Урок, НаименованиеКниги Учебная книга, Партия УРОК-1, Сумма 600, Обратная Ложь.
Второй собственный документ 16.10.2026 10:00 с теми же организацией, книгой и партией: Сумма 100, Обратная Истина. Это обратная положительная запись, не отрицательная сумма. Итог по активному счету за обе записи — 500.
Основные читающие запросы выполняйте в серверной команде своей обработки. Они читают только созданные свои регистры, счета и строки; здесь BSL не исполнялся и рабочий учет не изменялся.
ВидыАналитики = Новый Массив;
ВидыАналитики.Добавить(ПланыВидовХарактеристик.УчебныеВидыАналитикиКниг.Книга);
ВидыАналитики.Добавить(ПланыВидовХарактеристик.УчебныеВидыАналитикиКниг.Партия);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Данные.Счет,
| Данные.Субконто1,
| Данные.Субконто2,
| Данные.СуммаОборотДт,
| Данные.СуммаОборотКт
|ИЗ РегистрБухгалтерии.УчебныйПростойУчетКниг.Обороты(&Начало, &Конец, День, Счет = &Счет, &ВидыАналитики, Организация = &Организация) КАК Данные";
Запрос.УстановитьПараметр("Начало", Дата(2026, 10, 15));
Запрос.УстановитьПараметр("Конец", Дата(2026, 10, 16, 23, 59, 59));
Запрос.УстановитьПараметр("Организация", "Урок");
Запрос.УстановитьПараметр("Счет", ПланыСчетов.УчебныеСчетаАналитикиКниг.Актив);
Запрос.УстановитьПараметр("ВидыАналитики", ВидыАналитики);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Строка(Выборка.Счет) + " | " + Строка(Выборка.Субконто1) + " | " + Строка(Выборка.Субконто2));
Сообщить(Строка(Выборка.СуммаОборотДт) + " | " + Строка(Выборка.СуммаОборотКт));
КонецЦикла;Модуль своего документа: единственный обработчик проведения
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
ЗаполнитьДвойнойУчет();
ЗаполнитьПростойУчет();
Сообщить("Подготовлены движения только своих двух регистров");
КонецПроцедурыТот же модуль: двойная запись со своими предопределенными видами субконто
Процедура ЗаполнитьДвойнойУчет()
Движения.УчебныйДвойнойУчетКниг.Записывать = Истина;
Запись = Движения.УчебныйДвойнойУчетКниг.Добавить();
Запись.Период = Дата;
Запись.УточнениеПериода = 0;
Запись.Активность = Истина;
Запись.Организация = Организация;
Актив = ПланыСчетов.УчебныеСчетаАналитикиКниг.Актив;
Пассив = ПланыСчетов.УчебныеСчетаАналитикиКниг.Пассив;
Запись.СчетДт = ?(Обратная, Пассив, Актив);
Запись.СчетКт = ?(Обратная, Актив, Пассив);
Запись.СубконтоДт.Книга = НаименованиеКниги;
Запись.СубконтоДт.Партия = Партия;
Запись.СубконтоКт.Книга = НаименованиеКниги;
Запись.СубконтоКт.Партия = Партия;
Запись.Сумма = Сумма;
КонецПроцедурыТот же модуль: две простые записи с собственными субконто
Процедура ЗаполнитьПростойУчет()
Движения.УчебныйПростойУчетКниг.Записывать = Истина;
Для Индекс = 1 По 2 Цикл
Запись = Движения.УчебныйПростойУчетКниг.Добавить();
Запись.Период = Дата;
Запись.УточнениеПериода = 0;
Запись.Активность = Истина;
Запись.Организация = Организация;
Запись.Сумма = Сумма;
Запись.Счет = ?(Индекс = 1, ПланыСчетов.УчебныеСчетаАналитикиКниг.Актив,
ПланыСчетов.УчебныеСчетаАналитикиКниг.Пассив);
Если (Индекс = 1 И Не Обратная) Или (Индекс = 2 И Обратная) Тогда
Запись.ВидДвижения = ВидДвиженияБухгалтерии.Дебет;
Иначе
Запись.ВидДвижения = ВидДвиженияБухгалтерии.Кредит;
КонецЕсли;
Запись.Субконто.Книга = НаименованиеКниги;
Запись.Субконто.Партия = Партия;
КонецЦикла;
КонецПроцедурыРазбор по шагам
Подготовьте свои предопределенные виды и счета с одинаковым порядком аналитики.
Проведите два своих документа через единственный обработчик и две процедуры подготовки.
Прочитайте соответствующий собственный регистр и сравните виды, значения и суммы.
Как проверить результат
Запрос читает только два собственных документа и их аналитические значения Учебная книга / УРОК-1.
Массив ВидыАналитики содержит ссылки на виды, а не строки-наименования книги. Он задаёт набор и порядок Субконто1 / Субконто2.
Для активного своего счета оборот дебета 600, кредита 100, конечный остаток 500; при детализации по дням это значения разных строк периода.
Ожидаемый результат
Позиционные и именованные значения аналитики связаны с настоящими собственными проводками и точными условиями виртуальной таблицы.
На что обратить внимание
Вид субконто и его значение — не одно и то же. Имя Книга относится к предопределенному виду, Учебная книга — к его строковому значению.
Корреспонденция и порядок аналитики различаются в схемах. Чужой план счетов нельзя подключить только заменой имени в строке.
BSL, проведение и запросы к 1С при сборке HTML не выполнялись; рабочий учет не изменялся.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.