Имя: Пароль:
1C
1С v8
Отмена регистрации записи регистра в РИБ
0 AlexRu2015
 
16.01.18
11:47
Добрый день. Не убирается регистрация записей регистра сведений в в РИБ. Делаю по учебнику , запросом выбираю записи, для каждой устанавливаю отбор регистра по всем измерениям и потом
ПланыОбмена.УдалитьРегистрациюИзменений(УзелДляОбработки, Набор);
Никкакой ошибки нет, просто записи о регистрации не пропадают. Что делать?
вот код.

Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ДанныеОбработанныеВЦентральномУзлеРИБ.УзелПланаОбмена КАК УзелПланаОбмена,
        |    ДанныеОбработанныеВЦентральномУзлеРИБ.ОбъектМетаданных КАК ОбъектМетаданных,
        |    ДанныеОбработанныеВЦентральномУзлеРИБ.Данные КАК Данные,
        |    ДанныеОбработанныеВЦентральномУзлеРИБ.Очередь КАК Очередь,
        |    ДанныеОбработанныеВЦентральномУзлеРИБ.КлючУникальности КАК КлючУникальности
        |ИЗ
        |    РегистрСведений.ДанныеОбработанныеВЦентральномУзлеРИБ КАК ДанныеОбработанныеВЦентральномУзлеРИБ
        |ГДЕ
        |    ДанныеОбработанныеВЦентральномУзлеРИБ.УзелПланаОбмена = &УзелПланаОбмена";
    
    Запрос.УстановитьПараметр("УзелПланаОбмена", УзелКУдалению);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        
        Набор = РегистрыСведений.ДанныеОбработанныеВЦентральномУзлеРИБ.СоздатьНаборЗаписей();
              
        Набор.Отбор.УзелПланаОбмена.Установить(ВыборкаДетальныеЗаписи.УзелПланаОбмена);
        Набор.Отбор.ОбъектМетаданных.Установить(ВыборкаДетальныеЗаписи.ОбъектМетаданных);
        Набор.Отбор.Данные.Установить(ВыборкаДетальныеЗаписи.Данные);            
        Набор.Отбор.Очередь.Установить(ВыборкаДетальныеЗаписи.Очередь);            
        Набор.Отбор.КлючУникальности.Установить(ВыборкаДетальныеЗаписи.КлючУникальности);    

        //// Здесь в отладчике видна одна запись регистра
        Набор.Прочитать();
        
        ПланыОбмена.УдалитьРегистрациюИзменений(УзелДляОбработки, Набор);    
        
    КонецЦикла;
1 cw014
 
16.01.18
11:48
А откуда должны пропасть?
2 cw014
 
16.01.18
11:48
Из Плана обмена или из регистра сведений?
3 Darych
 
16.01.18
11:59
УзелДляОбработки - что у тебя?
4 AlexRu2015
 
16.01.18
12:12
(1) Пропасть должны из списка зарегистрированых к обмену

(3)
УзелДляОбработки - Это тот узел на который зарегистрированы записи регистра,  а не должны были и надо удалить. Выбирается в форме
УзелКУдалению - Это значение измерения регистра тоже узел но другой его-то и надо удалить.
5 Serg_1960
 
16.01.18
13:06
(4) Вы запутались в трёх соснах, как мне кажется. В попытке читать наборы регистрации изменений с одного узла, чтобы удалить регистрацию с другого.

Запрос.УстановитьПараметр("УзелПланаОбмена", УзелКУдалению);
...
Набор.Отбор.УзелПланаОбмена.Установить(ВыборкаДетальныеЗаписи.УзелПланаОбмена);
...
ПланыОбмена.УдалитьРегистрациюИзменений(УзелДляОбработки, Набор)
6 AlexRu2015
 
17.01.18
10:57
(5) Не запутался. Узал обмена является первым измерением регистра сведений. Регистрироваться должны только записи по своему узлу обмена. В результате ошибки стали регистрироваться записи всех узлов везде. Ошибка уже исправлена, но надо удалить лишние записи которые уже зарегистрировались на чужих узлах, а то ходят огромные пакеты.
Вообще вопрос не  в том зачем я это делаю а чисто технически про удаление регистрации из записей регистра сведений.
7 Мимохожий Однако
 
17.01.18
11:02
(6) Через Состав плана обмена не удаётся руками?
8 AlexRu2015
 
17.01.18
11:19
(7)
Удается только много их там хочется ускорить
9 AlexRu2015
 
17.01.18
11:20
собственно уже все по удаляли руками, интерес остался чисто теоретический
10 Serg_1960
 
17.01.18
11:26
Если чисто теоретически, то чисто технически в отборе набора должны быть указаны все измерения регистра. Структура регистра мне неизвестна и потому, как оговорится, "мяч на вашей стороне".
11 AlexRu2015
 
17.01.18
11:51
(10)
В первом посте написано что устанавливается отбор по всем измерениям.
12 hhhh
 
17.01.18
12:20
(11) там вроде не по всем надо
13 hhhh
 
17.01.18
12:20
(11) галочки в измерениях какие-то надо смотреть
14 Serg_1960
 
17.01.18
12:27
(12) Эээ... спасибо за замечание. Я как-то забыл на этом акцентировать внимание :(

Вот правильнее: во втором  параметре должен быть указан набор записей с установленным отборам по всем измерениям, у которых стоит признак "основной отбор". (11) Может быть из-за этого мы друг друга не понимали.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн