При использовании конфигурации «Конвертация данных 2.0» для переноса документов между базами 7.7 не переносится статус документа, а именно: «Проведен», «Помечен на удаление».
Все документы при переносе стандартным механизмом «садятся» непроведенными.
При использовании ПКС «Проведен» появляется ошибка «Не верное имя реквизита Документ.ХХХ.Проведен».
Для решения данной проблемы нам придется:
- Добавить код в процедуру ПКО «ПриВыгрузке»:
УзелПараметра = DOMDocument.СоздатьУзел(1, «ЗначениеСтатуса», «»);
УзелПараметра.УстановитьАтрибут(«ИмяПараметра», «Статус»);
Если Источник.Проведен()=1 тогда
Статус = «Проведен»;
ИначеЕсли Источник.ПометкаУдаления()=1 тогда
Статус = «ПомеченНаУдаление»;
Иначе
Статус = «НеПроведен»;
КонецЕсли;
УзелПараметра.УстановитьАтрибут(«ЗначениеПараметра», Статус);
Приемник.ДобавитьПодчиненный(УзелПараметра);
- «Подправить» модуль загрузки в процедуре «ЗагрузитьДокументV8()». В конце добавляем:
УзелСтатус = Объект.ВыбратьУзел(«ЗначениеСтатуса»);
Статус = УзелСтатус.ПолучитьАтрибут(«ЗначениеПараметра»);
Если Статус = «Проведен» Тогда
Если ОбъектБД.ПометкаУдаления() = 1 Тогда
ОбъектБД.СнятьПометкуУдаления();
КонецЕсли;
Попытка
ОбъектБД.Провести();
Исключение
Сообщить(«»+ОписаниеОшибки());
КонецПопытки;
ИначеЕсли Статус = «ПомеченНаУдаление» Тогда
ОбъектБД.Удалить(0);
Иначе
Если ОбъектБД.Проведен()=1 Тогда
ОбъектБД.СделатьНеПроведенным();
ИначеЕсли ОбъектБД.ПометкаУдаления() =1 Тогда
ОбъектБД.СнятьПометкуУдаления();
КонецЕсли;
КонецЕсли;
«1. Добавить код в процедуру ПКО «После загрузки»:» — Может быть «После выгрузки» документа — я так понимаю добавляем подчиненный узел «ЗначениеСтатуса» в xml?
(1) Совершенно верно. только в ПКО «ПриВыгрузке». Исправил в публикации. Спасибо за замечание
В принципе если совесть позволяет править конфигу и обмен будет постоянный, то можно добавить 2 общих реквизита Проведен и ПометкаУдаления. Тогда КД при переносе их автоматом будет заполнять и после загрузки уже можно анализировать их и делать телодвижения в документе.
Автору плюс однозначно, просто привел альтернативу решению автора
Интересно, надо попробовать. Автору спасибо.
А что мешает использовать в обработчике «ПослеЗагрузки» ПКО любого документа волшебные слова «РежимЗаписи = «Проведение»»????
(6) другой. как мне известно параметры при переносу из 7.7 в 7.7 не передаются а вhttp://infostart.ru/public/21069/ используются параметры
(5) если не ошибаюсь для 7-ки это не работает. Но в любом случае речь идет о передачи всех документов, а не только проведенных, поэтому так без условно проводить нельзя (например в источнике документ сняли с проведения или пометили на удаления, нужно в получателе сделать тоже самое, иначе данные будут расходиться, ведь мы уже выгрузили этот документ, так как он был проведен)
Однако, не работает:
Ошибка исполнения обработчика: ПКО_ПриВыгрузке_ПоступлениеТМЦ
— Поле агрегатного объекта не обнаружено (СоздатьУзел)
Говорит, у этого объекта нет такого метода:
УзелПараметра = DOMDocument.СоздатьУзел(1, «ЗначениеСтатуса», «»);
(10) попробуй так
УзелПараметра = DOMDocument.createNode(1, «ЗначениеСтатуса», «»);
УзелПараметра.setAttribute(«ИмяПараметра», «Статус»);
Если Источник.Проведен()=1 тогда
Статус = «Проведен»;
ИначеЕсли Источник.ПометкаУдаления()=1 тогда
Статус = «ПомеченНаУдаление»;
Иначе
Статус = «НеПроведен»;
КонецЕсли;
УзелПараметра.setAttribute(«ЗначениеПараметра», Статус);
Приемник.appendChild(УзелПараметра);
Пара моментов
>2 «подправить» модуль загрузки в процедуре «ЗагрузитьДокументV8()»
В ПКО есть обработчики «При загрузке» и «После загрузки». При чем тут процедура «ЗагрузитьДокументV8()» если речь идет о конвертации между 7.7 и 7.7 ?
Момент второй. Бросается в глаза
Если ОбъектБД.ПометкаУдаления() = 1 Тогда
ОбъектБД.СнятьПометкуУдаления();
КонецЕсли;
По всей видимости же не ОбъектБД а Объект
Выдает ошибку при загрузке:
Статус = УзелСтатус.ПолучитьАтрибут(«ЗначениеПараметра»);
(2958)}: Значение не представляет агрегатный объект (ПолучитьАтрибут)
Разобрался
Не получается подправить под конвертацию 8.2 УТ -> 7.7 Учет и отчетность предпринимателя
Во 2м шаге,как я правильно понял,меняем
на
Показать
А вот как правильно прописать в правилах конвертации шаг1 — ну никак не могу((
(15) Vigor06, Также пытаюсь перенести документы из УТ 8.2 11.1 в Тис 7.7. Примеров переноса из 7.7 в 7.7 и из 8.2 в 8.2 достаточно, а как правильно описать из 8.2 в 7.7 пока не нашел. Vigor06 если разобрался подскажи как сделал.
Как решить вопрос проведения документов в конвертации 8.2 -> 7.7 кто разобрался?