Имя: Пароль:
1C
1С v8
Удалили записи с РС Независимый и периодический. Как удалить теперь регистрации их?
0 Обработка
 
18.10.21
13:58
Узлов много 50 шт
РС записей с 18 года.
Хотел почистить до 21 года.
Почистил но в обмене остались регистрации изменения.
Как их теперь почистить?

Вот запрос дает результаты.

ВЫБРАТЬ
    СтатусыДоставкиТоваровИзменения.Узел КАК Узел,
    СтатусыДоставкиТоваровИзменения.НомерСообщения КАК НомерСообщения,
    СтатусыДоставкиТоваровИзменения.Период КАК Период,
    СтатусыДоставкиТоваровИзменения.ЗаказНаПеремещение КАК ЗаказНаПеремещение
ИЗ
    РегистрСведений.СтатусыДоставкиТоваров.Изменения КАК СтатусыДоставкиТоваровИзменения
ГДЕ
    СтатусыДоставкиТоваровИзменения.Период <= &Период


Но хотел через наборы записей удалить. Не получается.

Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    СинхронизацияКассаУпрощенная.Ссылка  как Узел
        |ИЗ
        |    ПланОбмена.СинхронизацияКассаУпрощенная КАК СинхронизацияКассаУпрощенная
        |ГДЕ
        |    Не СинхронизацияКассаУпрощенная.Код = &Код";
    Запрос.УстановитьПараметр("Код", "РО");
    ТаблицаЗначений = Запрос.Выполнить().Выгрузить();
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ЗаказНаПеремещение.Ссылка Как ДокЗаказНаПеремещение
        |ИЗ
        |    Документ.ЗаказНаПеремещение КАК ЗаказНаПеремещение
        |ГДЕ
        |    ЗаказНаПеремещение.Дата < &Дата";
    
    Запрос.УстановитьПараметр("Дата", ДатаДо);
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Для каждого стр из ТаблицаЗначений Цикл
            НаборЗаписей = РегистрыСведений.СтатусыДоставкиТоваров.СоздатьНаборЗаписей();
            НаборЗаписей.Отбор.ЗаказНаПеремещение.Установить(ВыборкаДетальныеЗаписи.ДокЗаказНаПеремещение);
            ПланыОбмена.УдалитьРегистрациюИзменений(стр.Узел,НаборЗаписей);
        КонецЦикла;
    //    Прервать;
    КонецЦикла;
1 Обработка
 
18.10.21
13:59
+ Ошибка на  ПланыОбмена.УдалитьРегистрациюИзменений(стр.Узел,НаборЗаписей);

Второй параметр...
2 Обработка
 
18.10.21
14:01
А можно ли так:

Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    СтатусыДоставкиТоваровИзменения.Узел,
        |    СтатусыДоставкиТоваровИзменения.НомерСообщения,
        |    СтатусыДоставкиТоваровИзменения.Период,
        |    СтатусыДоставкиТоваровИзменения.ЗаказНаПеремещение
        |ИЗ
        |    РегистрСведений.СтатусыДоставкиТоваров.Изменения КАК СтатусыДоставкиТоваровИзменения
        |ГДЕ
        |    СтатусыДоставкиТоваровИзменения.Период < &Период";
    
    Запрос.УстановитьПараметр("Период", ДатаДо);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        НаборЗаписей = РегистрыСведений.СМС_УведомленияПоСтатусамДоставкиЗаказов.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.ЗаказНаПеремещение.Установить(ВыборкаДетальныеЗаписи.ЗаказНаПеремещение);
       // НаборЗаписей.Прочитать();
        ПланыОбмена.УдалитьРегистрациюИзменений(ВыборкаДетальныеЗаписи.Узел,НаборЗаписей);
        Прервать;
    КонецЦикла;
3 fisher
 
18.10.21
14:06
Туда кажись КлючЗаписей надо подсовывать а не НаборЗаписей.
Но я бы тупо в скуле почистил.
4 Kassern
 
18.10.21
14:09
(2) Есть же СП...
<Данные> (необязательный)
Тип: Метаданные, Неопределено, УдалениеОбъекта, Число, Массив; <Данные>.
Значением данного параметра может быть объект метаданных, объект, представляющий данные, хранимые в базе данных, такой как документ, элемент справочника, счет бухгалтерского учета, менеджер записи константы, набор записей регистра и т. п., ссылка на объект базы данных, а также Неопределено.
5 youalex
 
18.10.21
14:12
Набор записей с нужными отборами передавай.
Для подчиненных регистратору - отбор по регистратору, для независимых - по измерениями с ОсновнойОтбор (вроде)
Собственно, структура полей отбора отражена в структуре таблицы изменений регистра.
6 fisher
 
18.10.21
14:14
7 Обработка
 
18.10.21
14:28
(6) Читал эту ветку.
Там человек удаляет регистрации в процессе очистки.
Видимо ссылка еще есть на момент удаления записи РС.
А у меня случай уже их удалил и обработка уже завершена.
8 Обработка
 
18.10.21
14:29
Вернее ссылка на набор.
9 youalex
 
18.10.21
14:50
10 Ёпрст
 
18.10.21
14:50
(2)
Прочитать() сделай у набора перед ПланыОбмена.УдалитьРегистрациюИзменений и всё заработаетъ
11 fisher
 
18.10.21
14:53
(7) Комментарий (58) в той ветке тоже читал?
12 Обработка
 
18.10.21
14:57
(11) Читал. У меня всего один такой.
13 fisher
 
18.10.21
14:59
(12) Отлично
14 fisher
 
18.10.21
15:03
Тогда по-идее код из (2) должен работать. "Прервать" там сознательно стоит? То есть ты на одной записи проверяешь?
15 fisher
 
18.10.21
15:08
Насколько я понимаю, в таблице изменений регистра платформа добавляет колонки для всех полей основного отбора регистра. При удалении регистрации их значения берутся из отборов переданного набора записей. То есть на первый взгляд все должно работать. Но на практике с такой задачей не сталкивался, может и еще ньюанс есть. Может в самом деле еще прочитать нужно, например.
16 fisher
 
18.10.21
15:09
Хотя глупо было бы. А в твоем случае - еще и бесполезно :)
17 fisher
 
18.10.21
15:09
Хотя это глупо было бы. А в твоем случае - еще и бесполезно :)
18 fisher
 
18.10.21
15:11
Третий раз что ли написать для ровного счета... Хотя ладно. У программистов два раза - тоже ровный счет.
19 Обработка
 
18.10.21
15:13
Не хочет гад.
И прочитать пробовал.
20 fisher
 
18.10.21
15:16
(19) Может, глаз замылился? Добавь вывод количества записей в таблице изменений до удаления регистрации и после.
21 VladZ
 
18.10.21
15:16
(0) Открыть обработку "Регистрация изменений" в режиме предприятия. Удалить через "Отменить регистрацию"
22 fisher
 
18.10.21
15:17
Погоди. Если РС периодический, то период наверное тоже нужен.
23 fisher
 
18.10.21
15:18
В отборах нужен, в смысле.
24 Обработка
 
18.10.21
15:20
(20) Так у  меня на этой строчке выходит ошибка...

{ВнешняяОбработка.УдалениезаписейРССтатусыИСМС.Форма.Форма.Форма(138)}: Ошибка при вызове метода контекста (УдалитьРегистрациюИзменений)
        ПланыОбмена.УдалитьРегистрациюИзменений(ВыборкаДетальныеЗаписи.Узел,НаборЗаписей);
по причине:
Недопустимое значение параметра (параметр номер '2')
25 youalex
 
18.10.21
15:21
(22) там по галке "основной отбор по периоду"
26 Обработка
 
18.10.21
15:25
По периоду включил в отбор ошибки нет.
Кажись уже удаляет. Сейчас проверю.