| 
    
            
         
         | 
    
  | 
Восстановление удаленной номенклатуры | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        kn    
     06.05.10 
            ✎
    07:54 
 | 
         
        Вопрос такой - в БП была "чистка" справочника Номенклатуры, в результате чего удалились нужные элементы(по ним имеются остатки по 41 счету)Как восстановить эти элементы, не восстанавливая все.Надо восстановить порядка 30 элементов,наименование каждого выискивать в ЖР и потом переносить из архива не хочется.Есть ли более быстрый способ?     
         | 
|||
| 
    1
    
        Мерседес    
     06.05.10 
            ✎
    08:40 
 | 
         
        Волшебный способ ?     
         | 
|||
| 
    2
    
        kn    
     06.05.10 
            ✎
    08:41 
 | 
         
        ну хотябы как наименования узнать не из ЖР а по-быстрей из базы архива?     
         | 
|||
| 
    3
    
        Mitriy    
     06.05.10 
            ✎
    08:41 
 | 
         
        из бекапа... а программисту табуреткой по пальцам...     
         | 
|||
| 
    4
    
        Ksandr    
     06.05.10 
            ✎
    08:41 
 | 
         
        он называется Бэкап? Вы еще этого не делали?     
         | 
|||
| 
    5
    
        Ksandr    
     06.05.10 
            ✎
    08:41 
 | 
         
        теперь будете     
         | 
|||
| 
    6
    
        Mitriy    
     06.05.10 
            ✎
    08:42 
 | 
         
        на ИТС есть обработка ВыгрузкаЗагрузкаДанныхXML.epf     
         | 
|||
| 
    7
    
        Mitriy    
     06.05.10 
            ✎
    08:42 
 | 
         
        (6) к (2)     
         | 
|||
| 
    8
    
        kn    
     06.05.10 
            ✎
    08:43 
 | 
         
        (5)как умно-то
  
        (6)чет не понимаю как эта обработка поможет узнать наименвоания  | 
|||
| 
    9
    
        Ksandr    
     06.05.10 
            ✎
    08:46 
 | 
         
        (8) Не, серьезно, бэкап есть?     
         | 
|||
| 
    10
    
        kn    
     06.05.10 
            ✎
    08:46 
 | 
         
        А в ЖР у что-то поиск по этой битой ссылке не идет, так глазами если только искать что очень долго,удаляли несколько дней     
         | 
|||
| 
    11
    
        Mitriy    
     06.05.10 
            ✎
    08:46 
 | 
         
        (8) я тоже не знаю, знаю только, что с помощью этой обработки ты можешь восстановить номенклатуру из бекапа...     
         | 
|||
| 
    12
    
        kn    
     06.05.10 
            ✎
    08:47 
 | 
         
        надо не всю вот.     
         | 
|||
| 
    13
    
        kn    
     06.05.10 
            ✎
    09:16 
 | 
         
        (11)а поле отбора какое?Если бы знать их наименования или коды, а по тому что от элемента осталось отбор то нельзя сделать.     
         | 
|||
| 
    14
    
        Mitriy    
     06.05.10 
            ✎
    09:23 
 | 
         
        (13) либо полностью загружать, либо ваять свою обработку, с поиском битых ссылок, поиском гуидов в старой базе и загрузке их в новую... можно поискать на инфостарте, вроде бы уже кто-то такое ваял, хотя на сто процентов не уверен...     
         | 
|||
| 
    15
    
        kn    
     06.05.10 
            ✎
    09:28 
 | 
         
        а можно по гуиду получить наименование или код (в бэкапе)?Как?     
         | 
|||
| 
    16
    
        Mitriy    
     06.05.10 
            ✎
    09:30 
 | 
         
        ПолучитьСсылку     
         | 
|||
| 
    17
    
        kn    
     06.05.10 
            ✎
    09:33 
 | 
         
        а тогда еще вопрос вот у этого <Объект не найден> (33:8fc2000423b2e8b611dab4de88c7104e) гуид какой?     
         | 
|||
| 
    18
    
        DmitrO    
     06.05.10 
            ✎
    09:37 
 | 
         
        1.Разворачиваешь копию из бекапа в новую базу.
  
        2.Пишешь обработку, которая делает слежующее: 2.1.Открывает копию по OLE (ComConnector-ом) 2.2.Запросом по 41 счету получает список ссылок номенклатуры которые надо восстановить. 2.3.По каждой ссылке по OLE через сериализацию XDTO тащишь объекты номенклатуры в свою базу и записываешь их, объекты перенесутся со всеми реквизитами. Работы на 20 минут, код уместится на одной страничке.  | 
|||
| 
    19
    
        Defender aka LINN    
     06.05.10 
            ✎
    09:40 
 | 
         
        (17) У него ГУИД - УникальныйИдентификатор()!     
         | 
|||
| 
    20
    
        kn    
     06.05.10 
            ✎
    09:42 
 | 
         
        (18)спасибо но с XDTO не умею работать,ближе КД и xml.
  
        (19)ну догадываюсь что это синонимы  | 
|||
| 
    21
    
        kn    
     06.05.10 
            ✎
    09:53 
 | 
         
        (18)а как получить список номенклатуры которую надо восстановить по 41 счету,может я через КД смогу потом перенести?     
         | 
|||
| 
    22
    
        Mitriy    
     06.05.10 
            ✎
    09:55 
 | 
         
        (21) запросом     
         | 
|||
| 
    23
    
        kn    
     06.05.10 
            ✎
    09:56 
 | 
         
        как условие на битость ссылки наложить?     
         | 
|||
| 
    24
    
        DmitrO    
     06.05.10 
            ✎
    09:57 
 | 
         
        (23) где Субконто1.Ссылка есть NULL     
         | 
|||
| 
    25
    
        Mitriy    
     06.05.10 
            ✎
    09:59 
 | 
         
        (23) да можешь просто выгрузить из бекапа только ту номенклатуру, которая есть на 41-ом счете... и загрузить ее в базу... тогда не надо будет заморачиваться с гуидами...     
         | 
|||
| 
    26
    
        kn    
     06.05.10 
            ✎
    10:05 
 | 
         
        (24)спс,во темнота-то.
  
        (25)ну можно но удаляли несколько дней,если возьму какой нибудь древний бэкап то после то могли по номенклатуре быть движения.  | 
|||
| 
    27
    
        hhhh    
     06.05.10 
            ✎
    10:21 
 | 
         
        (26) еще можно ТИИ запустить с флажком "Добавлять объекты". Он тебе эту номенклатуру добавит, но с нестандартными кодами и наименованиями: F00000001, F00000002 и т.д. И уже в них можешь вбивать наименования.     
         | 
|||
| 
    28
    
        Megas    
     06.05.10 
            ✎
    10:24 
 | 
         
        (0) Что означает "Не восстанавливая всё" и "Произвели чистку"  
        Вы что непосредственно поудаляли номенклатуру ? Невзирая на ссылки?  | 
|||
| 
    29
    
        kn    
     06.05.10 
            ✎
    10:26 
 | 
         
        (27)не это по-моему ну очень долго.
  
        (28)В УТ удаляли там ссылок не было при переносе удалились из БП а там оказалось что ссылки были(у нас нестандартный обмен)  | 
|||
| 
    30
    
        hhhh    
     06.05.10 
            ✎
    10:30 
 | 
         
        (29) а что, большая база? Можно запускать не всё ТИИ, а только один пункт: проверка логической целостности.     
         | 
|||
| 
    31
    
        Megas    
     06.05.10 
            ✎
    10:31 
 | 
         
        (17) Помню делал как то восстановление номенклатуры... выискивал ГУИД и ПОДСТАВЛЯЛ .  
        (30) Я для 1 элемента задолбался ТИИ делать.. и как то тупо восстановилось  | 
|||
| 
    32
    
        hhhh    
     06.05.10 
            ✎
    10:37 
 | 
         
        (31) да там без разницы: 1 элемент или 30. По времени одинаково.     
         | 
|||
| 
    33
    
        пента    
     06.05.10 
            ✎
    10:41 
 | 
         
        +1 на ИТС есть обработка ВыгрузкаЗагрузкаДанныхXML.epf  
        легко и быстро :)  | 
|||
| 
    34
    
        DmitrO    
     06.05.10 
            ✎
    11:08 
 | 
         
        легко и быстро это вот так примерно:
  
        Процедура ВосстановлениеНоменклатуры(СтрокаПодключенияККопии) Connector = Новый ComОбъект("V81.ComConnector"); БазаКопия = Connector.Connect(СтрокаПодключенияККопии); Запрос = Новый Запрос; Запрос.Текст = " |выбрать | Обороты.Субконто1 как Номенклатура |из РегистрБухгалтерии.Хозрасчетный.Обороты(,,,Счет = Значение(ПланыСчетов.Хозрасчетный.ТоварыНаСкладах)) как Обороты |где Обороты.Субконто1.Ссылка есть Null |"; БазаТипНом = БазаКопия.NewObject("ОписаниеТипов", "СправочникСсылка.Номенклатура").Типы().Получить(0); БазаЗаписьXML = БазаКопия.NewObject("ЗаписьXML"); ЧтениеXML = Новый ЧтениеXML; Выб = Запрос.Выполнить().Выбрать(); Пока Выб.Следующий() Цикл БазаЗаписьXML.УстановитьСтроку(); БазаКопия.СериализаторXDTO.ЗаписатьXML(БазаЗаписьXML, БазаКопия.ЗначениеXML(БазаТипНом, XMLСтрока(Выб.Номенклатура)).ПолучитьОбъект()); ЧтениеXML.УстановитьСтроку(БазаЗаписьXML.Закрыть()); ОбъектНоменклатуры = СериализаторXDTO.ПрочитатьXML(ЧтениеXML); ЧтениеXML.Закрыть(); ОбъектНоменклатуры.ОбменДанными.Загрузка = Истина; ОбъектНоменклатуры.Записать(); КонецЦикла; КонецПроцедуры Раз тема живет написал иллюстрацию к (18)  | 
|||
| 
    35
    
        kn    
     06.05.10 
            ✎
    11:14 
 | 
         
        (34)попробую, спасибо за код.     
         | 
|||
| 
    36
    
        kn    
     06.05.10 
            ✎
    12:15 
 | 
         
        (34)Глянь пжл-та, что-то ругается "Метод объекта не обнаружен (ЗначениеXML)"     
         | 
|||
| 
    37
    
        DmitrO    
     06.05.10 
            ✎
    12:57 
 | 
         
        Правильно ругается чо, потому что надо так: XMLЗначение     
         | 
|||
| 
    38
    
        kn    
     06.05.10 
            ✎
    13:12 
 | 
         
        ну все сработало,спс.     
         | 
|||
| 
    39
    
        DmitrO    
     06.05.10 
            ✎
    13:24 
 | 
         
        Во всем разобраться, все детали изучить, что не понятно не стесняться - спросить, можно по аське.     
         | 
|||
| 
    40
    
        kn    
     06.05.10 
            ✎
    13:31 
 | 
         
        хорошо.     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |