|   |   | 
| 
 | Получится так удалить организацию из базы? | ☑ | ||
|---|---|---|---|---|
| 0
    
        SweetaAngel 01.04.17✎ 10:33 | 
        Надо удалить несколько организаций из базы.
 Допустим будет код МассивСсылк = Новый массив; МассивСсылк.Добавить(Справочники.Организации.НайтиПоКоду("000000001")); МассивСсылк.Добавить(Справочники.Организации.НайтиПоКоду("000000001")); УдалитьОбъекты(МассивСсылк,Ложь); А дальше тестирование с галочками очищать ссылки, удалть объекты. Получтся? Или может еще какой варинат? | |||
| 1
    
        RomanYS 01.04.17✎ 10:36 | 
        Что-то определенно получится. Каша в журналах получится. А формально организации будут удалены.     | |||
| 2
    
        SweetaAngel 01.04.17✎ 10:37 | 
        (1) А документы в которых будет ошибочный объект?     | |||
| 3
    
        RomanYS 01.04.17✎ 10:42 | 
        (2) в них ТИИ заменит битую ссылку на пустую. Документы останутся, вместе с проводками.     | |||
| 4
    
        SweetaAngel 01.04.17✎ 10:47 | 
        (3) А что насчет движений в регистрах. Они то проавдут?     | |||
| 5
    
        RomanYS 01.04.17✎ 10:50 | 
        Держи
 https://cloud.mail.ru/public/L87s/GYV7KEpUu только рассматривай это как пример кода, а не как рабочий инструмент. Писалось для КА1.1, но в целом там универсально. (4) Движения регистров я и называю проводками. | |||
| 6
    
        SweetaAngel 01.04.17✎ 17:59 | 
        (5) 
 Так и я умею: Процедура КнопкаСформироватьНажатие(Кнопка) // Вставить содержимое обработчика. МассивСсылк = Новый массив; спОрганизаций = Новый СписокЗначений; спОрганизаций.Добавить(Справочники.Организации.НайтиПоКоду("000000002")); спОрганизаций.Добавить(Справочники.Организации.НайтиПоКоду("000000004")); Запрос = Новый Запрос; Запрос.УстановитьПараметр("спОрганизаций",спОрганизаций); ЗапросТекст = "ВЫБРАТЬ | АвансовыйОтчет.Ссылка |ИЗ | Документ.АвансовыйОтчет КАК АвансовыйОтчет |ГДЕ | АвансовыйОтчет.Организация В(&спОрганизаций)"; НПП = 0; КолВо = Метаданные.Документы.Количество(); Для Каждого ТекДок из Метаданные.Документы Цикл НПП = НПП + 1; Сообщить("Обработано: "+НПП + " из " +КолВо +" "+СокрЛП(Строка(ТЕкДок.Имя))); ХХХ = ТЕкДок.РЕквизиты.Найти("организация"); Если ХХХ <> Неопределено ТОгда Запрос.Текст = СтрЗаменить(ЗапросТекст,"Документ.АвансовыйОтчет КАК АвансовыйОтчет","Документ."+СокрЛП(Строка(ТЕкДок.Имя))+" КАК АвансовыйОтчет"); МассивСсылк.Очистить(); тз = Запрос.Выполнить().Выгрузить(); Для каждого стрТз из тз Цикл МассивСсылк.Добавить( стрТз.Ссылка); КонецЦикла; Сообщить("Колво ссылок:"+МассивСсылк.Количество()); УдалитьОбъекты(МассивСсылк,Ложь) КонецЕсли; КонецЦИкла; Но есть документы в которых 26 000 записей и при удалении выходит ошибка: "не хватате памяти". | |||
| 7
    
        Фрэнки 01.04.17✎ 18:01 | 
        (6) лучше бы там писалось "не хватает мозгов"     | |||
| 8
    
        Serg_1960 01.04.17✎ 18:03 | 
        Ветка Первого апреля? Зачёт.     | |||
| 9
    
        RomanYS 01.04.17✎ 18:25 | 
        (6) ну попробуй удалить 25999 записей, может хватит.
 Для ускорения надо ещё выключать итоги, очистка движений может идти на порядок быстрее. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |