|
Удаление записи из регистра сведений Волшебник, DiMel_77, lEvGl, Климов Сергей, Admin_Net_1C, Prog_man, Eiffil123, dmt, PLUT, rozer76, okmail, ЕRPe, maxab72, Буковка, Гипервизор, Hawk_1c, nick86, Жеглофф, Мультук, Aleksey, dchumak, ДобрыйПутник, stix2010, d4rkmesa, craxx, Скучный бух, Галахад, privetik, Metman, Mankubus, DemonShinji2, petr_ivanov, trdm, elka302, osa1C, orakool, ProxyInspector, RVN, zenik, tatmix, denk, Silgis, runuts, NorthWind, AndreyZhukov
| ☑ | ||
---|---|---|---|---|
0
ДобрыйПутник
21.11.24
✎
16:48
|
Здравствуйте, не пойму почему не удаляются запись из регистра сведений
https://imgur.com/a/PSKyYhb Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СостоянияОригиналовПервичныхДокументов.Владелец КАК Владелец, | СостоянияОригиналовПервичныхДокументов.ПервичныйДокумент КАК ПервичныйДокумент, | СостоянияОригиналовПервичныхДокументов.ОбщееСостояние КАК ОбщееСостояние, | СостоянияОригиналовПервичныхДокументов.ФормаИзвне КАК ФормаИзвне, | СостоянияОригиналовПервичныхДокументов.Сотрудник КАК Сотрудник |ИЗ | РегистрСведений.СостоянияОригиналовПервичныхДокументов КАК СостоянияОригиналовПервичныхДокументов |ГДЕ | СостоянияОригиналовПервичныхДокументов.Владелец = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", Ссылка); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Если Выборка.Следующий() Тогда Запись = РегистрыСведений.СостоянияОригиналовПервичныхДокументов.СоздатьМенеджерЗаписи(); Запись.Владелец = Выборка.Владелец; Запись.ПервичныйДокумент = Выборка.ПервичныйДокумент; Запись.ОбщееСостояние = Выборка.ОбщееСостояние; Запись.ФормаИзвне = Выборка.ФормаИзвне; Запись.Сотрудник = Выборка.Сотрудник; Запись.Прочитать(); Запись.Удалить(); Конецесли |
|||
1
Волшебник
21.11.24
✎
17:00
|
а может удаляется?
|
|||
2
ДобрыйПутник
21.11.24
✎
17:02
|
(1) Неа(
|
|||
3
Волшебник
21.11.24
✎
17:03
|
(2) Покажите регистр
|
|||
4
Волшебник
21.11.24
✎
17:04
|
Это замените на цикл
|
|||
5
ДобрыйПутник
21.11.24
✎
17:05
|
(4) ну в выборке все равно одно значение, потому что строго по ссылке задается
|
|||
6
Волшебник
21.11.24
✎
17:06
|
(5) Там может быть несколько записей, потому что Владелец - только одно из измерений.
|
|||
7
ДобрыйПутник
21.11.24
✎
17:08
|
||||
8
ДобрыйПутник
21.11.24
✎
17:08
|
(6) https://imgur.com/a/KxoBr1Q
С таким владельцем только 1 запись |
|||
9
PLUT
21.11.24
✎
17:17
|
(5) после Прочитать() еще магическое заклинание нужно
Если Запись.Выбран() Тады Запись.Записать() вот пример рабочего кодаПока Выборка.Следующий() Цикл МЗ = РегистрыСведений.Какой-тотамРегистр.СоздатьМенеджерЗаписи(); МЗ.Документ = Выборка.Документ; МЗ.Прочитать(); Если МЗ.Выбран() Тогда МЗ.Удалить(); КонецЕсли; КонецЦикла; |
|||
10
ДобрыйПутник
21.11.24
✎
17:16
|
(9) https://imgur.com/a/GIkHpl4
Стало хоть ругаться на что то, но поле владелец не пустое в (7) видно |
|||
11
formista2000
21.11.24
✎
17:19
|
(10) Чё там с периодом?
|
|||
12
ДобрыйПутник
21.11.24
✎
17:20
|
(11) не совсем понял
|
|||
13
ДобрыйПутник
21.11.24
✎
17:20
|
(9) &НаСервере
Процедура УдалитьЗаписьНаСервере(Ссылка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СостоянияОригиналовПервичныхДокументов.Владелец КАК Владелец, | СостоянияОригиналовПервичныхДокументов.ПервичныйДокумент КАК ПервичныйДокумент, | СостоянияОригиналовПервичныхДокументов.ОбщееСостояние КАК ОбщееСостояние, | СостоянияОригиналовПервичныхДокументов.ФормаИзвне КАК ФормаИзвне, | СостоянияОригиналовПервичныхДокументов.Сотрудник КАК Сотрудник |ИЗ | РегистрСведений.СостоянияОригиналовПервичныхДокументов КАК СостоянияОригиналовПервичныхДокументов |ГДЕ | СостоянияОригиналовПервичныхДокументов.Владелец = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", Ссылка); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Запись = РегистрыСведений.СостоянияОригиналовПервичныхДокументов.СоздатьМенеджерЗаписи(); Запись.Владелец = Выборка.Владелец; Запись.ПервичныйДокумент = Выборка.ПервичныйДокумент; Запись.ОбщееСостояние = Выборка.ОбщееСостояние; Запись.ФормаИзвне = Выборка.ФормаИзвне; Запись.Сотрудник = Выборка.Сотрудник; Запись.Прочитать(); Если Запись.Выбран() Тогда Запись.Удалить(); КонецЕсли; //Запись.Записать(); КонецЦикла; КонецПроцедуры; Щас код выглядит так, но по прежнему что то делает, но запись не удаляет |
|||
14
PLUT
21.11.24
✎
17:24
|
(13) дабавь после Запись.Удалить() магическое заклинание
Сообщить("Hello, World!"); может до удаления дела не доходит? |
|||
15
ДобрыйПутник
21.11.24
✎
17:27
|
(14) Да я по отладке смотрел, до всего он доходит, https://imgur.com/a/TEG7WYM
|
|||
16
ilya_i
21.11.24
✎
17:32
|
А в модуль регистра не заходит потом, где написано Отказ = Истина
|
|||
17
Eiffil123
21.11.24
✎
17:34
|
(15) может существовать подписка или модуль менеджера, который дает отлуп на удаление записи.
Попробуй как вариант перед удалением добавить: Запись.ОбменДанными.Загрузка = Истина; |
|||
18
formista2000
21.11.24
✎
17:37
|
(13) Регистр периодический жеж? Разберись с периодом.
|
|||
19
ДобрыйПутник
21.11.24
✎
17:39
|
(18) https://imgur.com/a/JEjxAVt
Непереодический |
|||
20
ДобрыйПутник
21.11.24
✎
17:40
|
||||
21
ДобрыйПутник
21.11.24
✎
17:40
|
(16) Не совсем понял про что
|
|||
22
Волшебник
21.11.24
✎
17:41
|
(17)(20) Это только у НаборЗаписей
|
|||
23
maxab72
21.11.24
✎
19:12
|
а не делается ли все это внутри транзакции, которая потом откатывается?
|
|||
24
Волшебник
21.11.24
✎
22:04
|
(23) или в другой базе...
|
|||
25
lEvGl
21.11.24
✎
23:13
|
(0) делайте через набор, для чего вся эта песня с запросом
набор = новый набор.отбор.владелец.установить(ссылка) Записать() |
|||
26
lEvGl
21.11.24
✎
23:17
|
(5) может же быть и не одно
|
|||
27
ДобрыйПутник
22.11.24
✎
10:20
|
(23) Неа
Если Выборка.Следующий() Тогда НачатьТранзакцию(); Попытка Запись = РегистрыСведений.СостоянияОригиналовПервичныхДокументов.СоздатьМенеджерЗаписи(); Запись.Владелец = Выборка.Владелец; Запись.ПервичныйДокумент = Выборка.ПервичныйДокумент; Запись.ОбщееСостояние = Выборка.ОбщееСостояние; Запись.ФормаИзвне = Выборка.ФормаИзвне; Запись.Сотрудник = Выборка.Сотрудник; Запись.Прочитать(); Если Запись.Выбран() Тогда Запись.Удалить(); КонецЕсли; ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); КонецПопытки; КонецЕсли; |
|||
28
ДобрыйПутник
22.11.24
✎
10:25
|
(25) https://imgur.com/a/nFiDc0M
Тоже не работает |
|||
29
Волшебник
22.11.24
✎
10:30
|
(28) На скриншоте другой программный код. Причём у НаборЗаписей метод Удалить() отвечает совсем за другое.
Нужно убрать Прочитать() и вызывать Записать() |
|||
30
ДобрыйПутник
22.11.24
✎
10:36
|
(29) https://imgur.com/a/LtlZa64
Попробовал так, тоже не работает |
|||
31
Волшебник
22.11.24
✎
10:37
|
(30) Уберите Прочитать() и Очистить() как бесполезные строки
А вообще должно уже работать. Убедитесь, что программный код выполняется. |
|||
32
ДобрыйПутник
22.11.24
✎
10:39
|
(31) Отладкой туда попадает, но ничего не происходит
И не понимаю как он чистить будет? |
|||
33
Волшебник
22.11.24
✎
10:40
|
(32) Пустой набор переписывает, т.е. удаляет.
|
|||
34
Волшебник
22.11.24
✎
10:41
|
Значит удаляете одно, а смотрите другое. Или запись восстанавливается.
Короче, разбирайтесь. Пригласите программиста. |
|||
35
lEvGl
22.11.24
✎
11:06
|
тут чудес не бывает
(23) + транзакции бывают неявными ПередЗаписью, При, ОбработкаПроведения и тд - это все транзакция где этот код выполняется? потом, в модуле набора регистра, в менеджере регистра, в подписках или еще где то может быть отказ а так да, поймите что где и как происходит, разбирайтесь, дело не в коде |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |