Удаление связанных (подчиненных) документов в базе приемнике при синхронизации
При синхронизации данных УНФ 1.6 и БП 3.0, данные передаются из УНФ в БП. В УНФ вводится реализация, или приходная накладная. В БП на основании этих документов вводят соответственно счет-фактура выданный, или полученный. В УНФ помечают на удаление реализацию (или приходную накладную). Нужно, чтобы при синхронизации в базе приемнике — автоматически помечался на удаление связанный (подчиненный) документ — счет-фактура.
- Описание
- Подробнее
Описание
Автоматически при синхронизации в базе приемнике подчиненный счет-фактура не помечается на удаление, если из базы источника пришла информация о пометке удаления документа реализация (или приходная накладная).
После поисков в интернет публикациях не нашел похожего решения, и решил сделать свое (может, недостаточно искал).
Поэтому я сделал расширение для конфигурации Бухгалтерия предприятия 3.0 (это база — приемник), в котором перехватил процедуру УстановитьПометкуУдаленияУОбъекта(Объект) из общего модуля ОбменДаннымиXDTOСервер.
Связанные (подчиненные) документы нахожу при помощи критерия отбора КритерийОтбора.СвязанныеДокументы.
Текст перехваченной процедуры:
&После("УстановитьПометкуУдаленияУОбъекта")
Процедура Синхр1_УстановитьПометкуУдаленияУОбъекта(Объект)
Если (ТипЗнч(Объект.Ссылка)=Тип("ДокументСсылка.РеализацияТоваровУслуг")) Или
(ТипЗнч(Объект.Ссылка)=Тип("ДокументСсылка.ПоступлениеТоваровУслуг")) Тогда
Если Объект.ОбменДанными.Загрузка Тогда
Запрос=Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СвязанныеДокументы.Ссылка
|ИЗ
| КритерийОтбора.СвязанныеДокументы(&Ссылка) КАК СвязанныеДокументы";
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если ТипЗнч(Выборка.Ссылка)=Тип("ДокументСсылка.СчетФактураВыданный")
Или ТипЗнч(Выборка.Ссылка)=Тип("ДокументСсылка.СчетФактураПолученный") Тогда
ДокументСчетФактураОбъект=Выборка.Ссылка.ПолучитьОбъект();
Если ДокументСчетФактураОбъект.Проведен Тогда
ДокументСчетФактураОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
КонецЕсли;
ДокументСчетФактураОбъект.ПометкаУдаления=Истина;
ДокументСчетФактураОбъект.Записать();
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Версии конфигураций, используемых при разработке:
- Управление нашей фирмой (УНФ ) — 1.6.27.295
- Бухгалтерия предприятия, редакция 3.0 ( БП ) — 3.0.121.31
Вполне возможно, данная технология будет работать и в других конфигурациях, где есть такой общий модуль и процедура.