Здравствуйте! Подскажите почему не заполняется Субконто "статьи затрат" у 29 счета?
Исходный код
```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ХозрасчетныйОбороты.Счет,
    | ХозрасчетныйОбороты.Субконто1,
    | ХозрасчетныйОбороты.Субконто2,
    | ХозрасчетныйОбороты.Организация,
    | ХозрасчетныйОбороты.СуммаОборотДт КАК ПришёлТовар,
    | ХозрасчетныйОбороты.СуммаОборотКт КАК УшёлТовар,
    | ХозрасчетныйОбороты.СуммаОборот КАК Разница
    |ИЗ
    | РегистрБухгалтерии.Хозрасчетный.Обороты(
    | &Нач, &Кон,
    | Период,
    | Счет = &ВыбСчет,
    | &ВидыСубконто
    | )
    |КАК ХозрасчетныйОбороты";

    Запрос.УстановитьПараметр("ВыбСчет", ПланыСчетов.Хозрасчетный.НайтиПоКоду("29"));
    Запрос.УстановитьПараметр("Нач", НачалоМесяца(Объект.МесяцРасчета));
    Запрос.УстановитьПараметр("Кон", КонецМесяца(Объект.МесяцРасчета));

    ВидыСубконто = Новый Массив;

    ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НоменклатурныеГруппы);
    ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат);
    Запрос.УстановитьПараметр("ВидыСубконто", ВидыСубконто);

    РезультатЗапроса = Запрос.Выполнить();
    Записи = РезультатЗапроса.Выбрать();

    Доля = ПолучитьДолюГовядины();

    Пока Записи.Следующий() Цикл
    Сумма = Записи.Разница;
    ДоляГовядины = Окр(Сумма * Доля, 2);
    ДоляСвинины = Сумма - ДоляГовядины;

    Если ДоляГовядины > 0 Тогда
    СтрДв = Дв.Добавить();
    СтрДв.Активность = Истина;
    СтрДв.Период = Док.Дата;
    СтрДв.Организация = Док.Организация;
    СтрДв.ПодразделениеКт = Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию("Столовая");
    СтрДв.СчетКт = Записи.Счет;
    СтрДв.СубконтоКт.НоменклатурныеГруппы = Записи.Субконто1;
    СтрДв.СубконтоКт.СтатьиЗатрат = Записи.Субконто2;

    СтрДв.ПодразделениеДт = Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию("Основное подразделение");
    СтрДв.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("20.01");
    СтрДв.СубконтоДт.НоменклатурныеГруппы = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Говядина");
    СтрДв.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоНаименованию("Списание материалов (закуп)");
    СтрДв.Сумма = ДоляГовядины;
    СтрДв.СуммаНУДТ = СтрДв.Сумма;
    СтрДв.СуммаНУКТ = СтрДв.Сумма;
    КонецЕсли;
    Если ДоляСвинины > 0 Тогда
    СтрДв = Дв.Добавить();
    СтрДв.Активность = Истина;
    СтрДв.Период = Док.Дата;
    СтрДв.Организация = Док.Организация;
    СтрДв.ПодразделениеКт = Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию("Столовая");
    СтрДв.СчетКт = Записи.Счет;
    СтрДв.СубконтоКт.НоменклатурныеГруппы = Записи.Субконто1;
    СтрДв.СубконтоКт.СтатьиЗатрат = Записи.Субконто2;

    СтрДв.ПодразделениеДт = Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию("Основное подразделение");
    СтрДв.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("20.01");
    СтрДв.СубконтоДт.НоменклатурныеГруппы = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Свинина");
    СтрДв.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоНаименованию("Списание материалов (закуп)");
    СтрДв.Сумма = ДоляСвинины;
    СтрДв.СуммаНУДТ = СтрДв.Сумма;
    СтрДв.СуммаНУКТ=СтрДв.Сумма;
    КонецЕсли;
    КонецЦикла;
```

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

```1c
    ТВр = Дв.Выгрузить();
    ТВр.Свернуть(
    "Период,Активность,Организация,
    |ПодразделениеДТ,ПодразделениеКТ,
    |СчетДт,СчетКт,
    |СубконтоДт1,СубконтоДт2,
    |ВидСубконтоДт1,ВидСубконтоДт2,
    |СубконтоКт1, ВидСубконтоКт1",
    "КоличествоДт,Сумма,СуммаНУДт,СуммаНУКт");
    Дв.Загрузить(ТВр);
    Для каждого Эл из Дв Цикл
    Эл.НеКорректироватьСтоимостьАвтоматически=Истина;
    КонецЦикла;
    Дв.Записать(Истина);
```

Тут сворачивается таблица и тут нет "СубконтоКт2"! Добавил необходимую строчку и все встало как надо.
---
ПланыСчетов.Хозрасчетный.НайтиПоКоду("29")
Это как-то некрасиво. Нужно так:

```1c
    ПланыСчетов.Хозрасчетный.ОбслуживающиеПроизводства
```

Массив ВидыСубконто я считаю лишнее. Если бы вы выбирали несколько счетов, где нужные субконто стоят на разных местах. Например, 20.01 и 26 субконто СтатьиЗатрат. Тогда это стоило бы сделать. А для одного счета это лишнее. И есть ли в оборотах 29 счета заполненные субконто СтатьиЗатрат?
---
Спасибо за советы.
Да, на 29 есть СтатьиЗатрат и руками все ставится замечательно.
---
```1c
    ////////////////////////////////////////////////////////////////////////////////
    // ПРОЦЕДУРЫ И ФУНКЦИИ РАБОТЫ СО СЧЕТАМИ И СУБКОНТО

    // Процедура устанавливает субконто на счете. Если такое субконто на счете
    // отсутствует, то ничего не делается.
    //
    // Параметры:
    // Счет - ПланСчетовСсылка.Хозрасчетный - Счет, к которому относится субконто.
    // Субконто - РегистрБухгалтерииСубконто.Хозрасчетный - Набор субконто.
    // ИмяСубконто - Строка, Число - Номер, имя или вид устанавливаемого субконто.
    // ЗначениеСубконто - Произвольный - Значение устанавливаемого субконто.
    //
    Процедура УстановитьСубконто(Счет, Субконто, ИмяСубконто, ЗначениеСубконто) Экспорт
```

Вызывать:

```1c
    БухгалтерскийУчет.УстановитьСубконто(....
```
---
Переписал с использованием процедуры УстановитьСубконто()

```1c
    //СтрДв.СубконтоКт.НоменклатурныеГруппы = Записи.Субконто1;
    //СтрДв.СубконтоКт.СтатьиЗатрат = Записи.Субконто2;

    БухгалтерскийУчет.УстановитьСубконто(
    СтрДв.СчетКт,
    СтрДв.СубконтоКт,
    "НоменклатурныеГруппы",
    Записи.Субконто1
    );
    БухгалтерскийУчет.УстановитьСубконто(
    СтрДв.СчетКт,
    СтрДв.СубконтоКт,
    "СтатьиЗатрат",
    Записи.Субконто2
    );
```

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

```1c
    ТВр = Дв.Выгрузить();
    ТВр.Свернуть(
    "Период,Активность,Организация,
    |ПодразделениеДТ,ПодразделениеКТ,
    |СчетДт,СчетКт,
    |СубконтоДт1,СубконтоДт2,
    |ВидСубконтоДт1,ВидСубконтоДт2,
    |СубконтоКт1, ВидСубконтоКт1",
    "КоличествоДт,Сумма,СуммаНУДт,СуммаНУКт");
    Дв.Загрузить(ТВр);
    Для каждого Эл из Дв Цикл
    Эл.НеКорректироватьСтоимостьАвтоматически=Истина;
    КонецЦикла;
    Дв.Записать(Истина);
```

Тут сворачивается таблица и тут нет "СубконтоКт2"! Добавил необходимую строчку и все встало как надо.