Имя: Пароль:
1C
1С v8
V8. УРБД как получить список объектов к выгрузке по узлу ?
,
0 SAO
 
09.08.12
12:15
1с 8.2 УТ 10.3
делаю план обмена по подразделениям.
перед выгрузкой изменений по узлу хотелось бы получить список объектов к выгрузке. Для чего:
например выгружаю в филиал из головного. Сделали накладную на филиа. Вся номенклатура мне не нужна в филиале, а только та, что есть в накладной. хочу сделать принудительную регистрацию каждого элемента номенклатуры из состава накладной, чтобы она тоже в филиал улетела. Тоже и с контрагентами. Так рекурсивно.
1 SAO
 
09.08.12
12:18
В моем понимании это должно быть событие у объекта ПланОбмена, что-то типа:
ПередОтправкойДанных(МассивОбъектовКОтправке)
2 Лоботряс
 
09.08.12
12:19
[Вся номенклатура мне не нужна в филиале]- почему?
3 alkov
 
09.08.12
12:21
При записи накладной регистрируй изменения для номенклатуры
4 DrShad
 
09.08.12
12:21
РегистрацияИзмененийДляОбмена смотри
5 Лоботряс
 
09.08.12
12:22
И что каждый обмен будешь одну и ту же номенклатуру в филиал передавать?
6 SAO
 
09.08.12
12:23
(2) - потому, что там огромное кол-во старой номенклатуры, которая уже давно не рабочая, кроме того разные филиалы работают с разным составом номенклатуры.
тоже и с контрагентами, незачем в филиале видеть других контрагентов. Кроме того хочется реализовать это с минимальными усилиями на базе плана обмена "полный", без дополнительных заморочек с правами. Поэтому если мы выгрузим всех контрагентов в филиал, его нечаянно могут поправить и он улетит в головное, а нам этого не надо
7 PiVa123
 
09.08.12
12:24
(1) ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента)
8 SAO
 
09.08.12
12:24
(3) >> При записи накладной регистрируй изменения для номенклатуры
этот вариант рассматривался как нежелательный (через подписку на события у документов)
9 SAO
 
09.08.12
12:26
(7)
в этом варианте я могу поймать передачу накладной в текущее, но не смогу в это сообщение включить передачу самой номенклатуры, т.е. я могу сделать регистрацию и номенклатура пойдет в следующем сообщщении.
10 alkov
 
09.08.12
12:27
(8) Почему?
Событий начала и конца записи сообщения обмена не существует
11 SAO
 
09.08.12
12:29
(5) - да, буду. и номенклатуру, и контрагентов и все остальные связанные реквизиты рекурсивно. Как в конвертации данных бы  идеале.
(8) - хочу минимизировать время записи, т.к. это в рабочее время происходит, а обмен - ночами
12 Лоботряс
 
09.08.12
12:30
Я бы сделал так. Раз существует разделение по подразделениям, то добавил бы в справочник Номенклатура реквизит Подразделение учета (или через регистр связь сделать) и при обмене фильтровал бы по нему.
13 DrShad
 
09.08.12
12:32
(12) извини но лажа
14 Лоботряс
 
09.08.12
12:33
Так элементы справочника Номенклатура будут улетать на филиал только один единственный раз - при создании или изменении их в головной базе.
15 Лоботряс
 
09.08.12
12:34
(13)Объясни
16 Лоботряс
 
09.08.12
12:36
(11) [хочу минимизировать время записи, т.к. это в рабочее время происходит, а обмен - ночами]- в твоем варианте объем передаваемых данных в разы больше чем в моем, соответственно и время записи...
17 alkov
 
09.08.12
12:38
(11) В типовых подобные обмены по организациям, например, реализованы именно через подписку, вроде никто не жужжит особо
18 SAO
 
09.08.12
12:42
(17) - видел. достаточно громоздко. Но этот вариант не исключается.
попробую сделать через двойную выгрузку через
ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента)
1й раз накладная - ловлю подчиненные элементы, принудительно регистрирую их
2й раз накладная и этизарегистрированные элементы
19 Лоботряс
 
09.08.12
12:43
(12)+даже не при обмене, а при регистрации.
20 PiVa123
 
09.08.12
12:53
(18) Я бы как раз сделал через подписку, если накладная на филиал, то регистрировал бы изменения для узла для номенклатуры, единиц измерения и пр. Тогда бы не надо было делать 2 прогона выгрузки данных в обмен. Или добавить регистр, где хранить какие ссылки улетели, а какие нет, тогда бы регистрация изменения и объем выгрузки был бы намного меньше.