0
mik_mihka
14.03.19
✎
13:52
|
Здравствуйте, стоит задача удалить записи в документе "Корректировка записей регистров накопления".
написал процедуру:
Процедура КнопкаВыполнитьНажатие(Кнопка)
НаборЗаписей = РегистрыНакопления.ВзаиморасчетыСПодотчетнымиЛицами.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Докум);
НаборЗаписей.Прочитать();
Для Каждого Стр Из НаборЗаписей Цикл
Если Стр.Организация = Организация Тогда
НаборЗаписей.Удалить(Стр);
КонецЕсли;
КонецЦикла;
НаборЗаписей.Записать();
Сообщить("Документ обработан");
КонецПроцедуры
Но записи не удаляются. Что не так?
|
|
1
mik_mihka
14.03.19
✎
15:41
|
Всем спасибо. Сделал через ТЗ.
Процедура КнопкаВыполнитьНажатие(Кнопка)
ИмяРегистра = Докум.ТаблицаРегистровНакопления[0].Имя;
НаборЗаписей = РегистрыНакопления[ИмяРегистра].СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Докум);
НаборЗаписей.Прочитать();
ТЗ = НаборЗаписей.Выгрузить();
ТЗ.Очистить();
ТЗ2 = НаборЗаписей.Выгрузить();
Сообщить("Обрабатывается регистр "+ ИмяРегистра);
Сообщить("Было - "+Строка(ТЗ2.Количество())+ "строк");
Для Каждого Стр Из ТЗ2 Цикл
Если ИмяРегистра = "ЗаказыПокупателей" или ИмяРегистра = "ЗаказыПоставщикам" Тогда
Если Стр.ДоговорКонтрагента.Организация <> Организация Тогда
НовСтр = ТЗ.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр,Стр);
КонецЕсли;
Иначе
Если Стр.Организация <> Организация Тогда
НовСтр = ТЗ.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр,Стр);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Сообщить("Стало - "+Строка(ТЗ.Количество())+ "строк");
НаборЗаписей.Очистить();
НаборЗаписей.Загрузить(ТЗ);
НаборЗаписей.Записать();
Сообщить("Документ обработан");
КонецПроцедуры
Может кому пригодится.
|
|