| 
    
            
         
         | 
    
    
  | 
Программное изменение регистратора | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        RaMMaL    
     31.05.13 
            ✎
    09:29 
 | 
         
        Всем привет. Народ подскажите как программно изменить регистратор в регистре. Пробую вот таким способом, но ничего не в результате выполнения этой процедуры не происходит, старый регистратор как был так и остался 
  
        НаборЗаписей = РегистрыСведений.СостоянияОСОрганизаций.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(стр.Регистратор); НаборЗаписей.Прочитать(); для каждого строкаОС из НаборЗаписей цикл строкаОС.Регистратор = ДокументКорректировкиРегистра; КонецЦикла; НаборЗаписей.Записать();  | 
|||
| 
    1
    
        Maxus43    
     31.05.13 
            ✎
    09:37 
 | 
         
        НаборЗаписей = РегистрыСведений.СостоянияОСОрганизаций.СоздатьНаборЗаписей();
  
        НаборЗаписей.Отбор.Регистратор.Установить(стр.Регистратор); НаборЗаписей.Прочитать(); НаборЗаписей2 = РегистрыСведений.СостоянияОСОрганизаций.СоздатьНаборЗаписей(); НаборЗаписей2.Отбор.Регистратор.Установить(стр.РегистраторВТОРОЙ); НаборЗаписей2.Загрузить(НаборЗаписей.Выгрузить()); НаборЗаписей2.Записать();  | 
|||
| 
    2
    
        Maxus43    
     31.05.13 
            ✎
    09:38 
 | 
         
        + возможно перед выгрузкой надо очистить колонку регистратор у загружаемой ТЗ, надо проврить, не помню     
         | 
|||
| 
    3
    
        RaMMaL    
     31.05.13 
            ✎
    09:40 
 | 
         
        (2) Ок спасибо, попробуем     
         | 
|||
| 
    4
    
        abjurer    
     31.05.13 
            ✎
    09:43 
 | 
         
        Не очистить, а заполнить.
  
        НаборЗаписей = РегистрыСведений.СостоянияОСОрганизаций.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(стр.Регистратор); НаборЗаписей.Прочитать(); ВременнаяТаблица = НаборЗаписей.Выгрузить(); ВременнаяТаблица.ЗаполнитьЗначения(стр.РегистраторВТОРОЙ, "Регистратор"); НаборЗаписей2 = РегистрыСведений.СостоянияОСОрганизаций.СоздатьНаборЗаписей(); НаборЗаписей2.Отбор.Регистратор.Установить(стр.РегистраторВТОРОЙ); НаборЗаписей2.Загрузить(ВременнаяТаблица); НаборЗаписей2.Записать();  | 
|||
| 
    5
    
        Maxus43    
     31.05.13 
            ✎
    09:57 
 | 
         
        (4) отбор на наборе2 стоит, так что можно и очистить емнип, безразницы     
         | 
|||
| 
    6
    
        RaMMaL    
     31.05.13 
            ✎
    10:01 
 | 
         
        Не выходит, пишет что запись с такими ключевыми полями существует     
         | 
|||
| 
    7
    
        Maxus43    
     31.05.13 
            ✎
    10:02 
 | 
         
        (6)>(4)     
         | 
|||
| 
    8
    
        RaMMaL    
     31.05.13 
            ✎
    10:09 
 | 
         
        (7) я сделал по принципу (4)     
         | 
|||
| 
    9
    
        Maxus43    
     31.05.13 
            ✎
    10:10 
 | 
         
        НаборЗаписей2.Отбор.Регистратор.Установить(стр.РегистраторВТОРОЙ);
  
        НаборЗаписей2.Прочитать(); Сообщить(НаборЗаписей2.Количество());  | 
|||
| 
    10
    
        RaMMaL    
     31.05.13 
            ✎
    10:27 
 | 
         
        (9) И что это даст?     
         | 
|||
| 
    11
    
        Maxus43    
     31.05.13 
            ✎
    10:33 
 | 
         
        (10) а непонятно разве?     
         | 
|||
| 
    12
    
        Maxus43    
     31.05.13 
            ✎
    10:34 
 | 
         
        короче код в студию полный     
         | 
|||
| 
    13
    
        RaMMaL    
     31.05.13 
            ✎
    10:42 
 | 
         
        Хм, ладно черт с этими регистраторами. как удалить запись в регистре по регистратору? Я думаю не маиться переписью этих регистраторов а просто удалить существующие записи (предварительно сохранив их в таблицу) и после загрузить их, только уже с новым регистратором     
         | 
|||
| 
    14
    
        Maxus43    
     31.05.13 
            ✎
    10:44 
 | 
         
        НаборЗаписей = РегистрыСведений.СостоянияОСОрганизаций.СоздатьНаборЗаписей();
  
        НаборЗаписей.Отбор.Регистратор.Установить(стр.Регистратор); наборзаписей.Записать(); //вот и удаление  | 
|||
| 
    15
    
        RaMMaL    
     31.05.13 
            ✎
    10:47 
 | 
         
        А кода конкретного нет, я делал обрезку базы, и натолкнулся на такую отвратную вещь как регистр  сведений непереодический. И теперь пытаюсь перебить записи с документом корректировки, чтобы документы старых регистраторов можно было спокойно грохнуть     
         | 
|||
| 
    16
    
        Maxus43    
     31.05.13 
            ✎
    11:08 
 | 
         
        независимый может? нет у независимых регистратора, никуда ты их не свернёшь, просто удаляй, если эти данные не нужны уже     
         | 
|||
| 
    17
    
        abjurer    
     31.05.13 
            ✎
    11:16 
 | 
         
        (7) странно это. но тогда долгий путь. читаем набор записей по старому регистратору в таблицу значений или в табличную часть документа (нового регистратора). удаляем старые записи. пишем новые. все это желательно в одной транзакции.     
         | 
|||
| 
    18
    
        RaMMaL    
     31.05.13 
            ✎
    11:59 
 | 
         
        (7) Ну вобщем я примерно так и сделал, выгрузил старые записи в ТЗ, поудалял их из регистра, и загрузил из ранее сохраненной ТЗ в регистр, но уже с новым регистратором     
         | 
|||
| 
    19
    
        RaMMaL    
     31.05.13 
            ✎
    12:00 
 | 
         
        "RaMMaL 
  
        18 - 31.05.13 - 11:59 (7) Ну вобщем я примерно так и сделал, выгрузил старые записи в ТЗ, поудалял их из регистра, и загрузил из ранее сохраненной ТЗ в регистр, но уже с новым регистратором" ошибка в сообщении (18) не (7) а (17)  | 
|||
| 
    20
    
        RaMMaL    
     31.05.13 
            ✎
    12:02 
 | 
         
        Примерно так :
  
        Для Каждого стр из ТабДвиж цикл НаборЗаписей = РегистрыСведений.СостоянияОСОрганизаций.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(стр.Регистратор); НаборЗаписей.Записать(); КонецЦикла; ТабДвиж.ЗаполнитьЗначения(НовыйДокументРегистратор, "Регистратор"); НаборЗаписей2 = РегистрыСведений.СостоянияОСОрганизаций.СоздатьНаборЗаписей(); НаборЗаписей2.Отбор.Регистратор.Установить(НовыйДокументРегистратор); НаборЗаписей2.Загрузить(ТабДвиж); НаборЗаписей2.Записать();  | 
|||
| 
    21
    
        hhhh    
     31.05.13 
            ✎
    14:03 
 | 
         
        (20) в цикле-то нафига записывать?     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |