Ошибка в регистре накопления #621549


#0 by Sh18
Самописная конфа 8.2. Не знаю, каким образом, в регистре накопления образовалось несколько активных записей без регистратора, точнее с регистратором типа <Объект не найден> (725:bdf0002354e006a011e1c7303a489937). Записей там быть не должно, точнее, там есть точно такая же правильная запись, с регистратором, все ок, но записи задвоены, вторая с отсутствующим регистратором. Как можно удалить такие записи из регистра?
#1 by gosn1ck
ТиИ
#2 by Renat11111
тии
#3 by Sh18
Сорри, это что? Тестирование и исправление? Пересчитать регистры?
#4 by Nenaviwu1c20
тестирование и исправление
#5 by Nenaviwu1c20
Операции- тестирование и исправление-запустить(как то так)
#6 by sapphire
Такое может быть в результате загрузки из XML (обмена) :))) Программно определить ссылку регистратора, установить по нему отбор и грохнуть записи. Какая глупость :)))))
#7 by Nenaviwu1c20
chdbfl.exe и на всякий это тоже потесть
#8 by sapphire
Нет, не то. ТИИ создаст ссылку, а она, скорее всего не нужна. Да и вполне вероятно что таких сюрпрайзов может быть много
#9 by Nenaviwu1c20
На фиг грохать что то в ручную(лишние запросы ) Пусь 1с сам исправлят))
#10 by Sh18
нельзя установить отбор по несуществующей ссылке. Как?
#11 by sapphire
Можно :)
#12 by sapphire
Ссылка не пустая :)))
#13 by СвинТуз
если не секрет , то условие для отбора?
#14 by Nenaviwu1c20
ПолучитьСтруктуруХраненияБазыДанных там посмотришь какой регистр и в SQL Напишешь запросик к данной таблице вида delet from where and and и дело с концом
#15 by СвинТуз
все понял ... наверное неопределено или NULL наверное в отборе
#16 by Nenaviwu1c20
это если база не на SQL а так напиши обработочку запрос на 1с
#17 by Sh18
В запросе условие типа Регистратор.Представление Подобно &ЧоНадо и то не работает. Я их отловил по Регистратор.Дата is null. А как в отборе регистра это нарисовать?
#18 by СвинТуз
вот налл в отборе и задай
#19 by Nenaviwu1c20
ВЫБРАТЬ ИЗ    РегистрНакопления.БракВПроизводстве КАК БракВПроизводстве
#20 by Nenaviwu1c20
например так
#21 by Nenaviwu1c20
на всякий все учел)
#22 by Sh18
нельзя задать в отборе null. Там может быть только на равенство, с null сравнивать нельзя. Потому и существует is null, а не =null
#23 by sapphire
Можно и более извращенно :) Загрузить XML удаление набора записей :)
#24 by СвинТуз
Это не грамотно. скорее всего так ГДЕ    (БракВПроизводстве.Период IS NULL
#25 by СвинТуз
ну в общем случае нельзя )
#26 by Sh18
В запросе я это дело получил, отбором Регистр.Дата is null. Но мне это помогает лишь посмотреть - получить запись регистра и удалить ее я таким образом не могу
#27 by sapphire
Это тем более безграмотно ибо период всегда NOT NULL :))))
#28 by sapphire
Да ладно :) Запросом можешь, а запись никак? :))
#29 by СвинТуз
а где Вы тут сравнение с налл видете?
#30 by СвинТуз
да я так пробежал ))) не интересно было особо
#31 by sapphire
Опять-25 :)))) Огородник?
#32 by sapphire
Регистратор не является NULL :)
#33 by СвинТуз
увы у меня базы нет попробывать не могу ) тогда бодайтесь сами )
#34 by Nenaviwu1c20
+
#35 by sapphire
_RecorderRRef NOT NULL в таблицах РН :)
#36 by СвинТуз
понятно что он не может быть НАЛЛ ... я литературу то почитываю ЭлементОтбора (FilterItem) Установить (Set) Синтаксис: Установить(<Значение>, <Использование>) Параметры: Тип: Произвольный. Значение сравнения.
#37 by Sh18
Из помощника: "Важно! Отбор может устанавливаться только на равенство." То есть, Отбор.Регистратор.Вид сравнения всегда равно. А на равно с null не сравнивают. Потому как null не равно null! Я попробую сейчас, но не думаю, что сработает
#38 by СвинТуз
если этот способ не пройдет тогда по другому вряд ли потому что через движения не реально потому что документа нет лезте в БД руками имена таблиц известны проблем тоже вроде не видно )
#39 by СвинТуз
ну да ... ты еще и не пробывал а уже отклонил лень раньше тебя родилась
#40 by Sh18
ошибок не выдает, но количество отобранных записей - 0 :(
#41 by sapphire
#42 by Nenaviwu1c20
база на чем??файловая или как?
#43 by sapphire
Да пофиг какая :)))
#44 by sapphire
#45 by Nenaviwu1c20
ну почему можно б было на SQL запрос толкать)))))
#46 by sapphire
Да? Думаешь проще? Сомневаюсь :)
#47 by Sh18
База на сиквеле. У меня есть мысль, которая должна сработать. Создать документ, подставить ему нужный гуид. Потом этот док распровести (на всякий случай :)) и удалить. Точно сработает. Но придется искать, как кодируется гуид, там не надо группы цифр переставлять, не помню как. Для начала попробую
#48 by sapphire
Бекап сделай на всякий случай :)
#49 by Sh18
Какой бэкап, там сорок орлов! Не сидеть же до восьми ))
#50 by Nenaviwu1c20
я б заочковал чесно))без бекапа
#51 by Sh18
не работает :( Никто не помнит навскидку как из <Объект не найден> (725:bdf0002354e006a011e1c7303a489937) создать гуид?
#52 by СвинТуз
конечно разницы то нет выборка возвращает NULL
#53 by СвинТуз
там две таблицы в склсервере в консоль запросов надо зайти наверное и все сделать
#54 by Aprobator
хороший прикол )))
#55 by Sh18
Никогда не общался с базой напрямую, есть где-нибудь описание?
#56 by Aprobator
+ выбираем БракВПоризводстве, а чистим УчетНоменклатуры.
#57 by hhhh
сделай ТИИ с галкой Создавать объекты: оно тебе и создаст.
#58 by Aprobator
бухам это должно понравиться )
#59 by Sh18
?? БракВПроизводстве - это регистратор для УчетНоменклатуры. Ну и?
#60 by Sh18
Ох не трогать бы лиха, пока оно тихо. Оно мне насоздает! за все четыре года базы... ))
#61 by Aprobator
у тя кривые записи в каком регистре? Выборка идет по регистру накопления БракВПроизводстве, а чистится Регистр УчетНоменклатуры - это нормально?
#62 by hhhh
так ты в копии создай, а в рабочую перенесешь один документ обработкой ВыгрузкаЗагрузкаXML. Мозги включай.
#63 by Sh18
А, ну да, ошибся человек ) У меня все совсем по другому называется, я и не смотрел, только на идею )
#64 by Aprobator
тогда странно, что не сработало. Запрос должен всяко возвращать результат. Или на каком этапе не срабатывает? Кстати, может быть отказ в записи при записи набора. Например из - за даты запрета.
#65 by Sh18
я все-таки пойду проторенной тропкой - создавать документы и приписывать им нужные гуиды. Что-то подобное я делал - вполне новый объект под стертый встает. Только найти надо, как перекодировать гуид, там некоторые группы цифр переставляются
#66 by Sh18
запрос возвращает. А вот потом почистить регистр не получается. Там в отборе сравнение на "равно", а null не равно null!
#67 by Aprobator
какое еще NULL? Там сравнение с битой ссылкой с регистра должно быть.
#68 by ask76
Вот здесь глянь:
#69 by Aprobator
СтрокаРезультата.Регистратор = NULL что ли?
#70 by Aprobator
а по поводу гуида, как вриант - Забираешь битую ссылку, создаешь новый документ и запихиваешь ее в УстановитьСсылкуНового.  Только тестить надо.
#71 by Aprobator
+ хотя вру - при проведении док движения очистит.
#72 by Aprobator
если конечно их в ТЗ предварительно не выгрузить, записать док с проведением и потом его движения подменить.
#73 by hhhh
не, по-любому должно работать. Только регистры поставить нормально: или БракВПроизводстве, или УчетНоменклатуры.
#74 by Aprobator
+100500.
#75 by Sh18
В общем, работает создание ссылки по гуиду и подстановка ссылки во вновь созданный документ. Я нашел, как получить гуид из строки "Объект не найден". Вот, запишите, может пригодиться КонецФункции
#76 by Aprobator
нам не надо ) У нас работает )))))
#77 by Aprobator
+ если, конечно все правильно реализовать.
#78 by Sh18
Ну... Чудо! )) У меня не сработало, но через гуиды уже все поправил Спасибо всем!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям