Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Непосредственное удаление объектов

Непосредственное удаление объектов
Я
   kible
 
15.02.18 - 07:20
Поделитесь пожалуйста обработкой непосредственного удаления объектов.
Все облазил, не могу найти.
 
 
   kible
 
1 - 15.02.18 - 07:23
(0)+ kible(собака)mail.ru
   Chameleon1980
 
2 - 15.02.18 - 07:24
Удалить(параметр смотрим да?)
   kible
 
3 - 15.02.18 - 07:28
(2) Смотрим. Объектов много. Справочники, документы разные.
   МимохожийОднако
 
4 - 15.02.18 - 07:43
Базу пожалей, не делай так.
   shadow_sw
 
5 - 15.02.18 - 07:47
(3) метаданные в помощь
   Bigbro
 
6 - 15.02.18 - 07:52
универсальный подбор и обработка объектов.
отличный инструмент
   kible
 
7 - 15.02.18 - 07:53
(6) там каждый объект выбирать нужно
   Bigbro
 
8 - 15.02.18 - 08:02
так если "объектов много" то и нужно выбирать объекты.
а если много классов - видов документов, видов справочников и т.п., которые нужно удалять полностью, без отбора то через метаданные.
   nordbox
 
9 - 15.02.18 - 08:04
(7) Хочешь плохому научу? ))
   echo77
 
10 - 15.02.18 - 08:04
(0) Может проще пустую базу создать и нужные объекты просто перенести из исходной?
 
 Рекламное место пустует
   nordbox
 
11 - 15.02.18 - 08:11
(7) Учу плохому )))
В конфе, например у Справочника(ов) в ФормеСписка ставишь РежимВыделения множественное, а в правах у Роли на Справочники ставишь галочку Интерактивное удаление и развлекайся )))
и действительно, базу то пожалей, возврата назад не будет кроме как из резервной копии.
Народ ногами меня не пинайте, он сам напросился ))
   catena
 
12 - 15.02.18 - 08:13
(11)Он в обработке ленится тип выбрать, а ты ему предлагаешь весь список выбирать.
   Рэйв
 
13 - 15.02.18 - 08:18
(0)Ну, если ты так хочешь.
Кто не спрятался, я не виноват.
Результаты использования кода- на твоей совести.
//--

    Запрос=Новый Запрос;
    
    Менеджеры = Новый СписокЗначений;
    Менеджеры.Добавить("Документы","Документ");
    Менеджеры.Добавить("Справочники","Справочник");
    Менеджеры.Добавить("ПланыВидовХарактеристик","ПланВидовХарактеристик");
    Менеджеры.Добавить("ПланыСчетов","ПланСчетов");
    Менеджеры.Добавить("ПланыВидовРасчета","ПланВидовРасчета");
    Менеджеры.Добавить("ПланыОбмена","ПланОбмена");
    Менеджеры.Добавить("БизнесПроцессы","БизнесПроцесс");
    Менеджеры.Добавить("Задачи","Задача");
    Для каждого Элемент из Менеджеры Цикл
        ВЗапрос=Элемент.Представление;
        
        Тип=Метаданные[Элемент.Значение];
        
        Для каждого Вид из Тип Цикл
            Имя=Вид.Имя;
            Запрос.Текст="Выбрать Нечто.Ссылка Из "+ВЗапрос+"."+Имя+" КАК Нечто";
            Выборка=Запрос.Выполнить().Выбрать();
            Пока Выборка.Следующий() Цикл
                Об=Выборка.Ссылка.ПолучитьОбъект();
                Об.Удалить();
            КонецЦикла;    
        КонецЦикла;    
    КонецЦикла;
   Рэйв
 
14 - 15.02.18 - 08:19
И рекомендую сделать копию перед использованием кода. а то малоли...Вдруг ты потом передумаешь:-)
   nordbox
 
15 - 15.02.18 - 08:22
(0) Ты не забывай, что если в спр Номенклатуры грохнишь
хоть один элемент, у тебя база сразу поедет, у Ном есть подчиненные, Единицы измерения, ШК, Свойства, характеристики если используешь хранилища и там тоже, короче много чего поедет, я про доки уже молчу
У контриков тоже самое там и КИ потянется и Банки и ответственные и т.д.
   nordbox
 
16 - 15.02.18 - 08:25
+15 у тебя база станет хуже чем мусорка  на вокзале
   kible
 
17 - 15.02.18 - 08:28
(13) Спасибо.

Обработку буду запускать на копии.
   kible
 
18 - 15.02.18 - 08:29
Задача удалить все документы до 2017 года.
   Рэйв
 
19 - 15.02.18 - 08:30
(18)Ну, тогда немного допилишь (13), удалишь лишние менеджеры и пойдет. Только не забудь прикрутить удаление движений у доком перед удалением, а то некрасиво получится с регистрами.
   nordbox
 
20 - 15.02.18 - 08:31
Ох ты какой мудрый))) ты не первый,
а остатки, а партии если есть, а цены, а незакрытые заказы и т.д. дофига чего ))
   catena
 
21 - 15.02.18 - 08:31
А потом окажется, что нужна была свертка...
   nordbox
 
22 - 15.02.18 - 08:31
(20) это к (18)
   kible
 
23 - 15.02.18 - 08:32
Я объяснил заказчику как все будет он согласен.
   nordbox
 
24 - 15.02.18 - 08:34
(23) (х)Фигово объяснял, потому что заказчик структуру не знает, и последствия тоже не понимает
   Рэйв
 
25 - 15.02.18 - 08:36
(24)Никогда не надо спорить с заказчиком, упертом в своем желании заиметь себе геморой. За его деньги ты ему его предоставишь.А оптом за его же деньги будешь избавлять.Сплошной профит и уважуха:-)
   catena
 
26 - 15.02.18 - 08:37
Интересно еще, как будут справочники по 2017 года удаляться...
   kible
 
27 - 15.02.18 - 08:38
(24) Хорошо я объяснил. база не будет использоваться для работы. Я так понял учет бух учет будут проверять.
   lodger
 
28 - 15.02.18 - 08:40
(26) можно попытаться из гуида разгадать примерные даты создания.
   МимохожийОднако
 
29 - 15.02.18 - 08:42
Возьми архивную копию до нужного периода и всё.
   kible
 
30 - 15.02.18 - 08:44
(29) Нужно только 2017-2018 года.
   один я дАртаньян
 
31 - 15.02.18 - 08:46
(0) (13) Если много, то лучше отключать расчет регистров.

РегистрыСведений[РегистрИмя].УстановитьИспользованиеИтогов(РасчитыватьИтоги);
   один я дАртаньян
 
32 - 15.02.18 - 08:47
(0)  Конфа какая?
   kible
 
33 - 15.02.18 - 08:48
(32) УТП
 
 
   Serg_1960
 
34 - 15.02.18 - 08:51
Грохнуть документы до определенной даты - не проблема. Сложнее - удалить их движения. И совсем скучно - удалять не используемые записи справочников.
   один я дАртаньян
 
35 - 15.02.18 - 08:51
(33) По укране ХЗ, но может там есть типовая свертка.

Тупо сверни базу. А если останутся партии, так можно ТЧ у поступлений товаров почистить, и номера входящих накладных и входящиз счетов-фактур(если они у вас есть).

В том, что останется никакая проверка не разберется.
   один я дАртаньян
 
36 - 15.02.18 - 08:53
(33) А если надо базу за текущий приод предоставить.

Можно взять вгрузкуЗагрузкуХМЛ у документов поставить отбор, и алочки выгружать при необходимости снять.
   МимохожийОднако
 
37 - 15.02.18 - 08:53
Достаточно Универсальной обработкой перенести документы в пустую базу и не проводить до удаления. Всё равно будет фигня.
   Рэйв
 
38 - 15.02.18 - 08:55
(34)>>Сложнее - удалить их движения
Чего там сложного то?
Перед удалением сделать

//--

Для Каждого Дв Из Об.Движения Цикл
     Дв.Прочитать();
     Дв.Очистить();
КонеЦикла; 
Об.Записать();
   kible
 
39 - 15.02.18 - 08:56
Я сначала свернул базу. Теперь удаляю документы.
   один я дАртаньян
 
40 - 15.02.18 - 08:57
(39) &НаСервере
Процедура Команда1НаСервере()
    ЗаросОрг = Новый Запрос;    
    ЗаросОрг.Текст = "ВЫБРАТЬ
    |    Организации.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.Организации КАК Организации
    |ГДЕ
    |    Организации.ПометкаУдаления";
    
    тзОрг = ЗаросОрг.Выполнить().Выгрузить();
    спОрганизаций = Новый СписокЗначений;
    
    спОрганизаций = тзОрг.ВыгрузитьКолонку("Ссылка");
    
    МассивСсылк = Новый массив;
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("спОрганизаций",спОрганизаций);
    ЗапросТекст = "ВЫБРАТЬ
    |    АвансовыйОтчет.Ссылка
    |ИЗ
    |    Документ.АвансовыйОтчет КАК АвансовыйОтчет
    |ГДЕ
    |    АвансовыйОтчет.Организация В(&спОрганизаций)";
    
    НПП = 0;
    КолВо = Метаданные.Документы.Количество();
    Для Каждого ТекДок из Метаданные.Документы Цикл 
        НПП = НПП + 1;
        
        
        Сообщить("Обработано: "+НПП + " из " +КолВо +" "+СокрЛП(Строка(ТЕкДок.Имя)));
        
        
        ХХХ =  ТЕкДок.РЕквизиты.Найти("организация");
        Если  ХХХ <> Неопределено  ТОгда
            Запрос.Текст = СтрЗаменить(ЗапросТекст,"Документ.АвансовыйОтчет КАК АвансовыйОтчет","Документ."+СокрЛП(Строка(ТЕкДок.Имя))+" КАК АвансовыйОтчет");
            МассивСсылк.Очистить();
            тз = Запрос.Выполнить().Выгрузить();
            Для каждого стрТз из тз Цикл
                МассивСсылк.Добавить( стрТз.Ссылка);
            КонецЦикла;
            Сообщить("Колво ссылок:"+тз.Количество());
            УдалитьОбъекты(МассивСсылк,Ложь)
        КонецЕсли;
    КонецЦИкла;
    
    
    
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
    Команда1НаСервере();
КонецПроцедуры
   Рэйв
 
41 - 15.02.18 - 08:57
(39)Есть универсальная обработка по свертке базы. Там на уровне скуля можно удалить все выбранные документы  за период
   один я дАртаньян
 
42 - 15.02.18 - 08:58
(39) Но лучше не удалять документы. Можно попробовать обработкой поиск и замена дублирующих.
   Serg_1960
 
43 - 15.02.18 - 08:59
(37) +1 с поправкой: Если уж переносить, но переносить документы после даты удаления. Ну и, разумеется, все ссылочные объекты, упомянутые в них.

(38) Между прочим, я сказал не уточняя проблему. Специально для Вас: "сложнее по времени". Так Ок? :)
   Рэйв
 
44 - 15.02.18 - 09:00
(43)Ладно, так пойдет:-)
   Serg_1960
 
45 - 15.02.18 - 09:00
(39) RLS им напиши чтобы не видели документы до даты свёртки :)
   kible
 
46 - 15.02.18 - 09:05
(45) база должна быть готовая вчера)) А с РЛС я не дружу.


Список тем форума
Рекламное место пустует  Рекламное место пустует
Программист всегда исправляет последнюю ошибку.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует