Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

КД При переносе РС все предыдущие записи затираются

КД При переносе РС все предыдущие записи затираются
Я
   Скромный программер
 
05.02.21 - 06:18
Всем доброго дня.
В источнике и приемнике есть практически идентичные РС. Только в приемнике РС подчинен регистратору, а в приемнике он независимый, ну и еще в приемнике есть дополнительный ресурс. После каждого обмена записывается последний набор записей, а все предыдущее удаляется.
   ДенисЧ
 
1 - 05.02.21 - 06:23
   Скромный программер
 
2 - 05.02.21 - 06:25
(1) Мальчик, тебя сегодня мама в садик не отправила?
   Йохохо
 
3 - 05.02.21 - 06:54
(2) резюме прикрепи в профиль, а то сразу непонятно, что у тебя только смарт скилы
   ДенисЧ
 
4 - 05.02.21 - 07:18
(2) Нет. Я там давно уже не работаю.
   I_am_rrrrED
 
5 - 05.02.21 - 07:45
(0) Было бы неплохо, если б люди писали, что пишут (С) ололо
   SiAl-chel
 
6 - 05.02.21 - 07:45
(0) Просто не устанавливаешь отбор перед чтением набора записей.
   Скромный программер
 
7 - 05.02.21 - 09:06
В общем проблему вроде решил. Навел на это решение вот этот пост http://catalog.mista.ru/1c/articles/666460/, но я сделал проще.
Т.к. основная проблема в том, что в базе-источнике регистрируется на обмен набор с отбором по регистратору, то для корректного обмена нужно прописать регистратор в качестве источника в конвертации свойств, а в качестве приемника измерение регистра (лучше несколько, т.е. создать несколько ПКС, где источником будет Регистратор), а в обработчике ПриВыгрузке этого свойства присвоить переменной Значение реквизит регистратора.

Подробнее опишу мой случай. Есть в УПП независимый РС ЗначенияПоказателейСхемМотивации и я создал такой же РС в УТ, но подчиненный регистратору. ИЗ УТ данные выгружаются в УПП. В УПП нужно оставить возможность для ручного ввода. У документа-регистратора в шапке есть реквизиты Организация и ПериодДействия, а у РС есть такие измерения. Поэтому я создал два ПКС:
1) Источник Регистратор, Приемник ПериодДействия (измерение в РС), а в обработчике ПКС ПередВыгрузкой прописал:
Значение = Строка(Источник.Регистратор.ПериодРегистрации);
2) Источник Регистратор, Приемник Организация  (измерение в РС), а в обработчике ПКС ПередВыгрузкой прописал:
Значение = Строка(Источник.Регистратор.Организация);

У моего решения есть одно ограничение. Допустим, в УПП вручную забьют данные по организации "ИП Пупкин" и периоду действия 01.01.2021. Если в УТ будет хотя бы один документ с такими организацией и датой, то при выгрузке в УПП введенные вручную данные затрутся. В моем случае это не проблема.

Кстати, придумал еще одно похожее решение. Можно создать в УПП в РС дополнительное измерение ГУИДРегистратора. Создать в правилах ПКС, где источником будет Регистратор, а приемником будет ГУИДРегистратора. В обработчике ПередВыгрузкой прописать:
Значение = Строка(Источник.Регистратор.УникальныйИдентификатор());

Минус такого подхода в том, что в УПП может появиться две одинаковые записи (одна с пустым ГУИДРегистратора, которую создадут вручную, а другая с заполненным, которая появится в результате обмена). Но эту проблему можно решить дописав код, контролирующий уникальность записей по всем измерениям кроме ГУИДРегистратора.
   Скромный программер
 
8 - 05.02.21 - 09:59
Поправлю:
вместо Значение = Строка(Источник.Регистратор.Организация);
должно быть Значение = Источник.Регистратор.Организация;

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.