Имя: Пароль:
1C
1С v8
Регистр Накопления 1с8.2 удаление записей по отбору.
0 mik_mihka
 
14.03.19
13:52
Здравствуйте, стоит задача удалить записи в документе "Корректировка записей регистров накопления".
написал процедуру:

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

Но записи не удаляются. Что не так?
1 mik_mihka
 
14.03.19
15:41
Всем спасибо. Сделал через ТЗ.

Процедура КнопкаВыполнитьНажатие(Кнопка)
    ИмяРегистра = Докум.ТаблицаРегистровНакопления[0].Имя;
    НаборЗаписей = РегистрыНакопления[ИмяРегистра].СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(Докум);
    НаборЗаписей.Прочитать();
    ТЗ = НаборЗаписей.Выгрузить();
    ТЗ.Очистить();
    ТЗ2 = НаборЗаписей.Выгрузить();
    Сообщить("Обрабатывается регистр "+ ИмяРегистра);
    Сообщить("Было - "+Строка(ТЗ2.Количество())+ "строк");
    Для Каждого Стр Из ТЗ2 Цикл
        Если ИмяРегистра = "ЗаказыПокупателей" или ИмяРегистра = "ЗаказыПоставщикам" Тогда
            Если Стр.ДоговорКонтрагента.Организация <> Организация Тогда
                НовСтр = ТЗ.Добавить();
                ЗаполнитьЗначенияСвойств(НовСтр,Стр);
            КонецЕсли;
        Иначе
            Если Стр.Организация <> Организация Тогда
                НовСтр = ТЗ.Добавить();
                ЗаполнитьЗначенияСвойств(НовСтр,Стр);
            КонецЕсли;
        КонецЕсли;    
    КонецЦикла;    
    Сообщить("Стало - "+Строка(ТЗ.Количество())+ "строк");
    НаборЗаписей.Очистить();
    НаборЗаписей.Загрузить(ТЗ);
    НаборЗаписей.Записать();
    Сообщить("Документ обработан");
КонецПроцедуры


Может кому пригодится.