Имя: Пароль:
1C
1С v8
В регистре накопления записи без регистратора
0 Blast
 
07.08.14
09:33
Привет всем.

Вчера один из сотрудников добавил в конфу новый документ, по нему были сделаны движения. Вечером другой сотрудник зашел в конфигуратор, внес необходимые ему изменения и обновил конфигурацию БД. По какой-то причине у второго сотрудника в конфигураторе не было нового документа, заведенного первым сотрудником (грешим на кэш). После сохранения документ естественно пропал в конфигурации. Сегодня его заново добавили. Но вот засада: записи в регистре накопления, сделанные вчерашним документом, остались. Вместо регистратора пустота.

Как удалить только эти записи с пустым регистратором? Регистр убить и создать заново не могу, там полно записей.

Любое чтение из регистра осуществляется с отбором по регистратору.
Кто-нибудь сталкивался с подобной проблемой?
Есть идеи как удалить эти ошибочные записи? Мои иссякли.
1 ДенисЧ
 
07.08.14
09:34
Записи без регистратора или с Объект не найден?
2 Blast
 
07.08.14
09:36
(1) При двойном щелчке в самом регистраторе выдает "Неопределено". В консоли запросов то же самое.
Причем если запросом попробовать сделать выборку с отбором по неопределено, выборка пустая.
3 Blast
 
07.08.14
09:36
(2) в самом регистре, прошу прощения
4 ДенисЧ
 
07.08.14
09:38
Тии?
5 Blast
 
07.08.14
09:39
Тип у регистратора вообще составной, несколько документов.
Но тут мне вообще непонятный тип.
6 skunk
 
07.08.14
09:39
7 Powerfool
 
07.08.14
09:44
Я тут v8: Восстановление документов по движениям писал как я восстановил доки по записям в журнале регистрации. Используйте обработку и сделайте документ с нужным Вам уидом, он сам встанет в регистр
8 Timon1405
 
07.08.14
09:45
мопед не мой, но может поможет https://yadi.sk/d/lrI4O59FZCw7K
9 Крошка Ру
 
07.08.14
09:50
(0)ТИИ делали?
10 Blast
 
07.08.14
09:54
(4) (9) Не делал. И до больших выходных не буду. Прошлое ТИИ шло 3,5 суток примерно. ((( После его проведения пришлось восстанавливаться из бэкапа, ибо ТИИ такого начудило, что у нас остатки поехали.
11 jsmith82
 
07.08.14
09:56
Обработку сделай с формой списка регистра накопления. Записи удали вручную
12 ptiz
 
07.08.14
10:00
Создать регистраторы с нужными УИД, записать пустые наборы, удалить регистраторы.
13 Blast
 
07.08.14
10:00
(7) Спасибо. Тема интересная. но у нас немного другая ситуация. У нас даже ГУИДа нет. У нас не документ в базе без проверки ссылочной целостности был удален. Он у нас пропал в конфигураторе. Соответственно ГУИДа просто нет. мы конечно создали новый документ, но ГУИД у него другой.

Записи выглядят так
http://2.firepic.org/2/images/2014-08/07/91f6h48rxweb.png

При двойном щелчке на регистраторе в окошке "неопределено"


(11) Записи нужно всё равно прочитать. А чтение набор записей возможно только при установленном отборе по регистратору.
14 jsmith82
 
07.08.14
10:03
Выгрузи регистр в файл. Удали в файле записи. Загрузи обратно
15 Blast
 
07.08.14
10:09
(14) такая идея мне тоже приходила в голову. Выгрузку я сделать во временную ТЗ, там записи почистить.
А как ты потом запишешь загруженные записи в регистр? Он потребует отбор по регистратору.
16 Бледно Золотистый
 
07.08.14
10:09
А отбор с Неопределено не прокатывает?
17 Blast
 
07.08.14
10:14
(16) Не прокатывает
18 jsmith82
 
07.08.14
10:20
Tool_1CD не поможет?
19 Blast
 
07.08.14
10:34
(18) Клиент-сервер
20 ДенисЧ
 
07.08.14
10:35
(19) удали скулем и пересчитай итоги
21 Blast
 
07.08.14
10:50
(20) Похоже этот вариант остается единственным
22 Powerfool
 
07.08.14
10:55
А если обратиться к регистратору программно он что выдаст? тоже неопределено?
23 jsmith82
 
07.08.14
10:59
(17) Сразу бы так и сказал! Тогда скуль, конечно же
24 sf
 
07.08.14
11:00
(0) перезаписать регистр не предлагать?
25 Ненавижу 1С
 
гуру
07.08.14
11:00
первый сотрудник, второй сотрудник...
используйте хранилище конфигурации!
26 Blast
 
07.08.14
11:00
(22) Что интересно выдает "Неопределено", но при этом если отбирать записи по Регистратор = "Неопределено" ничего не возвращается.
27 Blast
 
07.08.14
11:02
(25) у Хранилища есть тоже приколы с кэшем. Мы из-за этого немало строк кода теряли.
У нас у каждого своя скульная база для разработки. Потом из неё мы в рабочую всё переносим.
28 jsmith82
 
07.08.14
11:03
(27) Тоже были траблы с кэшем хранилища. Поставили новую версию платформы. Вроде, полёт нормальный. Даже структура хранилища какая-то другая стала...
29 Powerfool
 
07.08.14
11:04
(26) Регистратор = "Неопределено" - это, я надеюсь, очепятка
30 Azverin
 
07.08.14
11:05
(0) о, земеля) где трудимся?
31 sf
 
07.08.14
11:07
попробуй на копии что-то типа
    РН = РегистрыНакопления.<ИмяРегистра>.СоздатьНаборЗаписей();
    РН.Прочитать();
    
    Для К = 0 ПО РН.Количество()-1 Цикл
    
        Стр = РН[К];
    
        Если НЕ ЗначениеЗаполнено(Стр.Регистратор) Тогда//или какое то другое условие с Стр.Регистратор
        
            РН.Удалить(Стр);
        
        КонецЕсли;
        
    КонецЦикла;
    РН.Записать(Истина);
32 Ненавижу 1С
 
гуру
07.08.14
11:08
(27)(28) не знаю, все работает
33 ptiz
 
07.08.14
11:18
Всё-таки интересно, что конкретно в полях _RecorderTRef и _RecorderRRef по этим записям в SQL?
34 Blast
 
07.08.14
11:21
(29) Сейчас в Москве, в ГК ЗАО "ТМХ"
35 ptiz
 
07.08.14
11:21
Можно вообще грохнуть регистр, создать такой же, а записи  перенести через ВыгрузкаЗагрузкаXML (выгрузить перед гроханьем регистра, кривые не должны выгрузиться).
36 Blast
 
07.08.14
11:22
(29) В запросе.

Я на самом деле запросом отбирал не так. Я исключил все возможные ссылки, значения NULL и НЕОПРЕДЕЛЕНО
37 Powerfool
 
07.08.14
11:38
(36) Исключил Ссылки, NULL и неопределено. И что осталось? Ничего. Зачем ты Неопределено исключил?
38 Azverin
 
07.08.14
11:43
(34) молодцом, круто устроился
39 Blast
 
07.08.14
11:53
(37) И остались у меня записи с пустыми регистраторами. Их я и пробовал обработать.
40 Blast
 
07.08.14
11:54
В SQL удалить записи нам не дали. У нас прямого доступа к SQL Server'ру. Придется выкручиваться так
41 ptiz
 
07.08.14
11:57
(40) Ну пускай сами и чинят базу те, кто доступ не дает.