КорСубконто<Номер субконто>

Язык запросов · BalancedExtDimension<Номер субконто>

Синтаксис и применение КорСубконто<Номер субконто> в платформе 1С:Предприятие. Описание и примеры кода.

Полное описание, параметры и ограничения

КорСубконто<Номер субконто> (BalancedExtDimension<Номер субконто>)

КорСубконто<Номер субконто> (BalancedExtDimension<Номер субконто>)
Тип: Произвольный.
Корреспондирующее субконто, в разрезе которого посчитан оборот.

Примечание:
Номер субконто начинается с 1. Набор и порядок корреспондирующих субконто определяется параметром КорСубконто<Номер субконто>.
Методическая информация

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

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

Все имена аналитики, счетов и регистров получены из точной собственной учебной схемы. В запросе не подставляются поля, которых эта схема не создаёт.

Где и как запускать

Тело серверной команды собственной обработки; только два подготовленных учебных регистра с субконто.

Подготовка

  1. В своей учебной конфигурации создайте план видов характеристик УчебныеВидыАналитикиКниг: код Строка 10, наименование 100, тип значений Строка 40. Предопределенные виды Книга и Партия должны иметь именно эти имена и строковый тип значения.

  2. Создайте план счетов УчебныеСчетаАналитикиКниг: код Строка 10, маска допускает УЧ-А и УЧ-П, максимум субконто 2, ВидыСубконто = УчебныеВидыАналитикиКниг. Предопределенные счета Актив (код УЧ-А, вид Активный) и Пассив (УЧ-П, вид Пассивный), оба не забалансовые.

  3. У каждого из двух собственных счетов в табличной части ВидыСубконто задайте первым Книга, вторым Партия; ТолькоОбороты = Ложь. Порядок важен: позиции запросов начинаются с 1. Признаки учета и дополнительные признаки субконто не создавайте.

  4. Создайте два регистра бухгалтерии с этим планом счетов: УчебныйДвойнойУчетКниг — Корреспонденция Истина; УчебныйПростойУчетКниг — Корреспонденция Ложь. В обоих итоги включены, длина уточнения периода 3, измерение Организация Строка 20 балансовое, ресурс Сумма Число 15.2 балансовый. Других ресурсов и разделителей нет.

  5. Создайте документ УчебнаяЗаписьАналитикиКниг: автонумерация, проведение разрешено. Реквизиты Организация Строка 20, НаименованиеКниги и Партия Строка 40, Сумма Число 15.2, Обратная Булево. В движения включите оба собственных регистра.

  6. Три отдельных BSL-блока подготовки поместите на уровне модуля объекта этого документа. Только один ОбработкаПроведения вызывает две собственные процедуры; вторую одноименную процедуру события создавать нельзя.

  7. Обновите только свою учебную базу с созданием предопределенных данных. Создайте и проведите собственный документ 15.10.2026 10:00: Организация Урок, НаименованиеКниги Учебная книга, Партия УРОК-1, Сумма 600, Обратная Ложь.

  8. Второй собственный документ 16.10.2026 10:00 с теми же организацией, книгой и партией: Сумма 100, Обратная Истина. Это обратная положительная запись, не отрицательная сумма. Итог по активному счету за обе записи — 500.

  9. Основные читающие запросы выполняйте в серверной команде своей обработки. Они читают только созданные свои регистры, счета и строки; здесь BSL не исполнялся и рабочий учет не изменялся.

ВидыАналитики = Новый Массив;
ВидыАналитики.Добавить(ПланыВидовХарактеристик.УчебныеВидыАналитикиКниг.Книга);
ВидыАналитики.Добавить(ПланыВидовХарактеристик.УчебныеВидыАналитикиКниг.Партия);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|    Данные.Счет,
|    Данные.Субконто1,
|    Данные.Субконто2,
|    Данные.КорСчет,
|    Данные.КорСубконто1,
|    Данные.КорСубконто2,
|    Данные.СуммаОборотДт,
|    Данные.СуммаОборотКт
|ИЗ РегистрБухгалтерии.УчебныйДвойнойУчетКниг.Обороты(&Начало, &Конец, День, Счет = &Счет, &ВидыАналитики, Организация = &Организация, КорСчет = &КорСчет, &ВидыАналитики) КАК Данные";
Запрос.УстановитьПараметр("Начало", Дата(2026, 10, 15));
Запрос.УстановитьПараметр("Конец", Дата(2026, 10, 16, 23, 59, 59));
Запрос.УстановитьПараметр("Организация", "Урок");
Запрос.УстановитьПараметр("Счет", ПланыСчетов.УчебныеСчетаАналитикиКниг.Актив);
Запрос.УстановитьПараметр("КорСчет", ПланыСчетов.УчебныеСчетаАналитикиКниг.Пассив);
Запрос.УстановитьПараметр("ВидыАналитики", ВидыАналитики);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    Сообщить(Строка(Выборка.Счет) + " | " + Строка(Выборка.Субконто1) + " | " + Строка(Выборка.Субконто2));
    Сообщить(Строка(Выборка.КорСчет) + " | " + Строка(Выборка.КорСубконто1) + " | " + Строка(Выборка.КорСубконто2));
    Сообщить(Строка(Выборка.СуммаОборотДт) + " | " + Строка(Выборка.СуммаОборотКт));
КонецЦикла;
Модуль своего документа: единственный обработчик проведения
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    ЗаполнитьДвойнойУчет();
    ЗаполнитьПростойУчет();
    Сообщить("Подготовлены движения только своих двух регистров");
КонецПроцедуры
Тот же модуль: двойная запись со своими предопределенными видами субконто
Процедура ЗаполнитьДвойнойУчет()
    Движения.УчебныйДвойнойУчетКниг.Записывать = Истина;
    Запись = Движения.УчебныйДвойнойУчетКниг.Добавить();
    Запись.Период = Дата;
    Запись.УточнениеПериода = 0;
    Запись.Активность = Истина;
    Запись.Организация = Организация;
    Актив = ПланыСчетов.УчебныеСчетаАналитикиКниг.Актив;
    Пассив = ПланыСчетов.УчебныеСчетаАналитикиКниг.Пассив;
    Запись.СчетДт = ?(Обратная, Пассив, Актив);
    Запись.СчетКт = ?(Обратная, Актив, Пассив);
    Запись.СубконтоДт.Книга = НаименованиеКниги;
    Запись.СубконтоДт.Партия = Партия;
    Запись.СубконтоКт.Книга = НаименованиеКниги;
    Запись.СубконтоКт.Партия = Партия;
    Запись.Сумма = Сумма;
КонецПроцедуры
Тот же модуль: две простые записи с собственными субконто
Процедура ЗаполнитьПростойУчет()
    Движения.УчебныйПростойУчетКниг.Записывать = Истина;
    Для Индекс = 1 По 2 Цикл
        Запись = Движения.УчебныйПростойУчетКниг.Добавить();
        Запись.Период = Дата;
        Запись.УточнениеПериода = 0;
        Запись.Активность = Истина;
        Запись.Организация = Организация;
        Запись.Сумма = Сумма;
        Запись.Счет = ?(Индекс = 1, ПланыСчетов.УчебныеСчетаАналитикиКниг.Актив,
            ПланыСчетов.УчебныеСчетаАналитикиКниг.Пассив);
        Если (Индекс = 1 И Не Обратная) Или (Индекс = 2 И Обратная) Тогда
            Запись.ВидДвижения = ВидДвиженияБухгалтерии.Дебет;
        Иначе
            Запись.ВидДвижения = ВидДвиженияБухгалтерии.Кредит;
        КонецЕсли;
        Запись.Субконто.Книга = НаименованиеКниги;
        Запись.Субконто.Партия = Партия;
    КонецЦикла;
КонецПроцедуры

Разбор по шагам

  1. Подготовьте свои предопределенные виды и счета с одинаковым порядком аналитики.

  2. Проведите два своих документа через единственный обработчик и две процедуры подготовки.

  3. Прочитайте соответствующий собственный регистр и сравните виды, значения и суммы.

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

  1. Запрос читает только два собственных документа и их аналитические значения Учебная книга / УРОК-1.

  2. Массив ВидыАналитики содержит ссылки на виды, а не строки-наименования книги. Он задаёт набор и порядок Субконто1 / Субконто2.

  3. Для активного своего счета оборот дебета 600, кредита 100, конечный остаток 500; при детализации по дням это значения разных строк периода.

Ожидаемый результат

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

На что обратить внимание

  1. Вид субконто и его значение — не одно и то же. Имя Книга относится к предопределенному виду, Учебная книга — к его строковому значению.

  2. Корреспонденция и порядок аналитики различаются в схемах. Чужой план счетов нельзя подключить только заменой имени в строке.

  3. BSL, проведение и запросы к 1С при сборке HTML не выполнялись; рабочий учет не изменялся.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.