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