КД 2.0. Перенос документов 7.7 - 7.7. Передача параметра "Проведен"

Публикация № 100514

Разработка - Системная интеграция - Обмен через XML

1С:Конвертация данных 2.0. Решение проблемы проведения документов при переносе между базами 7.7

При использовании конфигурации "Конвертация данных 2.0" для переноса документов между базами 7.7 не переносится статус документа, а именно: "Проведен", "Помечен на удаление".

Все документы при переносе стандартным механизмом "садятся" непроведенными.

При использовании ПКС "Проведен" появляется ошибка "Не верное имя реквизита Документ.ХХХ.Проведен".

Для решения данной проблемы нам придется:

  1. Добавить код в процедуру ПКО "ПриВыгрузке":


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

  1. "Подправить" модуль загрузки в процедуре "ЗагрузитьДокументV8()". В конце добавляем:


УзелСтатус
= Объект.ВыбратьУзел("ЗначениеСтатуса");

Статус      =   УзелСтатус.ПолучитьАтрибут("ЗначениеПараметра");

Если
Статус = "Проведен" Тогда
   Если
ОбъектБД.ПометкаУдаления() = 1 Тогда
        
ОбъектБД.СнятьПометкуУдаления();
   КонецЕсли;

   Попытка
       
ОбъектБД.Провести();
   Исключение
      
Сообщить(""+ОписаниеОшибки());
   КонецПопытки;

ИначеЕсли
Статус = "ПомеченНаУдаление"  Тогда
   
ОбъектБД.Удалить(0);
Иначе
   Если
ОбъектБД.Проведен()=1 Тогда
        
ОбъектБД.СделатьНеПроведенным();
   ИначеЕсли
ОбъектБД.ПометкаУдаления() =1 Тогда
        
ОбъектБД.СнятьПометкуУдаления();
   КонецЕсли;
КонецЕсли;

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. fancy 9 21.12.11 07:33 Сейчас в теме
"1. Добавить код в процедуру ПКО "После загрузки":" - Может быть "После выгрузки" документа - я так понимаю добавляем подчиненный узел "ЗначениеСтатуса" в xml?
2. xazrad 15 21.12.11 09:53 Сейчас в теме
(1) Совершенно верно. только в ПКО "ПриВыгрузке". Исправил в публикации. Спасибо за замечание
3. Alav 13 21.12.11 11:49 Сейчас в теме
В принципе если совесть позволяет править конфигу и обмен будет постоянный, то можно добавить 2 общих реквизита Проведен и ПометкаУдаления. Тогда КД при переносе их автоматом будет заполнять и после загрузки уже можно анализировать их и делать телодвижения в документе.


Автору плюс однозначно, просто привел альтернативу решению автора
4. Boroda 90 21.12.11 18:51 Сейчас в теме
Интересно, надо попробовать. Автору спасибо.
5. fomix 26 22.12.11 12:51 Сейчас в теме
А что мешает использовать в обработчике "ПослеЗагрузки" ПКО любого документа волшебные слова "РежимЗаписи = "Проведение""????
9. Alav 13 24.12.11 11:26 Сейчас в теме
(5) если не ошибаюсь для 7-ки это не работает. Но в любом случае речь идет о передачи всех документов, а не только проведенных, поэтому так без условно проводить нельзя (например в источнике документ сняли с проведения или пометили на удаления, нужно в получателе сделать тоже самое, иначе данные будут расходиться, ведь мы уже выгрузили этот документ, так как он был проведен)
6. Модератор раздела artbear 23.12.11 15:42 Сейчас в теме
Аналогичная разработка давно есть на ИС
http://infostart.ru/public/21069/
Детали уже особо не помню.
У автора сабжа юзается другой подход, верно?
7. xazrad 15 23.12.11 17:27 Сейчас в теме
(6) другой. как мне известно параметры при переносу из 7.7 в 7.7 не передаются а в http://infostart.ru/public/21069/ используются параметры
8. Модератор раздела artbear 24.12.11 11:06 Сейчас в теме
(6) Параметры передать для 77 несложно. я в свое время как раз решал задачу проведения документов и решил проблему передачи параметров.
10. mig2k 27.12.11 11:27 Сейчас в теме
Однако, не работает:
Ошибка исполнения обработчика: ПКО_ПриВыгрузке_ПоступлениеТМЦ
- Поле агрегатного объекта не обнаружено (СоздатьУзел)
Говорит, у этого объекта нет такого метода:
УзелПараметра = DOMDocument.СоздатьУзел(1, "ЗначениеСтатуса", "");
11. xazrad 15 27.12.11 17:34 Сейчас в теме
(10) попробуй так
УзелПараметра = DOMDocument.createNode(1, "ЗначениеСтатуса", "");
УзелПараметра.setAttribute("ИмяПараметра", "Статус");
Если Источник.Проведен()=1 тогда
Статус = "Проведен";
ИначеЕсли Источник.ПометкаУдаления()=1 тогда
Статус = "ПомеченНаУдаление";
Иначе
Статус = "НеПроведен";
КонецЕсли;

УзелПараметра.setAttribute("ЗначениеПараметра", Статус);
Приемник.appendChild(УзелПараметра);
12. ChessCat 13.02.12 14:41 Сейчас в теме
Пара моментов

>2 "подправить" модуль загрузки в процедуре "ЗагрузитьДокументV8()"
В ПКО есть обработчики "При загрузке" и "После загрузки". При чем тут процедура "ЗагрузитьДокументV8()" если речь идет о конвертации между 7.7 и 7.7 ?

Момент второй. Бросается в глаза

Если ОбъектБД.ПометкаУдаления() = 1 Тогда
ОбъектБД.СнятьПометкуУдаления();
КонецЕсли;

По всей видимости же не ОбъектБД а Объект
13. K_Andrey 09.05.12 11:45 Сейчас в теме
Выдает ошибку при загрузке:

Статус = УзелСтатус.ПолучитьАтрибут("ЗначениеПараметра");
(2958)}: Значение не представляет агрегатный объект (ПолучитьАтрибут)
14. K_Andrey 09.05.12 12:36 Сейчас в теме
15. Vigor06 07.11.12 11:27 Сейчас в теме
Не получается подправить под конвертацию 8.2 УТ -> 7.7 Учет и отчетность предпринимателя
Во 2м шаге,как я правильно понял,меняем
	ЗаписатьОбъект(ОбъектБД);
	
	Если ПустоеЗначение(ПометкаУдаления) = 1 Тогда
		Если Объект.ПометкаУдаления() = 1 Тогда    ОбъектБД.СнятьПометкуУдаления();  КонецЕсли;
	Иначе
		Если Объект.ПометкаУдаления() = 0 Тогда    ОбъектБД.Удалить(0);  КонецЕсли;
	КонецЕсли

на
ЗаписатьОбъект(ОбъектБД);
УзелСтатус = Объект.ВыбратьУзел("ЗначениеСтатуса");
Статус      =   УзелСтатус.ПолучитьАтрибут("ЗначениеПараметра");

Если Статус = "Проведен" Тогда
   Если ОбъектБД.ПометкаУдаления() = 1 Тогда
        ОбъектБД.СнятьПометкуУдаления();
   КонецЕсли;

   Попытка
       ОбъектБД.Провести();
   Исключение
      Сообщить(""+ОписаниеОшибки());
   КонецПопытки;

ИначеЕсли Статус = "ПомеченНаУдаление"  Тогда
   ОбъектБД.Удалить(0);
Иначе
   Если ОбъектБД.Проведен()=1 Тогда
        ОбъектБД.СделатьНеПроведенным();
   ИначеЕсли ОбъектБД.ПометкаУдаления() =1 Тогда
        ОбъектБД.СнятьПометкуУдаления();
   КонецЕсли;
КонецЕсли;
Показать


А вот как правильно прописать в правилах конвертации шаг1 - ну никак не могу((
16. Nik777x 14.11.13 21:31 Сейчас в теме
(15) Vigor06, Также пытаюсь перенести документы из УТ 8.2 11.1 в Тис 7.7. Примеров переноса из 7.7 в 7.7 и из 8.2 в 8.2 достаточно, а как правильно описать из 8.2 в 7.7 пока не нашел. Vigor06 если разобрался подскажи как сделал.
17. Xershi 1018 27.11.14 15:18 Сейчас в теме
Как решить вопрос проведения документов в конвертации 8.2 -> 7.7 кто разобрался?
Оставьте свое сообщение

См. также

Как в 1С 7.7 сделать обмен на базе FTP

Файловые протоколы обмена, FTP 1С7.7<->1C7.7 v7.7 1cv7.md Бесплатно (free)

Выгрузка данных на FTP на примере в конфигурации Штрих-М Кассир 1.10.

12.05.2020    1392    Ignatov_mu    7    

Доработка конвертации данных КД2 (версии 2.1). Расширенная диагностическая информация при выгрузке по правилам из 1С 7.7 и при загрузке в 1С 7.7

Обмен данными 1С Перенос данных из 1С7.7 в 1C8.X Обмен через XML v7.7 v8 КД Бесплатно (free)

Есть очень неприятная особенность при настройке обмена по правилам КД2 в момент отладки на стороне 1С 7.7, как при выгрузке из 1С 7.7, так и при загрузке в 1С 7.7. Непонятно, в каком конкретно месте формирования или разбора данных XML файла в какой именно момент споткнулась программа (произошел сбой). Я нашел способ вывода дополнительной диагностики, теперь точно известно, на каком элементе данных XML споткнулся модуль выгрузки V77Exp.ert (модуль загрузки V77Imp.ert). Теперь отладка правил обмена на стороне 1С 7.7 стала простой, выполняется на порядок проще.

18.10.2019    5634    ksnik    0    

Читаем реквизиты по ИНН в 1С:7.7

Обмен через XML v7.7 1cv7.md Россия Бесплатно (free)

Чтение реквизитов контрагентов по ИНН при оформленной подписке на сервис 1С:Контрагенты

17.01.2017    18685    kudenzov    14    

Проблемы переноса данных бухгалтерского учета

Обмен через XML v77::БУ 1С7:Бух Россия БУ Бесплатно (free)

Спецы 1С для удобства конечного пользователя создали специальные решения, позволяющие по нажатию кнопки выгрузить данные. Попробовал и я...

03.02.2016    26413    lvictor58    5    

Оптимизация выгрузки из 1С 7.7 по правилам обмена большого объема данных

Перенос данных из 1С7.7 в 1C8.X Обмен через XML 1С7.7<->1C7.7 v7.7 1cv7.md Бесплатно (free)

При выгрузке из 1С 7.7. большого справочника программа завершалась примерно с таким сообщением: "msxml6.dll: Недостаточно памяти для завершения операции". Вариант выгрузки порциями меня не устраивал. Поэтому немного оптимизировал обработку выгрузки. Возможно кому-то сэкономит время.

24.09.2014    31806    Just4Fun    29    

Фокусы с Конвертацией данных 2.0

Перенос данных из 1С7.7 в 1C8.X Обмен через XML v7.7 v8 1cv8.cf 1cv7.md КД Бесплатно (free)

Используем мощный инструмент Конвертации данных себе во благо

19.12.2011    20063    tusv    9    

Как создать в 7.7 XML, проверить по схемам (XSD, XML) от заказчика и отправить на вебсервер методом Post

Обмен через XML Практика программирования v7.7 1cv7.md Бесплатно (free)

Немного об API из 1С. Или простой способ создать, проверить и отправить на вебсервер XML-файл.

30.04.2011    82855    artms    24    

Конвертация данных 2 - Отмена проведения документов в 7.7 при повторной загрузке

1С7.7<->1C7.7 Обработка документов v7.7 1cv7.md КД Бесплатно (free)

При повторной загрузке данных в 1С бывает необходимо отменить проведение у существующих документов.

21.10.2010    18802    nicxxx    7    

OLE в 1С-Предприятии

Математика и алгоритмы 1С7.7<->1C7.7 v7.7 1cv7.md Бесплатно (free)

Небольшая инструкция с примерами - как работать с OLE

09.08.2008    33106    Minotavrik    8    

(OLE 1С - 1C 7.7) Функции для 1С:Предприятие 7.7 для работы с другой базой 1С.

1С7.7<->1C7.7 Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

Простенькие учебные функции (с описанием) для работы с базой 1С 7.7 через OLE. Полностью средствами 1С, т.е. не требуют никаких внешних компонент. Пользоваться можно бесплатно:-) Вставляете в глобальный модуль и пользуетесь. Цель: обучение, готовая иллюстрация подходов, возможность сразу использовать или, если нужно, доработать под свои цели.

06.08.2008    28921    venger    8    

1С:Конвертация данных: Способ переноса дерева элементов справочников между разнородными конфигурациями.

Математика и алгоритмы Обмен через XML 1С7.7<->1C7.7 v7.7 1cv7.md КД Бесплатно (free)

Данная задача возникает когда необходимо перенести справочники между конфигурациями у которых различается количество уровней. Например, количество уровней в справочнике "Номенклатура" в конфигурации "Торговля и Склад" - 5, а в конфигурации "Бухгалтерия" - 4. Самое простое решение - отбросить реквизит "Родитель" элементов справочника при выгрузке, но есть способ элегантнее. В данном случае мы не обсуждаем возможность изменения структуры справочника в базе-приемнике конфигурации "1С:Бухгалтерия".

23.06.2008    13096    api.vl    2