Имя: Пароль:
1C
 
КД, пометка на удаление после загрузки объекта
0 Loki
 
11.08.08
12:46
Добрый день. Задача такая: отобрать документы по определенному критерию и в базе источнике пометить их на удаление. Делаю так: добавляю параметр "Объекты для удаления", тип не определяю, ставлю галочку "Передавать при выгрузке". Далее перед выгрузкой данных пишу: Параметры.ОбъектыДляУдаления = ОбъектыДляУдаления(пустой массив), в ПВД документа пишу:  Параметры.ОбъектыДляУдаления.Добавить(Объект).
В ПКО объекта после загрузки:
Если Не Параметры.ОбъектыДляУдаления.Найти(Объект) = Неопределено Тогда
   Объект.ПометкаУдаления = Истина;
КонецЕсли;
в отладчике параметр ОбъектыДляУдаления = Неопределено. Поскажите, пожалуйста, что не правильно делаю?
1 ТелепатБот
 
гуру
11.08.08
12:46
2 GenV
 
11.08.08
12:48
(0) Массивы в параметрах не выгружаются ...
3 Loki
 
11.08.08
12:52
Ужос, а другие структуры? тз, например?
4 GenV
 
11.08.08
12:57
(3) А зачем тебе ТЗ без объекта? КД сделана для переноса данных объектов и их сопоставления. Ну, если хочешь можешь написать свою запись/чтение в XML данных массива, ТЗ и т.п. и работу с ней.

ЗЫ Твоя задача решается очень просто - нужно после выгрузки данные выгрузить по отдельному ПКО (в котором будет кроме полей поиска только Истина для ПометкаУдаления) удаляемые документы или сразу для них пометку удаления ставить.
5 Loki
 
11.08.08
13:17
(4)Спасибо, буду пробовать.
6 Loki
 
12.08.08
07:19
Подниму ветку. Ставлю ПометкаУдаления = Истина, но если документ в базе приемнике проведен, то отрабатывает только ОтменаПроведения, а пометка не устанавливатся...
7 Loki
 
12.08.08
08:25
ап
8 GenV
 
12.08.08
09:00
(6) В ПередВыгрузкой для ПКС ПометкаУдаления у ПКО документа: Значение = Истина; ставил? Можно еще добавить РежимЗаписи = "ОтменаПроведения" для ПередВыгрузкой ПКО документа на всякий случай.
9 Loki
 
12.08.08
09:07
(8) да, именно так и делаю. Но происходит только отмена проведения, пометка удаления не ставится
10 GenV
 
12.08.08
09:21
(9) Добавть еще в ПередВыгрузкой для ПКС Проведен ПКО документа: Значение = Ложь;
Похоже если объет перед отменой проведений проведен, то пометка удаления сбрасывается.
11 Loki
 
12.08.08
09:42
(10) уфф... спасибо)))
еще есть один момент, был удален зарегестрированный объект, выгружаю ссылку "объект не найден". По идее в базе приемнике он также должен быть помечен на удаление, но при записи ругается на то, что у документа не задана дата(
12 Loki
 
12.08.08
09:46
(10) вот, что нашла:
Если Объект.Проведен Тогда
                           Объект.ПометкаУдаления = Ложь;
                       КонецЕсли;
13 GenV
 
12.08.08
09:47
(11) Дата то пустая, как он нужный документ найдет. Другое дело если GUID объекта есть и он совпадает в обоих базах, тогда по нему можно синхронизироватья. Иначе восстанавливай объект или вручную удаляй.
14 Loki
 
12.08.08
09:51
да, синхронизация по GUID
15 Loki
 
12.08.08
12:00
(13)При загрузке идет проверка модификации объекта, не совпадают номера, так как в источнике объект удален и номер пустой. Дальше по логике получается, что надо записать объект и возникает ошибка, так как номер пустой.
16 Loki
 
12.08.08
12:21
ап
17 GenV
 
12.08.08
12:24
(15) поставь для этих реквизитов "не замещать", тогда когда найдет по GUID их не заменит (если конечно не используешь их для синхронизации).
18 Loki
 
12.08.08
12:28
Спасибо, GenV, помогло)))
19 Loki
 
12.08.08
12:44
Сразу бы еще хотелось задать вопрос по КД. У меня есть параметр НомерСообщения. У него стоят галочки Передавать при выгрузке и При загрузке. Но значение параметра в файл выгрузки не пишется. Разве эти галочки не для того, чтобы можно было работать со значением параметра при загрузке?
20 GenV
 
12.08.08
12:51
(19) Должна еще стоять галочка "редактировать в диалоге". Если не хочешь чтобы пользователи видели этот параметр, то можно самой выгружать его программно через
ПередатьОдинПараметрВПриемник(ИмяПараметра, ЗначениеПараметра, ПКОПараметра)
21 Loki
 
12.08.08
12:57
(20)Класс, спасибо)))