Здравствуйте! У меня есть обработка, в которой выполняется запрос. Результат этого запроса я выгрузил в таблицу значений. После этого я хочу создать документ и провести его по регистру бухгалтерии. Однако при попытке записи движений возникает ошибка: "Поле объекта недоступно для записи (СубконтоДт)".

Я проверил типы данных:

У поля СТР.СубконтоДТ1 тип — Справочник.ПодразделенияОрганизации.

У поля Движение.Дт — Счет 23.01, и его Субконто1 также имеет тип Справочник.ПодразделенияОрганизации.

Несмотря на то, что типы данных совпадают, ошибка все равно возникает. В чем может быть проблема?
Такая же проблема возникает у Движения.СубконтоКТ.

Код

```1c
    Процедура ЗаполнитьОпераци(ТЗ)

    мОперацииБУ = Документы.ОперацияБух.СоздатьДокумент();

    мОперацииБУ.Организация = Справочники.Организации.НайтиПоНаименованию("ФКП ТПЗ");
    мОперацииБУ.СуммаОперации = 0;
    мОперацииБУ.Дата = ТекущаяДата();
    мОперацииБУ.Содержание = "СдельныйНаряд";

    Движения = мОперацииБУ.Движения.Хозрасчетный;
    Движения.Записывать = Истина;
    Движения.БлокироватьДляИзменения = Истина;

    Для Каждого Стр ИЗ ТЗ Цикл

    Движение = Движения.Добавить();
    Движение.Период = ТекущаяДата();
    Движение.СчетДт = Стр.СчетДт;
    Движение.СубконтоДт = Стр.СубконтоДТ1;
    Движение.СчетКт = Стр.СчетКт;
    Движение.СубконтоКТ = Стр.СубконтоКТ1;
    Движение.Сумма = Стр.СуммаКНачислениюРегл;

    КонецЦикла;

    мОперацииБУ.Записать();

    мОперацииБУ.Провести();
```
---
Из синтакс помощника:
РегистрБухгалтерииСубконто.<Имя регистра бухгалтерии> (AccountingRegisterExtDimensions.<Accouting register name>)
Элементы коллекции:
КлючИЗначение
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются Ключ - вид субконто, Значение - значение субконто.
Возможно обращение к значению субконто посредством оператора [...]. В качестве аргумента передается вид субконто (ПланВидовХарактеристикСсылка.).
Свойства:
<Имя вида субконто> (<Extra dimension type name>)
Методы:
Вставить (Insert)
Количество (Count)
Очистить (Clear)
Удалить (Delete).

То есть:

```1c
    Движение.СубконтоДт.Вставить(ВидПВХ,ЗначениеСубконто);
```

или так:

```1c
    Движение.СубконтоДт[ВидПВХ] = ЗначениеСубконто;
```
---
Движение.СубконтоДт = Стр.СубконтоДТ1;
Мне что-то вспоминается, что надо бы так написать:
Движение.СубконтоДт1 = Стр.СубконтоДТ1;
(1) Движение.СубконтоКТ = Стр.СубконтоКТ1;
Движение.СубконтоКТ1 = Стр.СубконтоКТ1;
---
Нет.
---
Точно. Не просто с номером, а с индексом надо.
Нашел у себя код, который изменяет движения регистров Бухгалтерии.

```1c
    Набор = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    Набор.Отбор.Регистратор.Установить(РегистраторСсылка.Ссылка);
    Набор.Прочитать();
    //
    Набор.Очистить();
    //Заполняем новые записи
    Для каждого стр из БУ Цикл
    НоваяЗапись = Набор.Добавить();
    ЗаполнитьЗначенияСвойств(НоваяЗапись, стр);
    Для каждого СубконтоДт Из стр.СчетДт.ВидыСубконто Цикл
    НоваяЗапись.СубконтоДт[СубконтоДт.ВидСубконто] = стр["СубконтоДт"+СубконтоДт.НомерСтроки];
    КонецЦикла;
    Для каждого СубконтоКт Из стр.СчетКт.ВидыСубконто Цикл
    НоваяЗапись.СубконтоКт[СубконтоКт.ВидСубконто] = стр["СубконтоКт"+СубконтоКт.НомерСтроки];
    КонецЦикла;
    КонецЦикла;
    Набор.Записать(Истина);
```

Набор Субконто - это коллекция. И обращаться надо с ним, как с коллекцией - элементы каждый со своим индексом.
---
Спасибо, сейчас буду пробовать.
---
посмотрите в общем модуле, если типовая конфигурация.: БухгалтерскийУчет.УстановитьСубконто()
ну или Движение.СубконтоДт.Вставить(ПВХ.ВидыСубконтоХозрасчетные... (в общем тут вид субконто), Значение субконто);
---
Из синтакс помощника:
РегистрБухгалтерииСубконто.<Имя регистра бухгалтерии> (AccountingRegisterExtDimensions.<Accouting register name>)
Элементы коллекции:
КлючИЗначение
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются Ключ - вид субконто, Значение - значение субконто.
Возможно обращение к значению субконто посредством оператора [...]. В качестве аргумента передается вид субконто (ПланВидовХарактеристикСсылка.).
Свойства:
<Имя вида субконто> (<Extra dimension type name>)
Методы:
Вставить (Insert)
Количество (Count)
Очистить (Clear)
Удалить (Delete).

То есть:

```1c
    Движение.СубконтоДт.Вставить(ВидПВХ,ЗначениеСубконто);
```

или так:

```1c
    Движение.СубконтоДт[ВидПВХ] = ЗначениеСубконто;
```
---
Спасибо, сейчас буду пробовать.
---
Всем спасибо все получилось !!!