Перенос помеченных на удаление объектов. Конвертация 2.1

02.04.18

Интеграция - Обмен между базами 1C

Иногда при переносе данных возникает задача: не переносить помеченные на удаление документы, а те документы, которые были ранее перенесены в базу приемник и теперь в приемнике стали помеченными на удаления - переносить так, чтобы в базу приемник не тянулись связанные с объектом ссылки, но искомый объект помечался на удаление. В данной статье будет рассказано, как это можно сделать достаточно просто, используя конфигурацию "Конвертация 2.1".

В статье описывается способ переноса таких объектов в контексте конфигурации "Конвертация 2.1". Во всех остальных случаях, когда используются прочие механизмы обменов - данная задача имеет различное множество решений, которые в данной статье не рассматриваются.

Итак, в правилах обмена мы будем использовать алгоритмы и обработчики событий объектов. В алгоритмах мы создадим 3 элемента, которые будем размещать в одноименных обработчиках документов и справочников. Пример реализации я буду приводить только для документов, так как для справочников подход будет аналогичным. 

Алгоритм "ПередВыгрузкой":

ПометкаУдаления = Источник.ПометкаУдаления;
НеСоздаватьЕслиНеНайден = ПометкаУдаления;
ПередатьОдинПараметрВПриемник("_ПометкаУдаления", ПометкаУдаления);

Получение пометки удаления для ссылки производится через точку. Все потому, что далее, перед исполнением кода обработчика объекта "ПриВыгрузке", будет производится чтение ссылки со всеми реквизитами и табличными частями, поэтому использовать получение значения реквизита ссылки с помощью запроса или БСП функции ОбщегоНазначения.ПолучитьЗначениеРеквизита() будет являться лишним. Мы прочитаем все реквизиты в обработчике "ПередВыгрузкой", закэшируя тем самым объект.

пример трассировки MS SQL Profiler

(пример трассировки в MSSQL Profiler для процедуры "ПередВыгрузкой")

 

(пример трассировки перед выполнением кода внутри процедуры "ПриВыгрузке")

Если объект выгружается впервые, то нет смысла загружать помеченный на удаление объект в приемник. Конечно, в некоторых случаях может потребоваться переносить такие объекты, например, в случае, когда переносится набор записей регистра и наш документ содержится в измерении набора. В таком случае нужно понимать - насколько действительно в базе приемнике нужны такие записи. В моей статье я не рассматриваю такие случаи. Далее, передаем параметр конкретного объекта, который будет содержать информацию о пометке удаления.

Алгоритм "ПриВыгрузке":

ПКО.НеВыгружатьОбъектыСвойствПоСсылкам = Источник.ПометкаУдаления;

Самый интересный момент статьи. Такой строчкой кода мы указываем, что связанные ссылки не будут тянуться с искомым объектом в файл выгрузки, если он помечен на удаление. Все дело в том, что данное свойство не так очевидно указано в справке к обработчикам. А в настройках правила свойство устанавливается на все объекты выгрузки по такому правилу. 

Используя данное свойство мы сокращаем размер файла выгрузки, а так же избавляемся от проверки при загрузке и прописывания кода, который бы исключал при загрузке связанные ссылки (весьма не тривиальный алгоритм). В случае, если мы не используем файлы, а осуществляем обмен с помощью веб-сервисов или com-подключений - мы сокращаем объем передаваемых данных.

Алгоритм "ПриЗагрузке":

ЕстьПараметрПометкаУдаления = (Параметры.Свойство("_ПометкаУдаления") И Параметры._ПометкаУдаления);

ЕстьРучнаяКорректировка = ложь;
Если ОбщегоНазначения.ЕстьРеквизитОбъекта("РучнаяКорректировка", Объект.Метаданные()) Тогда
	ЕстьРучнаяКорректировка = Объект.РучнаяКорректировка;	
КонецЕсли;

НеЗамещатьОбъект = ЕстьРучнаяКорректировка ИЛИ ЕстьПараметрПометкаУдаления;	

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

При загрузке в базу приемник нам необходимо проанализировать - был ли данный объект ранее загружен и его движения были отредактированы. Для этого обратимся к реквизиту объекта "РучнаяКорректировка", если он, конечно, существует. Так же проверим параметр, который с объектом мы передали при выгрузке процедурой "ПередатьОдинПараметрВПриемник". Если движения объекта был ранее отредактированы или объект стал помеченным на удаления - мы не замещаем значения реквизитов объекта, а пометку устанавливаем принудительно в данном обработчике.

Осталось разместить вызовы данных алгоритмов в обработчиках объектов: "ПередВыгрузкой", "ПриВыгрузке", "ПриЗагрузке".

Конечно, пример, приведенный в моей статье, является не единственным вариантом решения задачи. Вариантов, возможно, масса. Например, можно в базе приемнике сделать веб-сервис, к которому мы могли бы обращаться из базы источника, передавая информацию об выгружаемых объектах - как вариант идентификаторы ссылок. А в ответ веб-сервис возвращал информацию - нужно ли вообще выгружать такие объекты. 

С данной задачей я столкнулся "вживую", на достаточно большом объеме данных. И такой подход оказался вполне эффективным. 

Надеюсь, что пример, описанный в статье, окажется полезным!

Конвертация обмен пометка удаления не выгружать

См. также

SALE! 10%

Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2

Обмен между базами 1C Платформа 1С v8.3 1С:Управление производственным предприятием Россия Платные (руб)

Обработка позволяет перенести из УПП в ERP / 1С:УТ 11 / КА 2 всю возможную информацию. Переносятся документы, а также начальные остатки и справочная информация. Типовая обработка от фирмы 1С не позволяет сохранить документы за период работы. Кроме того, наши алгоритмы выгрузки начальных остатков тоже имеют больше функционала и тщательно проверялись на реальных проектах перехода с УПП на ERP. Наша разработка будет полезна как фирмам-франчайзи, которые периодически выполняют перенос данных для заказчиков, так и организациям, самостоятельно выполняющим проект по переходу. При приобретении обработки вы будете четыре месяца получать ее обновления, далее можно приобрести подписку на обновления. Конфигурации 1С постоянно меняются, выходят новые релизы. Имея подписку на обновления, вы всегда можете быть уверены, что правила конвертации данных будут работать на ваших базах 1С.

46083 41475 руб.

04.08.2015    153774    272    258    

315

SALE! 10%

[ED3] Обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

22320 руб.

12.06.2017    129868    669    289    

368

SALE! 10%

Перенос данных из УПП 1.3 / КА 1.1 в БП 3.0

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Россия Бухгалтерский учет Платные (руб)

Для данного перехода не существует стандартной обработки от компании 1С. Наша разработка позволяет перенести остатки по всем счетам бухгалтерского учета, документы за период и всю нормативно справочную информацию из "1С: Управление производственным предприятием 1.3" / "1С:Комплексная автоматизация 1.1" в программу "1С:Бухгалтерия предприятия 3.0" на выбранную дату начала ведения учета. В обработке имеется фильтр по организациям и множество других параметров выгрузки. Поддерживается несколько сценарией работы: как первичного полного переноса, так и догрузки только новых документов из УПП 1.3 / КА 1.1 в БП 3.0. Обмен проводится либо с помощью правил (тариф "Базовый"), либо с помощью готовых обработок для обмена, которые можно подключить к конфигурациям (тариф "Удобно"). Конфигурации при использовании обмена остаются полностью типовыми. Перенос данных возможен в 1С: Бухгалтерию 3.0 версии ПРОФ, КОРП или базовую.

43889 39500 руб.

25.02.2015    165775    366    232    

354

SALE! 10%

Перенос данных из ERP 2 (ЕРП) / КА 2 в ЗУП 3 [КД 2]

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Наша обработка позволяет не только перенести все документы и справочную информацию из ERP 2 или КА 2 в ЗУП 3, но и организовать регулярный обмен данными между программами 1С:ERP 2 / КА 2 и 1С:ЗУП 3. Вы можете выбрать период отбора данных и установить фильтр по организациям, чтобы выгружать только необходимую информацию. Более того, перенос оперативно обновляется при выходе новых релизов программы 1С, так что вы всегда будете иметь самую актуальную версию обработки. Наша компания также предоставляет техническую поддержку по вопросам, возникающим при использовании обработки. Вы можете обратиться к нам через тикеты на Инфостарте, и мы оперативно решим любые вопросы. Мы гарантируем, что наша обработка будет надежным инструментом для вашего бизнеса, который упростит и ускорит процесс взаимодействия с программами 1С.

43889 39500 руб.

03.12.2020    31789    64    54    

66

[ED2] Обмен УПП 1.3, КА 1.1, УТ 10.3 с EnterpriseData (универсальный формат обмена), обработка

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Платформа 1C v8.2 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 2, УНФ 1.6 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

12600 руб.

18.02.2016    178159    539    507    

497

Перенос данных из УПП 1.3 в БП 3.0. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С: Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила тестировались на конфигурациях УПП 1.3 (1.3.212.x) и БП 3.0 (3.0.142.x). Правила подходят для версии ПРОФ и КОРП.

25000 руб.

15.12.2021    17065    101    36    

54

SALE! 10%

Перенос данных из БП 3.0 в УНФ 3.0 / УНФ 1.6

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Платные (руб)

Обработка позволяет начать вести учет в программе "1С:Управление нашей фирмой" редакции 3.0 или 1.6, то есть перенести в нее из существующей базы "1С:Бухгалтерия предприятия, ред. 3.0" начальные остатки на выбранную дату, документы за период времени и также всю необходимую справочную информацию. По вашему запросу мы можем бесплатно добавить в правила переноса дополнительные виды объектов (например, новые виды документов). Обработка по переходу на новую программу 1С включает в себя правила конвертации в формате XML, обработку для выгрузки и загрузки данных, а также инструкцию по работе. В стоимость переноса включена техподдержка в течение месяца с момента покупки, а также получение обновлений переноса в течение 4 месяцев.

43889 39500 руб.

10.07.2018    64413    33    112    

40

SALE! 10%

Перенос данных из ERP 2 / КА 2 / УТ 11 в БП 3.0

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос позволяет настроить собственный обмен данными между указанными программами, альтернативный предлагаемому фирмой 1С. Перенос данных осуществляется из 1С:ERP 2 / 1С:КА 2 / 1С:УТ 11 в 1С:БП 3.0. Правила обмена оперативно обновляются при выходе новых релизов программы 1С, так что вы всегда будете иметь самую актуальную версию обработки. Наша компания также предоставляет техническую поддержку по вопросам, возникающим при использовании обработки. Вы можете обратиться к нам через тикеты на Инфостарте, и мы оперативно решим любые вопросы. Мы гарантируем, что наша обработка будет надежным помощником для вашего бизнеса, который упростит и ускорит процесс взаимодействия между программами 1С.

35000 31500 руб.

15.04.2019    64996    160    128    

92
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Stim213 415 05.04.18 12:52 Сейчас в теме
Для автообмена настройкой унив обмена xml вы не поиграетесь.

Если список документов ограничен, то можно сделать проще:
в дополнение к основному ПКО документа создается ПКО с парочкой свойств Дата+Номер и настройкой "не создавать новый объект".

в пвд перед выгрузкой пишите:
Если Объект.ПометкаУдаления Тогда
ИмяПКО = "ПКОМойДокумент_ПомеченныйНаУдаление";
КонецЕсли;


и не надо писать алгоритмы и много кода. Помеченный на удаление документ будет выгружаться по правилу помеченных, данных будет там совсем немного и новый помеченный создан не будет.
2. Shmell 516 06.04.18 06:23 Сейчас в теме
(1)
Да, Ваш вариант вполне подойдет для правил с небольшим количеством объектов.
3. hugador 39 23.12.20 23:56 Сейчас в теме
Добрый день. Столкнулась с похожей задачей, идея понравилась, сделала по вашему примеру.
Такой вопрос: почему код:
ПКО.НеВыгружатьОбъектыСвойствПоСсылкам = Источник.ПометкаУдаления

у вас находится в обработчике "ПриВыгрузке"? У меня функционал "НеВыгружатьОбъектыСвойствПоСсылкам" заработал только при помещении этого кода в событие "ПередВыгрузкой", иначе ссылочные реквизиты помеченных на удаление объектов выгружались в полном объеме. Правда, я пока тестировала только выгрузку в XML, без загрузки в Приемник, и анализировала содержимое файла выгрузки.
Оставьте свое сообщение