Как перебрать реквизиты РегистрНакопленияЗапись?
☑
0
pro3ri
08.08.15
✎
09:56
добрый день.
Пишу универсальный механизм для сторно:
Наборы = Документ.ПолучитьОбъект().Движения;
Для каждого Движение Из Наборы Цикл
Движение.Прочитать();
Для каждого Запись Из Движение Цикл
Проводка = Движения[СтрЗаменить(Прав(Строка(типзнч(Движение)),(СтрДлина(Строка(типзнч(Движение)))-Найти(Строка(типзнч(Движение)),":")-1)), " ", "")].Добавить();
ЗаполнитьЗначенияСвойств(Проводка, Запись);
Проводка.Период = Дата;
Для каждого Реквизит Из Запись Цикл ОШИБКА ТУТ!!
Если ТипЗнч(Реквизит) = Тип("Число") Тогда
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;
1
ДенисЧ
08.08.15
✎
10:00
Ошибка в другом месте...
Но, к сожалению, на современном уровне биотехнологий её не исправить
2
RomanYS
08.08.15
✎
10:21
метаданные
или выгрузить в ТЗ и перебирать колонки
3
pro3ri
08.08.15
✎
10:37
(2) Наборы = Документ.ПолучитьОбъект().Движения;
Для каждого Движение Из Наборы Цикл
Движение.Прочитать();
ТЗ = Движение.Выгрузить();
Для каждого СтрокаТЧ Из ТЗ Цикл
Для каждого РеквизитЧисловой Из Движение.метаданные().Ресурсы Цикл
СтрокаТЧ[Строка(РеквизитЧисловой)] = -СтрокаТЧ[Строка(РеквизитЧисловой)];
СтрокаТЧ.Период = Дата;
СтрокаТЧ.МоментВремени = МоментВремени();
КонецЦикла;
КонецЦикла;
РегистрДвиженийТекДок = Движения[Движение.Метаданные().Имя];
ЗаполнитьЗначенияСвойств(РегистрДвиженийТекДок, Движение);
РегистрДвиженийТекДок.Загрузить();
РегистрДвиженийТекДок.Записать();
КонецЦикла;
теперь у регистров РегистрДвиженийТекДок и Движение разный набор колонок, и не идет запись...
4
hhhh
08.08.15
✎
12:10
РегистрДвиженийТекДок = Движения[Движение.Метаданные().Имя];
ЗаполнитьЗначенияСвойств(РегистрДвиженийТекДок, Движение);
РегистрДвиженийТекДок.Загрузить()
Что это? На каком языке? Вот так пробуй
Движение.Загрузить(ТЗ);
Движение.Записать();
5
pro3ri
08.08.15
✎
12:17
(4) спасибо, заработало!
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший