Вход | Регистрация
 

Очищены все записи регистра сведений, внезапно. Ищу причину

Очищены все записи регистра сведений, внезапно. Ищу причину
Я
   oslokot
 
05.02.20 - 13:48
Всем привет!
КА2.4, платформа 8.3.15

Есть самописный регистр сведений непериодический, зависимый и без измерений. Регистратор РТиУ
Регистр имеет форму списка, на которой оператор производит различные действия - просмотр, отборы и прочее
В одно прекрасное утро из него исчезают все записи.

Записи в регистр добавляются в ПриЗаписи из формы РТиУ через обычный набор записей с отбором.
В самописке куча мест, где вызывается обновление записей этого регистра.
Если бы неправильно сработал отбор я бы понял, но без отбора зависимый регистр не дает записать.

Меня интересует только одно - как такое могло произойти?
 
 
   ДенисЧ
 
1 - 05.02.20 - 13:52
В журнал регистрации смотрел?
   oslokot
 
2 - 05.02.20 - 13:56
(1) смотрел, в промежуток времени данного инцидента никаких следов нет
Грубо говоря вчера 23:30 все записи были (и бэкап это подтвердил), а в 8 утра пришел оператор и позвонил "все пропало"
   RomanYS
 
3 - 05.02.20 - 13:57
(0) Он точно зависимый и документ это не измерение? Тогда возможно при проведении очищается, если удаление записей стоит автоматическое
   oslokot
 
4 - 05.02.20 - 13:59
(3) сейчас посмотрю
   Deon
 
5 - 05.02.20 - 14:00
Сравнение объединение поменяло ID-шник регистра, удалив старый и добавив новый. И он стал новым и пустым
   Волшебник
 
Модератор
6 - 05.02.20 - 14:00
зачем нужен зависимый регистр без измерений? Что это за регистр?
   ДенисЧ
 
7 - 05.02.20 - 14:04
(6) Измерение есть - регистратор. Этого достаточно
   oslokot
 
8 - 05.02.20 - 14:07
(3) Регистр зависимый и измерений нет. Регистратор только один - РТиУ
В РТиУ режим удаления стоит "Не удалять автоматически"
При проведении, отмене проведения записи этого регистра не затираются, только что проверил.
   oslokot
 
9 - 05.02.20 - 14:07
(6) да это какой-то логистический велосипед
   oslokot
 
10 - 05.02.20 - 14:10
(5) в этот период конфа не менялась
   Deon
 
11 - 05.02.20 - 14:12
(10) Напрямую очистили таблицу в БД
   oslokot
 
12 - 05.02.20 - 14:19
(11) да ну, не) да и базка файловая
   АнализДанных
 
13 - 05.02.20 - 14:53
(12) ctrl-A + Del
   oslokot
 
14 - 05.02.20 - 15:01
(13) То есть возможная проблема в некорректном закрытии файловой БД?
Но что странно, ночью в базе никто не работал, а в бэкапе сделанном в 23:30 все записи на месте, а утром их уже нет
Бэкап делается простым копированием 1CD с помощью cobian backup
   wayss
 
15 - 05.02.20 - 15:03
так не бывает.
ТИИ сделайте.
   dka80
 
16 - 05.02.20 - 16:00
Набор = РегистрыСведений.ТвойРегистр.СоздатьНаборЗаписей();
Набор.Записать();
   dka80
 
17 - 05.02.20 - 16:02
И посмотри кто заходил в базу между 23:30 и утром
   unbred
 
18 - 05.02.20 - 16:05
так и сделано, скорее всего. я бы прям через контрол эф поискал в самописке.
   1Сергей
 
19 - 05.02.20 - 16:10
Не в расширении ли?
   palsergeich
 
20 - 05.02.20 - 16:11
(16) в прдчиненном регистратору не прокатит.
Там надо будет циклом по каждому пройтись
   oslokot
 
21 - 05.02.20 - 16:13
(16) Такие места есть,но там везде устанавливается отбор. И даже если предположить что отбор вдруг не сработал, то такая запись не прокатит, ибо (20)
Я даже проверил на всякий случай, без отбора не дает записать.
   oslokot
 
22 - 05.02.20 - 16:14
(19) Расширений нет, уже смотрел
   1Сергей
 
23 - 05.02.20 - 16:16
(22) Конфа не менялась в искомый период?
   Deon
 
24 - 05.02.20 - 16:20
(22) А ТИИ чего-нибудь говорит? А то может там и правда всё порушилось внутре
   oslokot
 
25 - 05.02.20 - 16:20
(23) нет
   oslokot
 
26 - 05.02.20 - 16:21
(15) (24) ТиИ сделал, результатов не дало
   dka80
 
27 - 05.02.20 - 16:21
(21)  Такие места есть,но там везде устанавливается отбор
Так и что?
Набор = РегистрыСведений.ТвойРегистр.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(ТвойРегистратор);
Набор.Записать();
   Deon
 
28 - 05.02.20 - 16:22
(27) Так это надо ещё в цикл завернуть по всем регистраторам
   oslokot
 
29 - 05.02.20 - 16:26
(27) без отбора хрен оно запишется, у РС регистратор есть
   1Сергей
 
30 - 05.02.20 - 16:30
(24) есть подозрение, что ТИИ и похерело всё
 
 Рекламное место пустует
   hhhh
 
31 - 05.02.20 - 16:31
(29) ну, покажите эту процедуру ПриЗаписи. где записываете регистр
   vicof
 
32 - 05.02.20 - 16:31
Да мож кто-нить консоль кода запустил да поудалял все
   oslokot
 
33 - 05.02.20 - 16:32
(30) так я ТиИ запустил только что на копии
   oslokot
 
34 - 05.02.20 - 16:32
(32) терроризм?
   oslokot
 
35 - 05.02.20 - 16:33
(31) ну выглядит примерно так (27)
   Ёпрст
 
36 - 05.02.20 - 16:34
ну открой cd-ник через tool1cd да посмотри глазками, есть ли там чего в табличке рег сведений
   oslokot
 
37 - 05.02.20 - 16:36
(36) а где ее взять
   hhhh
 
38 - 05.02.20 - 16:36
(35) так как в (27) работать не будет. Там только очистка регистра
   Deon
 
39 - 05.02.20 - 16:38
А в ЖР очистка по каждому регистратору пишется?
   oslokot
 
40 - 05.02.20 - 16:38
(38) пардонте, там еще и НаборЗаписей.Добавить() конечно есть
   hhhh
 
41 - 05.02.20 - 16:39
(40) а поле Регистратор присваивается?
   dka80
 
42 - 05.02.20 - 16:39
(40) а НаборЗаписей.Прочитать() там есть?
   kzot
 
43 - 05.02.20 - 16:42
в расписании фоновые задачи, итоги.
   Ёпрст
 
44 - 05.02.20 - 16:44
   Serg_1960
 
45 - 05.02.20 - 16:46
Теоретически рассуждая, если это сбой в базе (а в файловой базе вероятность выше), то могли "побиться" служебные данные. Например, индексы. Не исключено также, что сами данные регистра в базе присутствуют, но они недоступны.
   Ёпрст
 
46 - 05.02.20 - 16:51
ну или на нимфостарте ищи, там Агеев выкладывал в коментах
   oslokot
 
47 - 05.02.20 - 17:05
(41) (42) Код обновления записей регистра вот такой:

    НаборЗаписей = РегистрыСведений.ДокументыРеализации.СоздатьНаборЗаписей(); 
    НаборЗаписей.Отбор.Регистратор.Значение = Основание;
    НаборЗаписей.Прочитать();
    Для каждого Запись Из НаборЗаписей Цикл
        Запись.СтатусАкта = Перечисления.СтатусыАкта.АктСформирован;        
    КонецЦикла;    
    НаборЗаписей.Записать();


И таких кусков встречается несколько. В принципе ничего военного, вроде норм
Если бы не сработал отбор то ругнулось бы и все.

И да, есть кусок кода удаляющий запись, вызываемый по спец.кнопке
Но не в цикле! Нужно былоб специально встать на каждую запись и жмакнуть

    НаборЗаписей = РегистрыСведений.ДокументыРеализации.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(Регистратор);
    НаборЗаписей.Записать(Истина);


   oslokot
 
48 - 05.02.20 - 17:06
(44) Спасибо!
   oslokot
 
49 - 05.02.20 - 17:07
(42) да, во всех участках кода есть НаборЗаписей.Прочитать() прежде чем НаборЗаписей.Записать()
   oslokot
 
50 - 06.02.20 - 15:49
Нашел причину. Все как всегда блин :)
При отмене проведения РТиУ из формы списка удаляются все записи движений, в т.ч. и этот самописный регистр

Извиняюсь за беспокойство, тему можно закрыть
   dka80
 
51 - 07.02.20 - 14:04
(50) нет уж. Давай расскажи как они удаляются. Автоматически, вручную? У всех РТиУ отменили проведение?
   Ёпрст
 
52 - 07.02.20 - 14:23
скорее всего, рег сведений не подчинен регисрацию и тупо пустой набор записали
   Ёпрст
 
53 - 07.02.20 - 14:23
*регистратору
   oslokot
 
54 - 12.02.20 - 13:14
(51) Рассказываю.

Утром у всех РТиУ за весь период отменили проведение и заново провели.
В РТиУ режим удаления стоит "Не удалять автоматически"
При отмене проведения срабатывает соответствующая процедура модуля РТиУ, в которой очищаются все движения регистратора, в т.ч. и этот самописный РС

(53) РС подчинен регистратору
   dka80
 
55 - 12.02.20 - 14:25
(54) ну круто, че
   FIXXXL
 
56 - 12.02.20 - 14:29
(54) а формирование записей в форме документа что ли прописано?
   Serg_1960
 
57 - 12.02.20 - 14:46
(56) Угу. Автор в самом начале сказал - "Записи в регистр добавляются в ПриЗаписи из формы РТиУ". Далее тему можно уже не обсуждать - достаточно воспользоваться типовой обработкой перепроведения документов и будут "очищены все записи регистра сведений, внезапно."(с)
   FIXXXL
 
58 - 12.02.20 - 14:47
(57) смелое решение! :)
   RomanYS
 
59 - 12.02.20 - 14:51
(57) Самое интересное, он всё проверил в (8)
   Serg_1960
 
60 - 12.02.20 - 15:01
PS: не судите строго автора - он же уже извинился за неверную информацию в (50).
   Cyberhawk
 
61 - 12.02.20 - 15:05
(60) Добавь в заголовок ветки инфу о том, что ответ найден, и номер сообщения в ветке
   Ботаник Гарден Меран
 
62 - 12.02.20 - 15:09
(59)
Проверял из формы, нажимая кнопки
А надо было из списка или обработкой.
   oslokot
 
63 - 12.02.20 - 15:15
(59) (62) да, я делал интерактивно, из формы поэтому и написал в (8) что все ок. А на самом деле было (50)
   Конструктор1С
 
64 - 12.02.20 - 17:19
"куча мест, где вызывается обновление записей этого регистра"

Инкапсуляция? Не, не слышал


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.