|
Как перебрать реквизиты РегистрНакопленияЗапись? |
☑ |
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) спасибо, заработало!
|
|