|
Удалить элемент регистра накоплений | ☑ | ||
---|---|---|---|---|
0
AlkisTer
05.02.14
✎
15:45
|
Появилась проблема, говорю обобщенно:
У нас своя программа по обменам РИБ из подчинённой базы справочник(помещения) выгрузился в центральную базу, а потом ошибочно выгрузился в другую подчинённую базу, хотя не должен был (косяк разработчиков). Ладно бы один только справочник выгрузился, ещё выгрузился ещё и регистр накопления(инвентарь помещения), но выгрузился с ошибкой в результате он выглядит так: Дата/<Объект не найден>() (Регистратор)/ и далее какой, сколько и где инвентаря стоит. Проблема в том, что списать его не получается. Удалить тоже, так как при попытке зайти, открывается форма создания Регистра Накопления. Каким образом можно удалить Регистр Накоплений? |
|||
1
Maxus43
05.02.14
✎
15:47
|
запросом получи регистратор этой записи
создай набор записей навесь на него отбор на регистратор из запроса запиши пустой набор записей |
|||
2
Wobland
05.02.14
✎
15:48
|
у таких регистраторов дата, к примеру, будет нулл
|
|||
3
Wobland
05.02.14
✎
15:49
|
и пофих, что элементов у регистров не бывает даже в пьяном угаре
|
|||
4
AlkisTer
05.02.14
✎
15:53
|
(1) Мне это почти не о чём не говорит. Общий смысл я понял, но практической реализации я даже не представляю
|
|||
5
Maxus43
05.02.14
✎
15:53
|
(3) не скажи, в пьяном угаре и не такое бывает
|
|||
6
Maxus43
05.02.14
✎
15:53
|
регистр подчинён регистратору я так понял?
|
|||
7
Wobland
05.02.14
✎
15:54
|
(4) покажи (1) программисту, он сделает
(5) не наливай больше регистрам ;) |
|||
8
Wobland
05.02.14
✎
15:55
|
(6) у тебя пьяные регистры накопления отвергают своих регистраторов?
|
|||
9
Maxus43
05.02.14
✎
15:55
|
вот запрос
ВЫБРАТЬ БракВПроизводстве.Регистратор ИЗ РегистрНакопления.БракВПроизводстве КАК БракВПроизводстве ГДЕ БракВПроизводстве.Регистратор.Ссылка ЕСТЬ NULL |
|||
10
Maxus43
05.02.14
✎
15:56
|
вот код...
Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Выборка.Следующий(); РН = РегистрыНакопления.МойРН.СоздатьНаборЗаписей(); РН.ОТбор.Регистратор.Усатновить(Выборка.Регистартор); РН.Записать(); |
|||
11
Wobland
05.02.14
✎
15:58
|
(10) повторять, пока не закончатся регистраторы?
|
|||
12
AlkisTer
05.02.14
✎
15:59
|
Для начала нужно определиться с типом регистратора (что это за документ).
После получить функцией ЗначениеВСтрокуВнутр (с переданной в нее пустой ссылкой на найденный тип документа) строку вида: {"#",13dbeddc-bc26-44b9-9e58-ce22c562e271,356:00000000000000000000000000000000}. Далее вместо 356:00000000000000000000000000000000 вставляем 55:98180080485e404011e1981c0af3e8ae и то что получилось скармливаем функции ЗначениеИзСтрокиВнутр - это и будет ссылка на твой не найденный регистратор. Ну а потом уже так (код удалит всез аписи по несуществующему регистратору! я так понял, что именно это и нужно): НаборЗаписей=РегистрыНакопления.ТоварыНаСкладах.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(РегистраторСсылка); НаборЗаписей.Записать(); Такую фигню я тоже нашёл. Крайне тупой вопрос, где этот код исполнять? Внешняя обработка или что? |
|||
13
Maxus43
05.02.14
✎
16:00
|
(12)>>Такую фигню я тоже нашёл
правильно, это фигня |
|||
14
grayshadow
05.02.14
✎
16:00
|
тестирование и исправление, ***ть!:)
|
|||
15
AlkisTer
05.02.14
✎
16:00
|
(7) Если бы я мог, думаешь я бы писал сюда? :)
|
|||
16
Maxus43
05.02.14
✎
16:01
|
(11) а то, за циклы и т.д. надо уже деньги брать
|
|||
17
User_Agronom
05.02.14
✎
16:02
|
(14) Это слишком просто!
|
|||
18
Wobland
05.02.14
✎
16:02
|
(15) ну тогда включай режим разума и перечитывай Максуса43, пока не дойдёт
|
|||
19
AlkisTer
05.02.14
✎
16:02
|
(14) Она выдает "ошибка в регистре" или что-то подобнее и проходить дальше. Если ты про проверку ссылочной целостности.
|
|||
20
grayshadow
05.02.14
✎
16:05
|
(19) а ты поставил удалять объекты с битыми данными? (перед этим сделай бэкап!!!)
|
|||
21
Wobland
05.02.14
✎
16:05
|
(19) а что ещё она умеет?
|
|||
22
Maxus43
05.02.14
✎
16:07
|
тут нужен точечный удар по базе боевиков, а вы предлагаете всю страну в расход
|
|||
23
grayshadow
05.02.14
✎
16:11
|
а зачем битые объекты в базе держать? учитывая, что они не имеют отношения к БУ
|
|||
24
AlkisTer
05.02.14
✎
16:12
|
(22) Я правильно понимаю, что мне надо исправить на объект моей базы?
|
|||
25
Maxus43
05.02.14
✎
16:18
|
(23) не вижу корреляции между битой ссылкой и видом учета БУ...
(24) естественно. Делай всё на тестовой базе, если на рабочей - сначала без Записать();, убедись что удалять будет то что надо |
|||
26
AlkisTer
05.02.14
✎
16:23
|
(25) Понятно, что на тестовой. Ок, попробую.
|
|||
27
AlkisTer
05.02.14
✎
17:07
|
Проблема всё-таки решается Тестированием и Исправлением объектов. Буду делать так.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |