Имя: Пароль:
1C
 
Удалить проводки потерянного документа
0 svchernova
 
21.10.15
13:07
Здравствуйте,
проблема в следующем: в оборотно-сальдовой ведомости увидела, что проводки есть, но нет регистратора-документа. вместо ссылки выходит "Объект не найден". Как правильно нужно поступить в данной ситуации?
Можно ли как-нибудь удалить проводки?
Спасибо
1 Рэйв
 
21.10.15
13:08
так же как и с обычным документом.
2 svchernova
 
21.10.15
13:09
(1) Как?
Документа ведь нет
3 Рэйв
 
21.10.15
13:09
делаешь набор записей, отбор на битую ссылку и НаборЗаписей.Записать()
4 Nuobu
 
21.10.15
13:09
(0) ТИИ
5 Рэйв
 
21.10.15
13:09
(2)Документа нет,а ссылка есть
6 Рэйв
 
21.10.15
13:10
я такое через свою консоль запросов с произвольным кодом делаю
7 svchernova
 
21.10.15
13:11
(4) Что такиое ТИИ
8 Ващета
 
21.10.15
13:11
Книга знаний: Пустые ссылки

Ниже дана программа для удаления записей регистров, у которых регистратор - битая ссылка, т.е. не существует в базе.

Процедура УдалениеБитыхСсылок(ИмяРегистра,ТипРегистра,ТипРегистраЗ)
    МенеджерРегистра = ТипРегистра[ИмяРегистра];
    
    Запрос = Новый Запрос("
    |ВЫБРАТЬ Регистратор
    |ИЗ "+ТипРегистраЗ+"."+ИмяРегистра+"
    |ГДЕ Регистратор.Ссылка ЕСТЬ NULL И НЕ Регистратор = &ПустаяСсылкаДокумента");
    Запрос.УстановитьПараметр("ПустаяСсылкаДокумента",Неопределено);
    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        Набор = ТипРегистра[ИмяРегистра].СоздатьНаборЗаписей();
        Набор.Отбор.Регистратор.Установить(Выборка.Регистратор);
        Набор.Записать();
        ОбработкаПрерыванияПользователя();
        Состояние(""+ТипРегистра+" "+ИмяРегистра);
    КонецЦикла;
КонецПроцедуры


Процедура КнопкаВыполнитьНажатие(Кнопка)

    Для Каждого пРегистр из Метаданные.РегистрыСведений Цикл
        Подчинен        =    (пРегистр.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.ПодчинениеРегистратору);
        Если Подчинен Тогда
            УдалениеБитыхСсылок(пРегистр.Имя,РегистрыСведений,"РегистрСведений")
        КонецЕсли;    
    КонецЦикла;
  
    Для Каждого пРегистр из Метаданные.РегистрыБухгалтерии Цикл
        УдалениеБитыхСсылок(пРегистр.Имя,РегистрыБухгалтерии,"РегистрБухгалтерии")
    КонецЦикла;
    
    Для Каждого пРегистр из Метаданные.РегистрыРасчета Цикл
        УдалениеБитыхСсылок(пРегистр.Имя,РегистрыРасчета,"РегистрРасчета")
    КонецЦикла;

    Для Каждого пРегистр из Метаданные.РегистрыНакопления Цикл
        УдалениеБитыхСсылок(пРегистр.Имя,РегистрыНакопления,"РегистрНакопления")
    КонецЦикла;
    
КонецПроцедуры
9 Рэйв
 
21.10.15
13:11
или если обработкой, то сделай запрос с поиском битых регистраторов, потом их перебирай и очищай
10 svchernova
 
21.10.15
13:11
(6) ПОдскажи, как это сделать, пожалуйста
11 Мыш
 
21.10.15
13:12
(7) Тестирование и исправление. В Конфигураторе делается.
12 Рэйв
 
21.10.15
13:12
(10)Вот , делай как в  (8)
13 svchernova
 
21.10.15
13:13
(8) Спасибо! и всем спасибо, попробую :)
14 svchernova
 
21.10.15
13:14
Закрываю тему, спасибо!
15 Рэйв
 
21.10.15
13:15
(13)Только долбавь в запрос РАЗЛИЧНЫЕ, чтобы все движения не тянул
16 svchernova
 
21.10.15
13:28
(15) спасибо :)