| 
    
            
         
         | 
    
  | 
Перенос регистра сведений при помощи конвертации КД 2 | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Left_Twix    
     02.07.25 
            ✎
    18:10 
 | 
         
        Добрый день. Возник следующая проблема. Дано:
 
        Регистр сведений, на приемнике имеющий 3 измерения - Пользователь, Организация, Роль. Регистр не периодический. Пользователь в РС может изменяться. Задача, сократить поля поиска регистра до полей Организация и Роль, чтобы при изменении пользователя старая запись исчезала, но появлялась новая - с той же организацией и ролю, но с другим пользователем.  | 
|||
| 
    1
    
        Ёпрст    
     гуру 
    02.07.25 
            ✎
    18:38 
 | 
         
        (0) Если смотреть сверху, то сбоку кажется, что снизу ничего не видно     
         | 
|||
| 
    2
    
        craxx    
     02.07.25 
            ✎
    18:50 
 | 
         
        (0) ну перед загрузкой набор записей с отбором создавай и содержимое читай и удаляй. Будет счастье (наверное)     
         | 
|||
| 
    3
    
        Left_Twix    
     03.07.25 
            ✎
    09:20 
 | 
         
        (2) А каким образом перед загрузкой мы можем получить перенесенные данные? В описании обработчика говорится, что у нас нет объекта. А в обработчиках "при загрузке" объект тоже не определён, так как регистр сведений не является объектным типом.     
    
  | 
|||
| 
    4
    
        Left_Twix    
     02.07.25 
            ✎
    19:29 
 | 
         
        Видел реализацию, где из регистра в регистр передавали. Там в ПВД при выгрузке формировали какой-то специфический массив данных с отборами и использовали функцию ВыгрузитьРегистр(Но она не работает). Но на свой случай не смог перенести.     
    
  | 
|||
| 
    5
    
        Ёпрст    
     гуру 
    03.07.25 
            ✎
    09:20 
 | 
         
        Ну сделай Пользователя ресурсом, делов-то, будет меняться, или в событии ПередЗагрузкой очищай записи по отбору Организация и Роль     
         | 
|||
| 
    6
    
        Left_Twix    
     02.07.25 
            ✎
    23:50 
 | 
         
        (5) Каким образом мы можем изменить запись в этом обработчике, если у нас нет набора записей. Или все таки есть?     
         | 
|||
| 
    7
    
        LoneMan    
     03.07.25 
            ✎
    08:34 
 | 
         
        Не проще в ПВД сделать произвольный запрос с группировкой по нужному составу измерений     
         | 
|||
| 
    8
    
        Left_Twix    
     03.07.25 
            ✎
    09:14 
 | 
         
        (7) Данные формируются в ПВД в обработчике "Перед обработкой". Если вы предлагаете не переносить пользователя, то здесь так не получится, поскольку пользователь должен изменяться.     
         | 
|||
| 
    9
    
        Ёпрст    
     гуру 
    03.07.25 
            ✎
    09:51 
 | 
         
        (6) почему нет ? У тя есть в обработчике Организация и Роль из полей поиска, по ним делаешь отбор и удаляешь записи в перед загрузкой     
         | 
|||
| 
    10
    
        Left_Twix    
     03.07.25 
            ✎
    09:59 
 | 
         
        (9) Вопрос как в КД 2 получить в этом обработчике выборку или данные хоть какие. Перед загрузкой объекта нет самого объекта и данные которые он собирается грузить тоже. В полях поиска такая же тема, мы свойства поиска изменить не можем, поскольку их нет и установить поле поиска он не дает     
         | 
|||
| 
    11
    
        Ёпрст    
     гуру 
    03.07.25 
            ✎
    10:19 
 | 
         
        (10) Нихрена не понял, чего у тебя нет ?
 
        в При загрузке пишешь Наборчик= РегистрСведений.Вася.СоздатьНаборЗаписей() Наборчик.Отбор.Организация.Установить(ПараметрыОбъекта["Организация"]); Наборчик.Отбор.Роль.Установить(ПараметрыОбъекта["Роль"]); Наборчик.Записать(); Усё  | 
|||
| 
    12
    
        LoneMan    
     03.07.25 
            ✎
    10:27 
 | 
         
        (8) Выгружай "максимального" пользователя, чтобы уезжала одна запись по организации и роли
 
        (6) Ну или в событии После загрузки ПКО напиши типа НЗ = РегистрыСведений.МойРегистр.СоздатьНаборЗаписей(); НЗ.Отбор.Организация.Установить(Объект.Организация, Истина); НЗ.Отбор.Роль.Установить(Объект.Роль, Истина); НЗ.Записать(Истина);  | 
|||
| 
    13
    
        LoneMan    
     03.07.25 
            ✎
    10:32 
 | 
         
        +(12) А, понял, юзер может поменяться, а в приёмнике - старый. Ну тогда упомянутый код ПКО. Хотя выше написали.     
         | 
|||
| 
    14
    
        Left_Twix    
     14.07.25 
            ✎
    10:46 
 | 
         
        Всем спасибо за советы. Решение данной проблемы я нашел, разместив поле измерение в параметр. Таким образом поиск будет происходить по тем полям, что переносятся напрямую, а в дальнейшем заполнить найденное измерение.     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |