Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 21:23

Просьба помочь с кодом для очистки регистра сведений, подчиненного регистратору

Автор Holic, 28 мар 2020, 09:41

0 Пользователей и 1 гость просматривают эту тему.

Holic

В общем, нужно очистить регистр сведений, подчиненный регистратору (конф. БГУ 2.0).
Написал стандартно, как сразу в Интернете предлагается:

НаборЗаписей = РегистрыСведений.ИсторияОбменаБанкиКС.СоздатьНаборЗаписей();
НаборЗаписей.Записать();

Выходит ошибка как нас скриншоте, скриншот прилагаю (ошибка, что не установлен отбор по регистратору).
Просьба помочь - что надо еще в коде прописать, чтобы регистр очистился?

Или может быть, кто-нибудь научит - как решить возникшую проблему, так сказать, более тонко. Суть вот в чем: пользователю каким-то образом удалось сделать так, что в данном регистре теперь есть неуникальные записи и конфигурация из-за этого не хочет обновляться. Может как-то можно не тупо очистить данный регистр, а получить список записей, которые дублируются и попытаться их исправить? Ну если нет, то в крайнем случае просто очистить регистр сведений.

alex0402

Запрос = Новый Запрос("
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| РЕГИСТРАТОР
| ИЗ РегистрСведений.ИсторияОбменаБанкиКС");
Выборка = Запрос.Выполниь().Выбрать();
Пока Выборка.Следующий() Цикл
    НаборЗаписей = РегистрыСведений.ИсторияОбменаБанкиКС.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор(Выбока.Регистратор);
    НаборЗаписей.Записать();
КонецЦикла;
   
Спасибо за Сказать спасибо

Holic

Спасибо, но :(
Другая ошибка выходит. Скриншот прилагаю. Также на всякий случай скрин из конфигуратора с регистраторами данного регистра.
2 из этих регистраторов пустые - корректировка регистров и задание на импорт, в них нет ни одной записи. Записи есть только в задании на экспорт. Вот именно в этом журнале видимо, есть дубли и его и надо очистить либо найти эти дубли и исправить как-то.

DmitriyF

Цитата: Holic от 28 мар 2020, 09:41
В общем, нужно очистить регистр сведений, подчиненный регистратору (конф. БГУ 2.0).
Написал стандартно, как сразу в Интернете предлагается:
НаборЗаписей = РегистрыСведений.ИсторияОбменаБанкиКС.СоздатьНаборЗаписей();
НаборЗаписей.Записать();
Вам принципиально обработку свою написать? Просто его очистить можно с помощью обработки Универсальный обмен данными в формате XML.

Holic

Нет, свою не принципиально.
Универсальный обмен данными я пробовал. Если имеется в виду вкладка "Удаление данных", то там этого регистра нет в списке доступных для выбора. Видимо, из-за того, что он подчиненный.

АлександрВладимирович

вместо
НаборЗаписей.Отбор.Регистратор(Выбока.Регистратор);
надо
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);

Holic

Цитата: АлександрВладимирович от 29 мар 2020, 12:22
вместо
НаборЗаписей.Отбор.Регистратор(Выбока.Регистратор);
надо
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
Спасибо!
Так сработало.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск