Имя: Пароль:
1C
 
Удаление записи регистра сведений
0 NIGHTHUNTER
 
06.08.21
12:24
Подскажите пожалуйста. Имея запись регистра сведений, как ее удалить?

   ИначеЕсли ТипЗнч(Элем.Данные) = Тип("РегистрСведенийКлючЗаписи.АналитикаУчетаПопартнерам") Тогда
1 NIGHTHUNTER
 
06.08.21
12:25
(0) Посмотрел, этот регистр сведений непериодический, не зависимый.
2 ДенисЧ
 
06.08.21
12:27
Создать менеджер записи, заполнить ключевые поля, прочитать, если выбран() тогда удалить()
3 NIGHTHUNTER
 
06.08.21
12:35
Учитывая что регистр такой

http://joxi.ru/4AkXZOaH0obG5r

Как правильно будет сделать удаление?

(2) Через менеджер записи? Не через набор записей?

Имея только Партнера.
4 mikecool
 
06.08.21
12:36
Запись.Удалить()
5 mikecool
 
06.08.21
12:36
автор, когда ты уже СП читать будешь?
6 NIGHTHUNTER
 
06.08.21
12:37
Запись = РегистрыСведений.АналитикаУчетаПоПартнерам.СоздатьМенеджерЗаписи();
    Запись.Партнер = Партнер;
    Запись.Удалить();

Будет ли это правильно? учитывая что для удаления есть только партнер?
7 NIGHTHUNTER
 
06.08.21
12:38
Набор = РегистрыСведений.АналитикаУчетаПоПартнерам.СоздатьНаборЗаписей();
    Набор.Отбор.Партнер.Установить(Партнер);
    Набор.Записать();

Как лучше? Так, или (6) ?

Подскажите пожалуйста.
8 mikecool
 
06.08.21
12:38
(6) попробуй, потом нам расскажешь
9 Dmitrii
 
гуру
06.08.21
12:38
(3) Что значит "имея только Партнёра"? У тебя КлючЗаписи. Он содержи все необходимые поля.


В СП:
Описание:
РегистрСведенийКлючЗаписи
Набор значений, однозначно идентифицирующих запись регистра.
10 ДенисЧ
 
06.08.21
12:40
не.. Ну вроде по шагам всё написал...
(5) А смысл? Он всё равно не поймёт... А денег на курс по обучению чтению у него нет
11 NIGHTHUNTER
 
06.08.21
12:47
(9) Ну все нужно удалить что есть по этому партнеру, имея только его не достаточно это?
12 NIGHTHUNTER
 
06.08.21
12:54
(9) Да в Элем.Данные, есть ещё организация .

ну тогда так?

Запись = РегистрыСведений.АналитикаУчетаПоПартнерам.СоздатьМенеджерЗаписи();
    Запись.Партнер = Партнер;
    Запись.Организация = Организация;
    Запись.Удалить();
13 NIGHTHUNTER
 
06.08.21
12:55
Как будет лучше? Правильнее, (12), или так?


Набор = РегистрыСведений.АналитикаУчетаПоПартнерам.СоздатьНаборЗаписей();
    Набор.Отбор.Организация.Установить(Организация);
    Набор.Отбор.Партнер.Установить(Партнер);
    Набор.Записать();
14 NIGHTHUNTER
 
06.08.21
14:21
Почему может не удаляться запись в регистре.
По коду проходит. останавливаю отладку. запускаю. Эта запись осталась. почему не удаляется?

                    Запись                 = РегистрыСведений.ГруппыЗначенийДоступа.СоздатьМенеджерЗаписи();
                    Запись.ЗначениеДоступа = Элем.Ссылка;
                    Запись.Удалить();
15 NIGHTHUNTER
 
06.08.21
14:27
(14) Не уходит эта запись, почему?
16 NIGHTHUNTER
 
06.08.21
14:32
Подскажите пожалуйста. почему не могу программно удалить запись регистра сведений? Так же есть некоторые другие.

                    Запись         = РегистрыСведений.ИерархияПартнеров.СоздатьМенеджерЗаписи();
                    Запись.Партнер = Элем.Ссылка;
                    Запись.Удалить();                    



                    Запись         = РегистрыСведений.СоответствияОбъектовИнформационныхБаз.СоздатьМенеджерЗаписи();
                    Запись.УникальныйИдентификаторИсточника = Элем.Ссылка;
                    Запись.Удалить();
17 NIGHTHUNTER
 
06.08.21
14:35
РегистрСведений.ГруппаЗначенийДоступа

ЗначениеДоступа - тип ОпределяемыйТип.ЗначениеДоступа

Как мне его установить на партнера?
18 NIGHTHUNTER
 
06.08.21
14:47
вроде и так устанавливается, но почему запись не удаляется? Кто знает?
19 Ёпрст
 
06.08.21
14:51
(17) посмотреть вестимо, что входит в состав определяемого типа, если там есть справочник нужного вида, то просто уставноить нужную ссылку на элемент справочника
20 NIGHTHUNTER
 
06.08.21
14:54
(19) Входит!!!! Все входит. Но запись не могу программно очистить. Подскажите в чем дело? Как попробовать?

Вот по этим регистрам. по коду проходит. Но запись остаются ((9 Что я не так делаю?

http://joxi.ru/EA40apjUvoqaQA
21 NIGHTHUNTER
 
06.08.21
14:55
ИначеЕсли ТипЗнч(Элем.Данные) = Тип("РегистрСведенийКлючЗаписи.ГруппыЗначенийДоступа") Тогда
                    // РегистСведений.ГруппыЗначенийДоступа (Не периодический, не зависимый)
                    Запись                 = РегистрыСведений.ГруппыЗначенийДоступа.СоздатьМенеджерЗаписи();
                    Запись.ЗначениеДоступа = Элем.Ссылка;
                    Запись.ГруппаДанных    = Элем.Данные.ГруппаДанных;
                    Запись.Удалить();                    
                ИначеЕсли ТипЗнч(Элем.Данные) = Тип("РегистрСведенийКлючЗаписи.ИерархияПартнеров") Тогда
                    // РегистрСведений.ИерархияПартнеров (Не периодический, не зависимый)
                    Запись          = РегистрыСведений.ИерархияПартнеров.СоздатьМенеджерЗаписи();
                    Запись.Партнер  = Элем.Ссылка;
                    Запись.Родитель = Элем.Ссылка;
                    Запись.Удалить();                    
                ИначеЕсли ТипЗнч(Элем.Данные) = Тип("РегистрСведенийКлючЗаписи.КлючиДоступаКОбъектам") Тогда
                    // РегистрСведений.КлючиДоступаКОбъектам (Не периодический, не зависимый)
                    Запись        = РегистрыСведений.КлючиДоступаКОбъектам.СоздатьМенеджерЗаписи();
                    Запись.Объект = Элем.Ссылка;
                    Запись.Удалить();                    
                ИначеЕсли ТипЗнч(Элем.Данные) = Тип("РегистрСведенийКлючЗаписи.ПартнерыСегмента") Тогда
                    // РегистрСведений.ПартнерыСегмента (Не периодический, не зависимый)
                    Запись         = РегистрыСведений.ПартнерыСегмента.СоздатьМенеджерЗаписи();
                    Запись.Партнер = Элем.Ссылка;
                    Запись.Сегмент = Элем.Данные.Сегмент;
                    Запись.Удалить();                    
                ИначеЕсли ТипЗнч(Элем.Данные) = Тип("РегистрСведенийКлючЗаписи.СоответствияОбъектовИнформационныхБаз") Тогда
                    // РегистрСведений.СоответствияОбъектовИнформационныхБаз (Не периодический, не зависимый)
                    Запись         = РегистрыСведений.СоответствияОбъектовИнформационныхБаз.СоздатьМенеджерЗаписи();
                    Запись.УникальныйИдентификаторИсточника = Элем.Ссылка;
                    Запись.Удалить();                    
                КонецЕсли;
                //

Почему не удаляются записи? http://joxi.ru/EA40apjUvoqaQA
22 brainguard
 
06.08.21
14:57
(21) Чтобы удалить запись, ее надо сначала прочитать. Разработчики платформы любят пошутить )))
23 rozer76
 
06.08.21
15:05
МенеджерЗаписиОчередьПроведенияОрдеровМобиСклад = РегистрыСведений.вртОчередьПроведенияОрдеровМобиСклад.СоздатьМенеджерЗаписи();
        ЗаполнитьЗначенияСвойств(МенеджерЗаписиОчередьПроведенияОрдеровМобиСклад, ВыборкаДетальныеЗаписи);
        МенеджерЗаписиОчередьПроведенияОрдеровМобиСклад.Прочитать();
        Если МенеджерЗаписиОчередьПроведенияОрдеровМобиСклад.Выбран() Тогда
                МенеджерЗаписиОчередьПроведенияОрдеровМобиСклад.Удалить();
        КонецЕсли;
24 Ёпрст
 
06.08.21
15:07
ЗЫ: если удалять через набор, то читать не надо
25 Ёпрст
 
06.08.21
15:07
токма отбор нужный наложить, а то можно похериьт лишнего или всё.
26 NIGHTHUNTER
 
06.08.21
15:09
Я это брал с примера на сайте. То есть он не рабочий что ли?

Процедура ОчиститьЗаписиВНезависимомРегистреСведенийСОтбором(Валюта, БазоваяВалюта)
    Запись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
    Запись.Валюта = Валюта;
    Запись.БазоваяВалюта = БазоваяВалюта;
    Запись.Удалить();
КонецПроцедуры
27 NIGHTHUNTER
 
06.08.21
15:09
(25) Отбор у меня партнер
28 rozer76
 
06.08.21
15:10
(26) нет
29 rozer76
 
06.08.21
15:11
читай запись если через менеджер или через набор не читай но накладывай отбор - см (25)
30 NIGHTHUNTER
 
06.08.21
15:36
(29) Буду пробовать!

Но а отбор у меня же вот

// РегистСведений.ГруппыЗначенийДоступа (Не периодический, не зависимый)

                    Запись                 = РегистрыСведений.ГруппыЗначенийДоступа.СоздатьМенеджерЗаписи();
                    Запись.ЗначениеДоступа = Элем.Ссылка;
                    Запись.ГруппаДанных    = Элем.Данные.ГруппаДанных;
                    Запись.Удалить();                    

Это справочник партнеры, его и нужно удалить! Так что нормальный отбор. Буду сейчас тогда пробовать ещё, если (28)
31 NIGHTHUNTER
 
06.08.21
15:36
(30+)

Запись.ГруппаДанных    = Элем.Данные.ГруппаДанных;

Это справочник партнеры
32 vicof
 
06.08.21
15:37
(30) Рукалицо.
33 vicof
 
06.08.21
15:38
Менеджер записи не будет работать если нет отбора по всем измерениям для определения конкретной записи.
34 NIGHTHUNTER
 
06.08.21
15:43
(33) Ясно. Видимо в этом причина. Хотя я все накладываю что нужно.

Лучше НаборЗаписей значит пробовать?
35 Малыш Джон
 
06.08.21
15:45
(34) хмм, ну попробуй... потом впечатлениями поделишься
36 vicof
 
06.08.21
15:45
Не только пробовать, но и прочитать, ветку, помощь и наборзаписей.
37 NIGHTHUNTER
 
06.08.21
17:46
Не был выбран, не прошло вот это присвоение МенеджерЗаписи.ЗначениеДоступа = Элем.Ссылка; Почему?
В Определяемом типе ЗначеинеДоступа, есть партнеры , а Элем.Ссылка это элемент справочника партнеры !!!


                    МенеджерЗаписи = РегистрыСведений.ГруппыЗначенийДоступа.СоздатьМенеджерЗаписи();
                    МенеджерЗаписи.ЗначениеДоступа = Элем.Ссылка;
                    МенеджерЗаписи.Прочитать();
                    Если МенеджерЗаписи.Выбран() Тогда
                        МенеджерЗаписи.Удалить();
                    КонецЕсли;
38 hhhh
 
06.08.21
18:01
(37) ЗначениеДоступа это точно измерение? И других измерений нет?
39 NIGHTHUNTER
 
06.08.21
18:10
(38)

http://joxi.ru/52aWJQEugEnODr

А другие важны? Они не существенны.
40 NIGHTHUNTER
 
06.08.21
18:12
Так можно пробовать?

НаборЗаписей = РегистрыСведений.ГруппыЗначенийДоступа.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.ЗначениеДоступа.Установить(Элем.Ссылка);
НаборЗаписей.Записать();
41 Anton1307
 
06.08.21
18:26
Вариант 1 - через РегистрСведенийЗапись.
В этом случае надо устанавливать значения ВСЕХ измерений (и период, если периодический), для однозначного идентифицирования записи.
Удалить таким образом можно ТОЛЬКО ОДНУ запись.

Запись = РегистрыСведений.ИмяРегистраСведений.СоздатьМенеджерЗаписи();
Запись.Измерение1 = ЗначениеИзмерения1;
Запись.Измерение2 = ЗначениеИзмерения2;
...
Запись.Измерение5 = ЗначениеИзмерения5;
Запись.Удалить();

Вариант 2 - через РегистрСведенийНаборЗаписей();
В этом случае можно удалятся записи, соответствующие отбору.
Если надо удалить одну запись - необходимо установить отборы, соответствующие этой и только этой записи (в идеале - установить отборы на все измерения).
Удалятся все записи, соответствующие отбору.

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

В этом примере удалятся все записи, где Измерение1 = ЗначениеИзмерения1 и Измерение2 = ЗначениеИзмерения2
42 hhhh
 
06.08.21
18:27
(40) попробуйте

НаборЗаписей.ОбменДанными.Загрузка = Истина;
43 Chameleon1980
 
06.08.21
19:13
время идёт (много идёт), а человек не меняется
автор ты кто в жизни вообще?
44 NIGHTHUNTER
 
07.08.21
03:24
(41) Спасибо. Буду пробовать. Дело в том что для меня не явно какие измерения нужно задавать!
Я задал значимое. остальных вроде как и нет, они и не нужны. По этому затык.
По такой же технике. какие то регистры же очистились. А вот с некоторыми пошла проблема.
45 NIGHTHUNTER
 
07.08.21
03:25
(43) Программист 1с, я в жизни вообще. И он, только.
Мало практики работы с регистрами. Да ещё с незнакомыми.
Буду сейчас стараться.
46 NIGHTHUNTER
 
07.08.21
03:52
(41) В первом варианте нужно ещё прочитать, проверить выбрана ли запись.