Имя: Пароль:
1C
1С v8
КД, выгрузка только проведенных документов.
,
0 belas
 
03.07.13
14:32
Добрый день. Подскажите, кто знает - нужно выгружать только проведенные документы. Но при этом данное ограничение не должно действовать  , если  документ выгружается по ссылке.
Как определить перед выгрузкой - по ссылке выгружается объект или нет?
1 ks_83
 
03.07.13
14:43
Сделай ограничение в ПВД.
2 Прыгун
 
03.07.13
14:46
в ПВД как то так
             Если (Источник.ПометкаУдаления()=1) Или (Источник.Проведен()=0)  Тогда
           Отказ = 1;
       КонецЕсли;
3 Darky
 
03.07.13
14:46
ПКО-Обработчик Перед выгрузкой
Параметр ВыгруженныеОбъекты - Соответствие.  Содержит перечень выгруженных по данному правилу объектов. Может использоваться для проверки - выгружен ли объект по ссылкам из других объектов.

Я бы начал копать отсюда
4 fenixx
 
03.07.13
15:10
А в чем смысл ограничения, если с другой стороны они не действуют? Всё равно непроведенные будут выгружаться, ты же проверить не сможешь действуют твои ограничения или нет...
5 fenixx
 
03.07.13
15:19
А по сути вопроса - создать 2 разных ПКО - одна для выгрузки через ПВД, другое для выгрузки по ссылкам из других объектов
6 belas
 
03.07.13
18:34
(5) Да, видимо только так можно... Но нереально, объектов много   :)))
7 AlexNew
 
03.07.13
18:51
А обработку ПоляПоиска при загрузке когда отменили?
8 AlexNew
 
03.07.13
18:53
Не (7) не о том.
9 AlexNew
 
03.07.13
19:01
Перед выгрузкой реквизита в ИсходящиеДанные добавь свой параметр лучше через алгоритмы и при ПередЗагрузкой - проверяй, что ТипЗны(ВходящиеДанные) = Тип("Структура") и параметр в наличии. Лучше тоже через Алргоитмы. И правил лишних не будет.
10 Aleksey
 
03.07.13
21:53
(0) написать 2 правила, в первом в ПКО
 Если (Источник.ПометкаУдаления()=1) Или (Источник.Проведен()=0)  Тогда
           Отказ = 1;
       КонецЕсли;
Во втором без проверки, использовать его для выгрузки по ссылки
11 AlexNew
 
03.07.13
22:01
(10) А после переписав правила в одном месте, не забыть переписать их в другом, или забыть и долго удивляться.
12 AlexNew
 
03.07.13
22:02
(10) У еще если вызовы процедур отличаются параметром, их надо сделать 2.
13 EvgeniuXP
 
03.07.13
22:58
(0) vможно еще проще, написать свою выборку запросом :)
14 EvgeniuXP
 
03.07.13
23:00
(0) см. ПВД - произвольный алгоритм.
15 AlexNew
 
03.07.13
23:06
(14) Ты точно тему прочитал?
16 EvgeniuXP
 
03.07.13
23:10
(15) только начало, (14) не верно... ;-\
17 zladenuw
 
03.07.13
23:37
может оно. по справке в кд почитай

ВыгруженныеОбъекты - Соответствие.  Содержит перечень выгруженных по данному правилу объектов. Ключом соответствия является параметр КлючВыгружаемыхДанных, значением - число-номер объекта в файле. Может использоваться для проверки - выгружен ли объект по ссылкам из других объектов. В целях оптимизации, при выгрузке больших массивов данных, значение параметра может быть очищено - например в обработчике ПослеОбработкиПравилаВыгрузкиДанных
18 belas
 
04.07.13
04:37
(17) Нет, это делу не поможет имхо.
19 Defender aka LINN
 
04.07.13
05:55
рукалицо...
Правильный ответ еще в (1) и (2) написан
20 Mikhail Volkov
 
04.07.13
06:03
(19) Там на все документы ограничение, а ТС надо "ограничение не должно действовать, если  документ выгружается по ссылке"!?
> Как определить перед выгрузкой - по ссылке выгружается объект или нет?
21 Godofsin
 
04.07.13
06:32
(19) +1
Причем достаточно просто: Источник.Проведен()=0
22 Defender aka LINN
 
04.07.13
06:37
(20) МНЕ не надо рассказывать, что там ограничивается. Потому что я знаю, а ты - нет.
23 Cyberhawk
 
04.07.13
06:42
Если не ошибаюсь, то что мы указываем в дереве выгрузки - это и есть ПВД. По-другому: прямая выгрузка возможна только из ПВД. Поэтому там наложить фильтр проще, чем накладывать противоположный фильтр во все ПКС
24 cw014
 
04.07.13
07:35
Можно задействовать "ПередВыгрузкойОбъекта" у конвертации, только проверяй, что у тебя это документ, а не справочник
25 AlexNew
 
04.07.13
07:36
(24) Нельзя, он не знает по ссылке или из ПВД.
26 cw014
 
04.07.13
07:38
(25) Ясно
27 Mikhail Volkov
 
04.07.13
07:56
(25) Согласен в ПВД проще наложить условие. Но когда стандартную выборку заменяешь на произвольную, то теряется возможность отбора по значению v8: УниверсальныйОбменДаннымиXML и отбор, а это очень не нравится пользователям...
28 Defender aka LINN
 
04.07.13
08:08
(27) А для чего ее менять?
29 Mikhail Volkov
 
04.07.13
08:29
(28) Да, этот фильтр можно сделать в стандартной выборке - не мой случай...
30 Mikhail Volkov
 
04.07.13
09:41
Ха, ПВД можно копировать с другим именем (и кодом)!? В произвольном алгоритме запрос подправлю, чтобы провторно не выгружалось то, что в стандартной выборке выгрузилось...
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший