Очищается регистр сведений #643017


#0 by Sunny-irk
Очень странная ситуация сложилась. Непонятно как чистится регистр сведений. С непонятной периодичностью, может раз день, может день простоять спокойно, может по несколько раз за полчаса. Чистка проходит максимум за 20 секунд на sql-ной базе размером в 22Гб. В регистре порядка 80 000 записей. Регистр подчинен владельцу. в модуле набора записей в процедуре ПриЗаписи стоит защита от записи с хотябы одним пустым измерением или владельцем. Голову уже сломали, что может быть и как с этим бороться.
#1 by Kvestin
Если в 1С совсем не докопаетесь, то поставьте профайлер SQL с отбором по таблице регистра и ловите запросы на удаление. Получите время когда удалили. Потом смотрите кто и что делал в это время по журналу регистрации.
#2 by Reset
Защита, надеюсь, отбор в наборе проверяет, а не сам набор?
#3 by Maxus43
чо за регистр и как там записи появляются? и к чему высказывание "Чистка проходит максимум за 20 секунд"? ты же чистить не хочешь, а наоборот сохранить
#4 by Undefined vs NULL
потому фото нет
#5 by Reset
Точно, раз узнали время (20 секунд), значит знают и момент, когда это происходит - значит причину легче найти.
#6 by s03
Добавьте ещё защиту от записи пустого набора записей, а не только с пустыми измерениями или владельцем
#7 by Heckfy
Ищите код, вида:
#8 by Aprobator
значит по какому то событию чистится. Отладчик в помощь.
#9 by Sunny-irk
журнал регистрации в самой 1с чист, записи по изменению этого регистра одиночные. Время, когда очищается вычислили записью в лог количества записей в регистре. регистр контактной информации. 20 секунд, потому что интервал записи лога поставили 10 секунд, в течение 20 секунд количество постепенно уменьшилось до 0.
#10 by Sunny-irk
не пройдет, без отбора по владельцу записать не дает, и не дает записать с владельцем - пустой ссылкой
#11 by Maxus43
время знаете? смотрите ЖР, там будет видно Кто делал, потом паяльник в руки и допытывать - Что делал.
#12 by Sunny-irk
событие оставило бы хоть какие-то следы в журнале регистраций, а их нет!
#13 by Reset
Дает, судя по
#14 by Heckfy
Поверь мне.
#15 by Maxus43
на регистры событие "Данные: Изменение" только
#16 by Sunny-irk
#17 by Reset
А я что говорил (с)
#18 by Aprobator
без отбора не даст. Тем более, что поменять движения документа не дергаю сам документ - раз плюнуть.
#19 by Maxus43
чо к защите пристали? тут надо понять что записи удаляет, проблема скорей всего в быдлокоде типа
#20 by Reset
Убирайте проверку на количество
#21 by Reset
кроме того, возможно И на ИЛИ поменяйте
#22 by Reset
да вообще всю проверку в топку :)
#23 by blopp
+100500 Что мешает заполнить значения отбора, но не установить использование?
#24 by Reset
Верьте
#25 by Fish
Конфигурация Рарус, небось?
#26 by НЕА123
может ведущее измерение.
#27 by Sunny-irk
Самое смешное, стояло все работало несколько лет, тут без изменения нами кода все начало сыпаться.
#28 by Reset
Кто-то чтото поправил, само не может
#29 by Sunny-irk
она самая
#30 by Maxus43
чудес не бывает. обновления были?
#31 by Reset
Не обязательно впрямую, но создались условия
#32 by Sunny-irk
обновления мы делаем раз в несколько лет и то накатом изменений вручную
#33 by Reset
Если КакоетоУсловиеКотороеНеВыполнялосьМногоЛетАСейчасНачалоВыполняться тогда
#34 by Fish
Когда имел дело с конфой от Раруса, мы практически сразу отказались от поддержки, т.к. пришлось практически полностью всю конфу перелопачивать. Там таких залепух на каждом шагу полно.
#35 by Sunny-irk
даже если бы такой код отработал, он бы выдал в журнале регистраций что-то подобное 07.12.2012 15:17:00    Администратор        Данные. Изменение    Зафиксирована    Регистр сведений. Контактная информация    komp            07.12.2012 15:16:59 (93144331)        1С:Предприятие    171
#36 by Sunny-irk
И даже если бы этот предательский код отработал, как бы он смог так быстро все зачистить? 80 000 записей меньше чем за 8-10 секунд, на нашем виснущем сервере
#37 by Maxus43
а этому коду время много не надо, это быстрый убийца регистров
#38 by LOD
Используй подписку на события для логирования этого события В две строчки кода ... зачистить за 10 сек и больше записей ... PS: У меня было такое ... дело оказалось в умелый руках программистов
#39 by Sunny-irk
если он только обойдет ПередЗаписью в модуле набора записей. а это вообще возможно?
#40 by DikSer
А как тогда журнал регистрации?
#41 by Maxus43
это весь код в ?
#42 by LOD
Запусти у себя в базе эти две строчки : И насладись скоростью удаления ;)
#43 by Sunny-irk
вот сюда попадает, перед тем как Рег запишется
#44 by LOD
Легко: 1) Возможно у него не настроен журнал на эти события 2) Возможно удаляются эти строки в коде
#45 by Heckfy
Ну по идее, этому коду на удаление 80000 записей на виснущем сервере потребуется ~4 секунды
#46 by Александр_Тверь
а вы недавно не увольняли программиста? Ну там без выходного пособия...
#47 by LOD
Очистил тебе регистр ?
#48 by Александр_Тверь
Или админа ) Который на SQL сервере скрипт забацал
#49 by Sunny-irk
нет, все на месте и почти довольны
#50 by LOD
+ Сто процентов согласен !
#51 by Heckfy
Что то долго для сиквела таблица очищается...
#52 by DikSer
Твои две строчки кода не попортят регистр, чтобы очистить регистр надо отборать всех контрагентов ~20000 и потом циклом прошпарить их всех записывая их КИ. И это нифига не ~4 секунды...
#53 by Sunny-irk
ну если только скрипт, потому что уже всю конфигурацию перевернули по словам "КонтактнаяИнформация"
#54 by Heckfy
о_О. Мсье знает толк в извращениях. Вашим методом регистр несколько минут будет очищаться.
#55 by DikSer
Дак он так и может очистится только. Что бы очистить надо иметь ссылку контрагента которая подставится в Объект и прекрасно запишется(стерётся), Иначе никак. Другой вариант только в SQL...
#56 by НЕА123
+1
#57 by Heckfy
Фейспалм!!! А вы попробуйте сначала, прежде чем такие заявления делать .:)
#58 by Balabass
Про черного 1сника уже было?
#59 by Heckfy
Подожди, еще время не пришло :)
#60 by LOD
Аж прям сердце кольнуло от твоего поста ...
#61 by Reset
Зачем Вы с очевидным спорите? Очищается регистр? Очищается. Зачем себе противоречить и говорить что этого не может быть? :) Ищите кривой код
#62 by Reset
см - все верно, очистить ни ума ни времени много не надо)
#63 by Heckfy
см . Оказывается надо и то и то :):):)
#64 by Reset
:) Вперед, с песней (и заготовленным вазелином), удаляй бэкап и запускай эти безвредные 2 строки на своей боевой
#65 by Reset
только не перепутай, сначала - удалить бэкап, потом запустить. Не наоборот
#66 by DikSer
Да все варианты опробованы уже. Всё протестировано уже. =)
#67 by Heckfy
Точно все? Точно всё протестировано? МенеджерЗаписи тоже протестировал?
#68 by hhhh
ну допустим эта проверка если например заполнен Тип, она и не сработает. И всё вычистит.
#69 by DikSer
После этого идет проверка на Владельца (объект).
#70 by DikSer
Менеджер не тестил.
#71 by Reset
Дядка, ну. Ну напрягись. Сколько раз эта проверка выполниться при пустом ЭтотОбъект?
#72 by DikSer
А как может быть пустой "этотОбъект" если это в модуле "ПередЗаписью" регистра сведений?
#73 by НЕА123
пришло! пришло время! , давай про черного!
#74 by DikSer
Ребят, я понимаю юмор дело хорошое, но давайте проникнимся всей полнотой трагизма данной ситуации! =) О как завернул)) Проникаемся.. А потом я с радостью прочитаю про вашего черного(безголового) 1сника (всадника)..))
#75 by Reset
Сделай сначала , потом вместе будем проникаться полнотой трагизма
#76 by Reset
+ в процессе заодно убедишься в
#77 by hhhh
запись в регистр сведений идет в два этапа: 1. стираются старые записи; 2. пишутся новые. то есть ответ на ваш вопрос: при перезаписи пустой этот объект там будет всегда, в 100% случаев.
#78 by Defender aka LINN
Бугога. Хотя чему я удивляюсь: одинэснег, который 1С не знает - это нынче норма.
#79 by Sunny-irk
появились новые подробности: регистр очистился когда в базе было только 3 пользователя, которых на работе в это время не было. И еще, не знаю, связано с этим или нет, но примерно в то же время, когда и стали происходить эти события, при записи контрагента(а может регистра контактной информации) стала вылетать ошибка: "Ошибка при выполнении обработчика {...}: Ошибка при выполнении метода контекста (Записать): Конфликт блокировок при выполнении транзакции; Microsot OLE DB Provider for SQL Server: Transaction..." к сожалению полный текст не сохранился
#80 by Мыш
Регламентные задания возможно?
#81 by Sunny-irk
нет, все отключено и ни у кого кроме администратора нет к ним доступа
#82 by Defender aka LINN
Ну, ВОЗМОЖНО эта ошибка говорит о том, что кто-то пытается записать контактную информацию в тот момент, когда она как раз удаляется. А возможно и нет.
#83 by Sunny-irk
а может из-за этой ошибки стереться регистр?
#84 by Heckfy
Ну, как вариант, в планировщике у кого то бомба заложена....
#85 by Sunny-irk
все это закрыто от простых пользователей
#86 by Defender aka LINN
Нет, в этот момент он уже стирается.
#87 by Heckfy
Чудес не бывает.
#88 by Sunny-irk
Продолжение нашей эпопеи: Отправили cf-ник в Рарус, они поглядели, развели руками, предложили поставить ловушки в модуле набора записей. Поставили: результата 0, одни испуганные пользователи. Как будто очистка в этот модуль вообще не заходит.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С