Имя: Пароль:
1C
1С v8
Обмен в Универсальном формате: передать ПометкаУдаления?
,
0 lexushka
 
09.12.16
10:36
Добрый день

Насмотревшись курсы-по-1с колдую с обменов в универсальном формате
С удивление выяснил, что  признак проведен по умолчанию в типовых обменах не передается и полученные документы автоматом пытаются сделать проведенными

Ну допустим…

В итоге я через AdditionalInfo передаю табличу
в которой записал был проведен документ или нет и была у него ПометкаУдаления или нет

Проведен более менее передается (толком не проверял), а с пометкой удаления чот не выходит:
Пвтаюсь ее отработать в событии

Процедура ОтложеннаяОбработка_ПТиУ(Объект, ОбъектМодифицирован)

Делаю там Объект.УстановитьПометкуУдаления, а она меня в ошибку выкидывает

лекции курсов-по-1с оказались на вопрос ни о проведении ни о пометке удаления отвечать не хотят

Как сделать уже не могу придумать

Как правильно поступать с ПометкойнаУдаление и проведением?

Спасибо
1 MaxS
 
09.12.16
10:40
пмсм Нужно посылать удаление объекта, а помеченный на удаление документ не отправлять. Пока в своих решениях сделал так.
2 lexushka
 
09.12.16
10:50
А где можно почитать как послать такое сообщение?
Или не подскажете как?
3 MaxS
 
09.12.16
11:28
Штатно конфигурация может регистрировать событие удаление объекта. В БСП есть такой код:

Процедура ВыгрузкаОбъектаВыборки(КомпонентыОбмена, Объект, ПравилоОбработки = Неопределено)
...
// 1. Получаем Данные из ИБ
Данные = ВыборкаИзменений.Получить();

// 2. Отправляем информацию об удалении либо выгружаем данные.
Если ТипЗнч(Данные) = Тип("УдалениеОбъекта") Тогда
    ВыгрузитьУдаление(КомпонентыОбмена, Данные.Ссылка);
Иначе
...
4 MaxS
 
09.12.16
11:31
С "Проведен" пока сам не знаю как правильно )) как вариант не отправлять непроведенные если они могут быть проведены. Или через AdditionalInfo передавать этот реквизит, а потом при загрузке анализировать его.
5 yzimin
 
09.12.16
11:36
(4) для чего вы вообще передаёте информацию о проведении?
Регистрируйте только те документы, которые должны быть проведены в базе приёмника.
6 lexushka
 
09.12.16
11:36
спасибо за сообщение 3
но я еще не достиг того просветления чтобы понять как к этой процедуре подобраться, если я получаю документ и вижу что у него ПометкаУдаления

ума у меня хватило только процедуру ВыгрузитьУдаление объявить экспортной и в ПКО_Документ_ПоступлениеТоваровУслуг_Отправка_ПриОтправкеДанных

в самом конец ее попытаться вызвать

Скорей всего у меня этот номер не пройдет, а что делать? :)
7 yzimin
 
09.12.16
11:37
(5) даже перефразирую вопрос. Для чего вы переносите не проведенные документы из базы источника?
8 totparen
 
09.12.16
11:37
Насколько я разобрался, если в базе прёмнике создается объект с реквизитом "Проведение = Истина", то после записи документов, запускается отложенная процедура проведения. Может быть с пометкой также.
9 totparen
 
09.12.16
11:39
(7) Разные задачи бывают.
10 FIXXXL
 
09.12.16
11:51
(7) был проведен - уехал, стал непроведенным - рассинхрон
11 MaxS
 
09.12.16
11:52
(7) Как поступить в такой ситуации: Провели документ, сделали синхронизацию, потом отменили проведение документа. Как это отразить в базе получателе если мы не будем передавать непроведенные документы?

(6) Вроде бы если штатно проведенный документ ушел через обмен, а потом его пометили на удаление, то штатно должно передаться удаление объекта.
Поэтому я пока не заморачивался принудительной отправкой удаления. Но удивляет почему в БСП не дали экспортную процедуру для этого. ))
12 lexushka
 
09.12.16
11:54
(7)
Не ну и вообще зачем клиенты отказываются от работы на счетах…
13 h-sp
 
09.12.16
12:03
(11) нет, неправильно что-то говорите.

удаление объекта  - это когда полностью удален объект. А если не удален, а просто пометка на удаление поставлена - это другое.
14 MaxS
 
09.12.16
12:17
(13) Да, наверное так, вспомнил ))

В КД3 есть фича. Если для одного вида объекта есть несколько ПКО (например Номенклатура и НоменклатураГруппа), то БСП всегда посылает удаление объекта по неиспользуемому ПКО, невзирая на настройку КД3 не посылать удаление... У себя в выгрузке я это поправил, жду решения от 1С.

Можно эту фичу использовать для принудительной отправки удаления. Например, для документа два ПКО одно для этого документа, другое - любой неиспользуемый объект в универсальном формате. Если проведен, то отправляем на оба ПКО, если помечен на удаление, то
ИспользованиеПКО.ДокументНаш_Отправка = Ложь;
//ИспользованиеПКО.ДокументНашФиктивно_Отправка = Истина;
И в обмен уйдёт удаление объекта.
15 MaxS
 
09.12.16
12:19
+(14) не рекомендую такой костыль. Но хотелось бы от 1С получить рекомендации или планы когда появится правильное решение.
16 Serg_1960
 
09.12.16
12:26
Имхо, что-то народ путается с пометкой на удаление и с удалением объектов :(
17 yzimin
 
09.12.16
12:33
(10) (11) В типовых конфигурация при отмене проведения на узле регистрируется пометка удаления
18 MaxS
 
09.12.16
12:33
(16) Если по факту пометки удаления послать удаление объекта, то в базе приемнике объект будет помечен на удаление.
Это пмсм самый простой вариант не меняя правила в приемнике отразить пометку на удаление.
19 yzimin
 
09.12.16
12:40
(17) добавлю.
Бывает такое, что обмен настроен с отбор по организации (УТ11-БП3). Пользователи провели документ, потом изменили организацию. В этом случае также передаётся пометка удаления
20 totparen
 
09.12.16
13:05
(14) Ошибка в БСП или в КД?
21 MaxS
 
09.12.16
14:17
(20) БСП не учитывает КД.
Процедура ВыгрузкаОбъектаВыборки(КомпонентыОбмена, Объект, ПравилоОбработки = Неопределено)
...
Если НесколькоПКО Тогда
    ПравилоКонвертации = КомпонентыОбмена.ПравилаКонвертацииОбъектов.Найти(ТекущееПКО.Ключ, "ИмяПКО");
    ВыгрузитьУдаление(КомпонентыОбмена, Объект.Ссылка, ПравилоКонвертации);
КонецЕсли;
...
Должно быть так:
Если НесколькоПКО И ПравилоОбработки.ОчисткаДанных Тогда
...
Параметр ПравилоОбработки.ОчисткаДанных появился в КД 3.0.4.3 от 01.09.16. С тех пор было много обновлений БСП, но параметр ОчисткаДанных так и не задействован.
22 Shrek_yar
 
09.12.16
14:56
(7) А если документ проведен, а затеи его распровели, тогда надо это передать в базу приемник.
Как тогда?
23 Shrek_yar
 
09.12.16
14:57
(19) Лучше в правилах регистрации убирать отборы.. все делать в правилах выгрузки((
Иначе можно словить удаление объекта
24 totparen
 
09.12.16
15:29
(21) Мерси. Актуально.
25 yzimin
 
09.12.16
15:59
(22) читай (17)

(23) повеселили. Почитай про универсальный формат.