Очистка регистра

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

Страницы: 1 2 След.
RSS
Очистка регистра, Странное поведение регистра сведений. Очистка регистра сведений Контактная информация
 
Добрый день.  Имеем Альфа-Авто ААА 4.1.01.13, ТДМС + переписанная нами.
Недавно начались непонятные проблемы регистр сведений Контактная информация очищается самопроизвольно. Никаких записей в журнале не остается что манипуляции были проделаны с регистром. Отработали варианты ошибок в коде, тоже нету. Проблема пришла неожиданно, до этого кардинального ничего не дорабатывали. Сделали слежку по результату запроса и сколько тратится времени на очистку 6-8 секунд (объем регистра 80 тысяч записей). В какую сторону идти, что может послужить периодическому удалению данных без оставления следов в журнале регистрации…
 
Добрый день,
Данная ошибка является ошибкой релиза. Просьба обновить конфигурацию.
 
Цитата
Вера  Васильева  пишет:
Добрый день,
Данная ошибка является ошибкой релиза. Просьба обновить конфигурацию.

Вера, а почему тогда раньше эта ошибка не проявлялась никак? Еще уточните пожалуйста какие именно модули ошибка затрагивает? киКонтактнаяИнформация и Контрагенты? Или еще какие то моменты? Или ошибка в компоненте?
Изменено: Сергей Терпугов - 09.12.2012 05:47:44
 
У меня не было возможности обновить поэтому сделал очень просто
В модуле набора записи регистра сведений контактная информация добавил
Код
Процедура ПередЗаписью(Отказ, Замещение)
   

   Если обЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Объект.Значение) Тогда
      Сообщить("Попытка удалить всю контактную информацию");
      Отказ=Истина;
      Возврат;
   КонецЕсли;
   
КонецПроцедуры



Ну а потом все просто. Пользователи сами сообщили что у них не получается сделать.
 
Евгений Шульц,
От полной очистки регистра и так стоит защита...
Код
   
// проверка для предотвращения попытки полной зачистки регистра
   Если ЭтотОбъект.Количество() = 0 Тогда
      Если ОбЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Объект.Значение) и
         ОбЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Тип.Значение) и
         ОбЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Вид.Значение) Тогда
         СтрокаОтказа = "";
         Отказ = Истина;
      КонецЕсли;
   КонецЕсли;
 
Цитата
Сергей Терпугов пишет:
От полной очистки регистра и так стоит защита...
Как видно одна не срабатывает.
 
У нас 19 релиз и точно такая же петрушка с регистром "Кураторы".
У вас в каждом релизе разные регистры чтоли очищаются?
 
Skrepka Skrepka,
Такие же симптомы? Независимая очистка, без следов в журнале регистрации?
 
Да, в какой-то момент просто пропадают все записи. Пришлось дорабатывать справочник "Договоры взаиморасчётов" и хранить информацию о кураторах непосредственно в нём, не задействуя регистр.
 
Что то сотрудника компании Рарус притихли...
 
Как уже было написано выше данная ошибка исправлена (и достаточно давно). В какой именно строке кода было исправление уже тяжело вспомнить.
Суть исправления заключалась в том, что перед записью контактной информации не осуществлялось чтение набора записей для данного контрагента. И при записи вот такой эффект возникал. Сейчас это исправлено.
 
Скачал сейчас последний релиз 4 альфы, в модуле РС контактной информации точно такая же процедура "ПередЗаписью" собственно вот что у нас:
Код
Процедура ПередЗаписью(Отказ, Замещение)
   // проверка для предотвращения попытки полной зачистки регистра
   Если ЭтотОбъект.Количество() = 0 Тогда
      Если ОбЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Объект.Значение) и
         ОбЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Тип.Значение) и
         ОбЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Вид.Значение) Тогда
         СтрокаОтказа = "";
         Отказ = Истина;
      КонецЕсли;
   КонецЕсли;
   
   // проверки оставлены в модуле на случай редактирования КИ в строке
   // Вообще проверка делается локально в каждой форме записи КИ
   Для каждого Запись Из ЭтотОбъект Цикл
      
      Если ОбЗначениеНеЗаполнено(Запись.Объект) Тогда
         Отказ = Истина;
         СтрокаОтказа = "Не заполнено поле ""Владелец"". Запись невозможна!";
         Продолжить;
      КонецЕсли; 
      
      Если Запись.Объект.ЭтоГруппа Тогда
         Отказ = Истина;
         СтрокаОтказа = "Нельзя использовать группу в качестве объекта контактной информации.";
         Прервать;
      КонецЕсли;
      
      Если ОбЗначениеНеЗаполнено(Запись.Вид) Тогда
         Отказ = Истина;
         СтрокаОтказа = "Не заполнено поле ""Вид"". Запись невозможна!";
         Прервать;
      КонецЕсли;
      
      Если ОбЗначениеНеЗаполнено(Запись.Представление) Тогда
         Отказ = Истина;
         СтрокаОтказа = "Не заполнено представление контактной информации. Запись невозможна!";
         Прервать;
      КонецЕсли;
   КонецЦикла;
   
   Если Отказ Тогда
      Сообщить(СтрокаОтказа);
   КонецЕсли; 
   
КонецПроцедуры

Так что дело в чем то другом товарищи знатоки...
П.С. Сверил модуль киКонтактнаяИнформация, глобального тоже ничего нету...
 
Используйте проверенный вариант.

Код
 Процедура ПередЗаписью(Отказ, Замещение)
   

   Если обЗначениеНеЗаполнено(ЭтотОбъект.Отбор.Объект.Значение) Тогда
      Сообщить("Попытка удалить всю контактную информацию");
      Отказ=Истина;
      Возврат;
   КонецЕсли;
   
КонецПроцедуры

 
 
Хорошо, допустим вы иправили ошибку из 13 релиза с регистром "Контактная информация", почему тогда возникает подобная ситуация в 19 релизе с регистром "Кураторы"?

Цитата
Евгений Шульц пишет:
Используйте проверенный вариант.

Знаете, не хочется дописывать программу из-за ошибок разработчика, и так много изменений. Пусть я даже изменю код, но он будет от разработчиков, а не самописный.
 
Цитата
Skrepka Skrepka пишет:
Знаете, не хочется дописывать программу из-за ошибок разработчика, и так много изменений. Пусть я даже изменю код, но он будет от разработчиков, а не самописный.
Изменением больше, изменением меньше. Какая разница? Если бы вообще не было изменения или вы бы регулярно обновлялись я понимаю, а так никакой разницы.
 
Я смотрю, либо у вас конфа не особо дописанная, либо вы вообще не обновляетесь, но для меня уже критично любое изменение, т.к. каждое новое увеличивает затраченное на обновление время, а знаете, обновлять базу по месяцу (а на данный момент наверное уже и больше) не очень прикольно.
 
Ничего не помогает, регистр всё так же чистится..  :!:  :!:
 
Даже если это ошибка релиза, где в конфигурации есть запись этого регистра в транзакции. При одновременной "очистке-падении" и восстановлении стандартной обработкой загрузки выдается сообщение: Ошибка записи объекта
ТипОбъекта             =  Регистр сведений запись: Контактная информация
Объект                 =  РегистрСведенийНаборЗаписей.КонтактнаяИнформация
ОписаниеОшибки         =  Ошибка при вызове метода контекста (Записать): Конфликт блокировок при выполнении транзакции:
Microsoft OLE DB Provider for SQL Server: Transaction (Process ID 67) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
HRESULT=80004005, SQLSrvr: SQLSTATE=40001, state=30, Severity=D, native=1205, line=1
 
Цитата
Сергей Терпугов пишет:
Ничего не помогает, регистр всё так же чистится.
Можно получить CF Вашей конфигурации? Будем разбираться.
 
Александр Яблочкин,
Да, конечно. Куда отправлять?
 
Апну тему!
Такая же петрушка творится и с регистром сведений "Напоминания"... Очищается самопроизвольно.. без каких-либо следов...
 
Цитата
Андрей Д пишет:
Апну тему!
Такая же петрушка творится и с регистром сведений "Напоминания"... Очищается самопроизвольно.. без каких-либо следов...
У меня на это было завязана небольшая бизнес логика. Пришлось приписать на документ и регистр сделать подчиненный регистратура.
 
Цитата
Евгений Шульц пишет:
Цитата
Андрей Д пишет:
Апну тему!
Такая же петрушка творится и с регистром сведений "Напоминания"... Очищается самопроизвольно.. без каких-либо следов...
У меня на это было завязана небольшая бизнес логика. Пришлось приписать на документ и регистр сделать подчиненный регистратура.

Ну я считаю, что это не совсем правильно... Если есть ошибка - то разработчики должны выяснить в чем проблема и исправить это.
 
Цитата
Андрей Д пишет:
Ну я считаю, что это не совсем правильно... Если есть ошибка - то разработчики должны выяснить в чем проблема и исправить это.
Ошибка в том что там используют независимый регистр сведений. Очистить его без следа достаточно просто. Достаточно записать без отбора и все.
Разработчики скажут что эта не ошибка а особенности работы.
 
У нас был косяк в том что при открытии не инициализировался набор записей, что  в итоге приводило к записе пустого набора, никаких следов не было, регистр очищался в раз.
Если конфа не тронутая то косяк конечно =) а так может злые руки очистить на разок=)
Изменено: Сергей Терпугов - 09.07.2014 08:05:41
Страницы: 1 2 След.
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С