Имя: Пароль:
1C
1С v8
выборочное добавление изменений в план обмена
0 Csar
 
10.09.13
09:42
Всем привет!
Подскажите, пожалуйста, как решить проблему? У меня ПланОбмена собирает изменения документа поступления товаров и услуг (ПТУ). Однако мне необходимо фиксировать не все изменения, а лишь создание новых документов. Как это организовать?
Поскольку в настройках плана обмена вроде бы нет разделения на Новый Объект или нет, то м.б. как то удалять из плана обмена после записи документа или как то еще?
1 Godofsin
 
10.09.13
09:42
Настрой подписку
2 Godofsin
 
10.09.13
09:43
а вообще есть обработка, "Регистрация изменений для плана обмена", вроде так зовется
3 Csar
 
10.09.13
09:44
(2) она же интерактивная
4 Нуф-Нуф
 
10.09.13
09:44
перед записью документа суй в дополнительные свойства флаг ЭтоНовый, а при записи в зависимости от наличии этого флага удаляй регистрацию изменений
5 Csar
 
10.09.13
09:46
(4) А есть ли смысл удалить в настройках регистрацию ПТУ, а при записи по отсутствию флага "вручную" добавлять регистрацию?
6 Csar
 
10.09.13
09:47
(1) откровенно говоря не хочется настраивать подписку, т.к. будет происходить захламление конфы. Надо бы максимально в одном месте все сделать.
7 Godofsin
 
10.09.13
09:50
(6) Регистрация, мой друг, как раз проводится из подписки.
8 Нуф-Нуф
 
10.09.13
09:52
(5) есть
9 Нуф-Нуф
 
10.09.13
09:53
кстати. имхо самое правильное - отключить авторегистрацию в плане обмена и добавить подписку ПередЗаписью для регистрации нового
10 Csar
 
10.09.13
09:55
(7) ОК, спасибо
(9) перед записью? Добавление в план обмена ведь д.б. после записи объекта?
11 Csar
 
10.09.13
09:56
(7) а можно пояснить мне как через подписку зарегистрировать в плане обмена?
12 Maxus43
 
10.09.13
10:01
авторегистрация стоит у объекта?
13 Csar
 
10.09.13
10:02
(12) да, но есть мысль ее убрать
14 Godofsin
 
10.09.13
10:03
(11) Открой типовую УТ к примеру и отследи по подписке как он регистрируется в типовых планах обмена
15 Godofsin
 
10.09.13
10:03
Тот же самый ПТУ
16 Csar
 
10.09.13
10:06
(14) Спасибо, попробую
Всем спасибо большое!
17 Maxus43
 
10.09.13
10:07
(13) убирай, в подписке ПередЗаписью проверяй на этой новый и заполняй Получателей узлами нужными, иначе не заполняй вобще. Само всё зарегистрируется для указанного списка получателей
18 Csar
 
10.09.13
10:12
(17) Спасибо! А можно ли регистрировать в план обмена еще не записанный документ? Если я в ПриЗаписи вызову подписку, то у меня же ДокументОбъект еще не будет записан (при условии, что он ЭтоНовый=истина)
19 Godofsin
 
10.09.13
10:16
(18) нет
20 Csar
 
10.09.13
10:18
(19) значит подписку надо ставить на ПослеЗаписи?
21 Godofsin
 
10.09.13
10:23
(20) а ну чото я поторопился
22 Godofsin
 
10.09.13
10:23
Процедура ПередЗаписьюДокументаДляОбменаТорговляБухгалтерияПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт

    Если Отказ
        ИЛИ НЕ ПараметрыСеанса.НаличиеОбменаТорговляБухгалтерия Тогда
        
        Возврат;
        
    КонецЕсли;
    
    ПередЗаписьюСсылочногоТипаДляОбменаПоОрганизации(Источник, Отказ, "Документы");    
    
КонецПроцедуры
23 Godofsin
 
10.09.13
10:24
Типовая подписка
24 Maxus43
 
10.09.13
10:28
Зарегистрировать незаписанный нельзя, да. Но можно у него заполнить ПОЛУЧАТЕЛЕЙ. После завершения записи по списку получателей пройдёт регистрация
25 Csar
 
10.09.13
10:28
(22) где именно эта процедура? В какой УТ и где раполагается? Я что то с подпиской окончательно запутался.
26 Godofsin
 
10.09.13
10:29
(25) Конфигуратор - общие - подписки на события. Это УТ 10.3
27 Csar
 
10.09.13
10:32
(26) Я не могу понять откуда в Подписках процедура ПередЗаписьюДокументаДляОбменаТорговляБухгалтерияПередЗаписью()
28 Csar
 
10.09.13
10:33
(24) Любопытно, почитаю про получателей. Пока не понятно получатели указываются для конкретного документа или для всех документов этого Типа.
29 Maxus43
 
10.09.13
10:33
(27) к подписке привязана просто эта процедура из общего модуля
30 Maxus43
 
10.09.13
10:36
(28) у каждого объекта (кокнретного) можно указать список получателей, заполняется каждый раз, пока доступен ДокументОбъект, СправочникОбъект... это свойство объектов
31 Maxus43
 
10.09.13
10:38
З.ы. не используй всякие конструкции типа ЗарегестрироватьИзменения и т.д., оно не для этого
32 Serg_1960
 
10.09.13
10:43
Эх... когда-то даже таблица регистрации изменений была недоступна и приходилось выкручиваться кто как мог...

PS: ты это... хоть однажды глянь внимательно на свойства объекта в окне "Табло" при отладке :))
33 Csar
 
10.09.13
10:45
Спасибо большое всем!
(32) там столько всего, что разом не влиться во все.
34 Maxus43
 
10.09.13
10:46
(33) глава про обмены стандартные - всего 3-4 страницы в толстой книжке, разжёвано для начала очень неплохо
35 Csar
 
10.09.13
14:58
Еще возникло препятствие. Я вручную очистил состав плана обмена (в самом объекте метаданных), а в формеДокумента в процедуру ПередЗаписьюНаСервере() вписал код:
Если ТекущийОбъект.ЭтоНовый() Тогда
Узел = ПланыОбмена.ОбменЛогистика8_БИБ82.НайтиПоНаименованию("центр");
ТекущийОбъект.ОбменДанными.Получатели.Автозаполнение = Ложь;
ТекущийОбъект.ОбменДанными.Получатели.Очистить();
ТекущийОбъект.ОбменДанными.Получатели.Добавить(Узел.Ссылка);
КонецЕсли;

Но вылазит ошибка "Несоответствие типов (параметр номер '1')"
Не могу понять с чего бы она? Пробовал указывать и "Узел" и "Узел.Ссылка" от безысходности.
36 Maxus43
 
10.09.13
15:00
что значит "очистил состав плана обмена"? Авторегистрацию сними, а не совсем исколючи из обмена
37 Csar
 
10.09.13
15:02
(36) Ага, значит в самом плане обмена все оставить как было... Спасибо.
38 Maxus43
 
10.09.13
15:03
(37) значит в самом плане обмена переключить авторегистрацию, там где "Разрешить" сделай "Запретить"
39 Csar
 
10.09.13
15:03
Максим, пояни, пожалуйста, что такое Получатель? Читаю Технологии интеграции - там вообще толком не объясняется что это такое. В интернетета же ситуация
40 Maxus43
 
10.09.13
15:04
Описание:

Тип: НаборУзлов.
Набор узлов, для которых будут регистрироваться изменения при записи или удаления объекта данных, к которому относится объект ПараметрыОбменаДанными.
41 Maxus43
 
10.09.13
15:06
Просто список узлов, для которых будет зарегистрировано изменение. Нельзя туда передать "ЭтотУзел()", для себя регистрировать нельзя
42 Csar
 
10.09.13
15:09
(41) ага, все понятно. Спасибо!