Имя: Пароль:
1C
1С v8
Как зарегистрировать в плане обмена удаленную строку ПОДЧИНЕННОГО регистра сведений?
0 atrium
 
15.12.18
20:52
Управляемые формы. Если регистр сведений независимый, то то план обмена регистрирует его записи построчно, и без проблем можно отловить удаленную строку, по ней просто не будет объекта. Но вот как только его (регистр сведений), сделать подчиненным, в плане обмена регистрируется только изменение регистратора и перебирать в нем (в плане обмена) можно только по факту существующие строки регистратора. Как заставить план обмена регистрировать записи и в этом случае построчно?
1 Лефмихалыч
 
15.12.18
20:58
весь документ со всеми движениями регистрируй. приемник должен заменить набор записей полностью
2 atrium
 
15.12.18
21:04
У меня самописный обмен с сайтом. Собираю изменения и пишу их в xml файл. А на стороне сайта уже разбираются строки. Допустим в заказе 2 строки услуг. При обмене будут выгружены 2 услуги, каждая со статусом активно. Так вот после того как из этого заказа удалят строку мне нужно выгрузить ее из 1С на сайт в статусе отменено.
3 Василий Алибабаевич
 
15.12.18
21:10
(2) Придется на стороне 1С поступать так же. Вместо удаления строки присваивать ей статус "отменено".
4 atrium
 
15.12.18
21:13
(3) Но в условиях подчиненного регистра как только я проведу документ удалив в нем строку движение исчезнет.
5 Михаил Козлов
 
15.12.18
22:21
(4) Полностью заменять набор записей регистра.
6 palsergeich
 
15.12.18
22:58
(0) При подчинении регистратору - регистрировать записи регистра сведений - ИМХО методически не правильно.
Зарегестрировались изменения по документу в узле -> при обмене в другой базе документ перепроводится и получается идентичный набор проводок.
По мне это должно работать так, а не физически переносить записи
7 atrium
 
16.12.18
01:39
(6) Я писал выше что изменения регистрирую не для переноса в другую базу 1С а для сайта, обмен самописный, и на той стороне уже код разбора написан.

(5) Даже если заменишь в плане обмена будет зарегистрирован только тот факт что что-то изменялось и выгрузит добавленные строки но не удаленные, на них ссылок в базе уже нет.

Так как регистр был мой, сделал его независимым и при каждой записи документа полностью очищаю записи по нему в регистре и создаю новый набор записей. В плане обмена ничего не дублируется, так что вариант подходит.
8 youalex
 
16.12.18
06:25
(0) Построчно - никак. Изменения для РС регистрируются по ключу. Для подчиненных РС ключ это регистратор.
9 Лефмихалыч
 
16.12.18
12:51
(2) очень плохое решение. В результате ты на стороне 1С должен знать и помнить, что уже есть, а чего еще нет на сайте. А доступа из 1С в БД сайта нет. Безбожно кривая архитектура обмена. И, кстати, если продолбить туннель из 1С в БД сайта, архитектура станет еще кривее. Экспоненциально.

1С должна выгружать то, что в ней есть. Сайт должен новое создавать, а старое полностью заменять теми данными, которые пришли заново. Сайт сам должен разбираться, что новое, а что старое. Потому, что 1С не знает, что он там принял, чего не принял, а что принял наполовину (и такое тоже будет потому, что пэхэпэшники - теще каллеки)

Иначе ничего работать не будет.
10 Сергиус
 
16.12.18
13:38
(0)У тебя в изменения плана обмена попадает только ссылка на сам регистиратор. Поэтому тут два варианта - либо без подчинения, либо с подчинением, но где-то дополнительно еще запоминать, какой состав строк документа был до изменения и сравнивать их. Но по поводу этого хорошо сказано в (9).
Основная теорема систематики: Новые системы плодят новые проблемы.