Имя: Пароль:
1C
1С v8
КД При переносе РС все предыдущие записи затираются
0 Скромный программер
 
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) Нет. Я там давно уже не работаю.
5 I_am_rrrrED
 
05.02.21
07:45
(0) Было бы неплохо, если б люди писали, что пишут (С) ололо
6 SiAl-chel
 
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
Поправлю:
вместо Значение = Строка(Источник.Регистратор.Организация);
должно быть Значение = Источник.Регистратор.Организация;