Имя: Пароль:
1C
1С v8
Запрос к плану обмена
0 Gsoom2010
 
04.03.13
17:43
Добрый день господа.

Не могу найти нормальных примеров или документации как сделать запрос к плану обмена.

Мне в плане регистрируются три документа, с общим реквизитом "Договор". Мне из плана надо выбрать все изменения и свернуть результат по номеру договора (мне нужны только уникальные номера договоров, сами документы не интересуют).

Если не выйдет запросом сделать буду конечно делать через: ПланыОбмена.ВыбратьИзменения();

Единственное что я нашёл по запросу к плану обмена это пример:

ВЫБРАТЬ
Ссылка КАК Узел
ИЗ ПланОбмена.Полный.Подразделения
ГДЕ Подразделение = &Подразделение

В документации по 1С почему-то рассматривается только XML сериализация.
1 Bober
 
04.03.13
18:24
см таблицы регистрации изменений Справочник.Договора.Изменения
2 fisher
 
04.03.13
18:40
У каждого объекта с регистрацией изменений есть своя таблица изменений. Пример обращения в запросе - в (1).
В конструкторе запроса есть пыптык "Отображать таблицы изменений" на закладке "Таблицы и поля" в самом верху.
3 Gsoom2010
 
04.03.13
19:17
т.е. посмотреть реальную картину содержимого плана обмена я смогу только через конструктор запросов?
4 Gsoom2010
 
04.03.13
19:18
Интересует именно структура данных чтобы выбрать данные, автор примера (1) откуда взял "ПланОбмена.Полный" - Полный.
5 Gsoom2010
 
04.03.13
19:19
Пойду попробую поглядеть конструктором запросов...
6 kosts
 
04.03.13
19:21
(4) Полный наверное есть во всех типовых
7 Gsoom2010
 
04.03.13
19:23
(6) У меня свой план обмена, это в продолжении v8: Обмен с внешней MySQL (решено)
8 Gsoom2010
 
04.03.13
19:43
(2) Поглядел в конструкторе, у всех документов и справочников реквизиты при регистрации изменений показывает:
- Узел
- Номер сообщения
- Ссылка

А откуда в примере (1) взялся "Полный", что это означает?
9 Gsoom2010
 
04.03.13
19:44
Ладна попробую сделать запрос на том что есть, о результатах завтра отпишусь, думаю эта тема кому-то пригодится, слишком мало информации по планам обмена.
10 Живой Ископаемый
 
04.03.13
20:15
2(9) Посмотри что вернет ТипЗначения(Узел)
по планам обмена информации просто завались. целая 19-я глава 2-го издания  ТОЛСТОЙ КНИГИ™
11 Живой Ископаемый
 
04.03.13
20:25
12 Serg_1960
 
04.03.13
20:50
(8) Тот ведь любопытный :) "Полный" - это наименование плана обмена, который используется в  типовых конфигурациях. Список планов обмена различается в различных конфигурациях, но план обмена "Полный", как правило, в который включены все объекты конфигурации есть во всех типовых конфигурациях.
13 hhhh
 
04.03.13
22:51
(8) в примере список узлов (информационных баз) и их реквизиты вытаскиваются. Где вы там заметили изменения, уму непостижимо. Видно сильно выпили.
14 Gsoom2010
 
05.03.13
12:45
(13) Я не пил, как достать изменения запросом?
15 kosts
 
05.03.13
12:49
(14) Какие изменения интересуют?
16 Gsoom2010
 
05.03.13
12:50
(15) У меня регистрируется 3 документа в плане обмена, нужно выбрать изменённые документы запросом
17 Gsoom2010
 
05.03.13
12:51
(1) << сейчас так попробую обратиться
18 Галахад
 
гуру
05.03.13
12:53
ВЫБРАТЬ
   ОТИ.Узел,
   ОТИ.НомерСообщения,
   ОТИ.Ссылка
ИЗ
   Документ.ОприходованиеТоваров.Изменения КАК ОТИ
19 Gsoom2010
 
05.03.13
12:59
(18) Спасибо, теперь всё понял
20 kosts
 
05.03.13
13:01
(19) Это же было еще вчера в (8).
Моя не понимать...
21 Gsoom2010
 
05.03.13
13:08
(20) Да я сам ничего не понимаю пока, я так и не пробовал ещё запрос сделать, сейчас попробую
22 Gsoom2010
 
05.03.13
13:50
Всё теперь всё понял. Спасибо.
Данные об изменениях действительно хранятся в таблицах как было сказано в сообщениях (1) и (8).

Структура этой таблицы (для документов и справочников):
- Узел (ссылка на узел плана обмена)
- НомерСообщения (число)
- Ссылка (ссылка на объект который был изменён)

Всё получается если выбирать запросом как показано в (18).
23 Живой Ископаемый
 
05.03.13
15:18
а в (11) еще и ролик снят
24 Gsoom2010
 
05.03.13
17:20
(23) Видел :) благодарю, помогло понять.
25 Gsoom2010
 
18.03.13
14:33
Пока тема не закрылась такой вопрос, при автоматической регистрации в плане обмена, нет возможности осуществлять фильтрацию регистрации объектов? К примеру мне нужно в одном узле регистрировать документы только одной организации, а в другом узле документы другой организации.
26 Михаил Козлов
 
18.03.13
14:37
(25) Снимите автоматическую регистрацию и регистрируйте в подписке на события.
27 sapphire
 
18.03.13
14:39
(26) Так делать необязательно.
28 fisher
 
18.03.13
15:06
(25) Можно. Я так и делал. Авторегистрация проявляется только в том, что перед записью автоматически заполняется список узлов получателей (ОбменДанными.Получатели). В подписке на "Перед записью" их можно откорректировать. А уже при записи платформа автоматически по списку получателей фигачит записи в таблицы изменений. Можно снять авторегистрацию и заполнять список получателей с нуля. Кому как удобнее.
29 Gsoom2010
 
18.03.13
15:34
(28) Как я понял в любом случае придётся лезть в модуль объекта который ставится на регистрацию, разница только в предопределённой процедуре в которую надо лезть (ПриЗаписи или ПередЗаписью)? Я надеялся что можно это сделать не трогая регистрируемые объекты...
30 Gsoom2010
 
18.03.13
15:36
Я думал что при авто регистрации вызывается какая-нибудь предопределённая процедура из модуля ПланаОбмена к примеру, в которой можно осуществить фильтрацию...
31 Gsoom2010
 
18.03.13
15:39
Что-то не найти мне схемку порядка вызова процедур в отношении регистрации в ПланеОбмена...
32 Gsoom2010
 
18.03.13
15:55
(28) Можешь подкинуть пример изменения списка узлов в процедуре ПередЗаписью?
33 fisher
 
18.03.13
17:39
(29) Ты невнимательно читал, или не знаешь что такое "Подписка на событие"?
(32) Копипаста рабочего кода тебя только запутает лишними деталями. Что там непонятного-то может быть? Ты в СП уже заглядывал?
34 Gsoom2010
 
18.03.13
20:10
(33)  не знал что такое "Подписка на событие" когда задавал вопрос :) сейчас другое дело, спаибо
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший