Имя: Пароль:
1C
1С v8
КД 2.0 Перенос документов между базами v77
0 xazrad
 
01.12.11
19:59
уже тема давно обсуждалась, v8: Конвертация 2.0. Перенос документов между базами v77 , но вопрос для меня не решился. Как перенести статус документа "Проведен", "Помечен на удаление"?
1 truba
 
01.12.11
20:01
после записи
2 xazrad
 
01.12.11
20:04
(1) После загрузке?
3 truba
 
01.12.11
20:06
(2) да я б там попробовал. сам не делал, но где еще?
4 truba
 
01.12.11
20:07
если оно конечно для 7ки работает
5 xazrad
 
01.12.11
20:10
(4) работает Функция ПКО_ПослеЗагрузки_ХХХ(Объект, ИмяПравила, УзелОбъекта) вот только что править не пойму
6 Aleksey
 
01.12.11
20:19
Я делал 2 общих реквизита "Проведен", "Помечен на удаление". Ну а дальше я думаю все понятно
7 truba
 
01.12.11
20:22
(5) //сам не делал, рассматривать только как пробный вариант при отсутсвии дельных предложений//

ПараметрыОбъекта - либо Неопределено либо Соответствие, в котором хранятся дополнительные параметры переденные для данного объекта из источника в приемник. Если параметров передано не было, то ПараметрыОбъекта = Неопределено.

т.е. так:

Если ПараметрыОбъекта.Проведен = 1 Тогда
 Объект.Провести();
КонецЕсли;

Теперь как заполнить ПараметрыОбъекта. В ПКС проведен заходишь и ставишь галку - Передавать данные в параметр. Если время много - попробуй. А может стандартно взлетит механизм встроенный проведения.
//см внимательно первую строку модуля//
8 xazrad
 
02.12.11
00:07
(7) что я понял. функция передавать параметр отсутствует если в обмене участвует 7.7.
Но зато вот полезная статья Книга знаний: КД 2.х Передача произвольного параметра с объектом выгрузки при переносе 7.7-8.х
9 xazrad
 
02.12.11
00:08
(8)  Просто немного надо изменить вторую часть. ибо в обмене участвует не 7.7-8, а 7.7 - 7.7
10 xazrad
 
07.12.11
23:44
Решил. думаю может кому пригодится.
в ПКО каждого документа в "При Выгрузке" добавил

УзелПараметра = DOMDocument.createNode(1, "ЗначениеСтатуса", "");
Если Источник.Проведен()=1 тогда
   Статус = "Проведен";
ИначеЕсли Источник.ПометкаУдаления()=1 тогда    
   Статус = "ПомеченНаУдаление";
Иначе
   Статус = "НеПроведен";
КонецЕсли;    

УзелПараметра.setAttribute("ЗначениеПараметра", Статус);
Приемник.appendChild(УзелПараметра);

В обработку V7imp.ert в процедура "ЗагрузитьДокументV8" добавил:

   УзелСтатус = Объект.ВыбратьУзел("ЗначениеСтатуса");
   Статус    =    УзелСтатус.ПолучитьАтрибут("ЗначениеПараметра");
   Если Статус = "Проведен" Тогда
       Если ОбъектБД.ПометкаУдаления() = 1 Тогда    
           ОбъектБД.СнятьПометкуУдаления();    
       КонецЕсли;
       Попытка
           ОбъектБД.Провести();
       Исключение
           Сообщить(""+ОписаниеОшибки());
       КонецПопытки;
   ИначеЕсли Статус = "ПомеченНаУдаление"    Тогда
       ОбъектБД.Удалить(1);
   Иначе
       Если ОбъектБД.Проведен()=1 Тогда
           ОбъектБД.СделатьНеПроведенным();
       ИначеЕсли ОбъектБД.ПометкаУдаления() =1 Тогда
           ОбъектБД.СнятьПометкуУдаления();
       КонецЕсли;
   КонецЕсли;
11 DJ Anthon
 
08.12.11
02:24
а конфигурации одинаковые?
12 Aleksey
 
08.12.11
09:49
(11) А какая разница? "Проведен", "Помечен на удаление" есть во всех конфигурациях