Не получается сформировать движения по РегиструБухгалтерии

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

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

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

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

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

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

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


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

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

или так:
Движение.СубконтоДт[ВидПВХ] = ЗначениеСубконто;
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ico 12.03.25 11:36 Сейчас в теме
(1)
Движение.СубконтоДт = Стр.СубконтоДТ1;

Мне что-то вспоминается, что надо бы так написать:
Движение.СубконтоДт1 = Стр.СубконтоДТ1;
(1)
Движение.СубконтоКТ = Стр.СубконтоКТ1;

Движение.СубконтоКТ1 = Стр.СубконтоКТ1;
3. Sashares 33 12.03.25 11:39 Сейчас в теме
6. ico 12.03.25 11:49 Сейчас в теме
(3) Точно. Не просто с номером, а с индексом надо.
Нашел у себя код, который изменяет движения регистров Бухгалтерии.
	Набор = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
	Набор.Отбор.Регистратор.Установить(РегистраторСсылка.Ссылка);
	Набор.Прочитать();
	//
	Набор.Очистить();
	//Заполняем новые записи
	Для каждого стр из БУ Цикл
		НоваяЗапись = Набор.Добавить();
		ЗаполнитьЗначенияСвойств(НоваяЗапись, стр);
		Для каждого СубконтоДт Из стр.СчетДт.ВидыСубконто Цикл
			НоваяЗапись.СубконтоДт[СубконтоДт.ВидСубконто] = стр["СубконтоДт"+СубконтоДт.НомерСтроки];
		КонецЦикла;
		Для каждого СубконтоКт Из стр.СчетКт.ВидыСубконто Цикл
			НоваяЗапись.СубконтоКт[СубконтоКт.ВидСубконто] = стр["СубконтоКт"+СубконтоКт.НомерСтроки];
		КонецЦикла;
	КонецЦикла;
	Набор.Записать(Истина);
Показать


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

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

или так:
Движение.СубконтоДт[ВидПВХ] = ЗначениеСубконто;
7. user2128470 12.03.25 11:54 Сейчас в теме
Спасибо, сейчас буду пробовать.
9. user2128470 12.03.25 14:08 Сейчас в теме
Всем спасибо все получилось !!!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот