Каталог решений - Удаление связанных (подчиненных) документов в базе приемнике при синхронизации

Удаление связанных (подчиненных) документов в базе приемнике при синхронизации

Удаление связанных (подчиненных) документов в базе приемнике при синхронизации

В наличии

При синхронизации данных УНФ 1.6 и БП 3.0, данные передаются из УНФ в БП. В УНФ вводится реализация, или приходная накладная. В БП на основании этих документов вводят соответственно счет-фактура выданный, или полученный. В УНФ помечают на удаление реализацию (или приходную накладную). Нужно, чтобы при синхронизации в базе приемнике — автоматически помечался на удаление связанный (подчиненный) документ — счет-фактура.

Категория:

Описание

Автоматически при синхронизации в базе приемнике подчиненный счет-фактура не помечается на удаление, если из базы источника пришла информация о пометке удаления документа реализация (или приходная накладная).

После поисков в интернет публикациях не нашел похожего решения, и решил сделать свое (может, недостаточно искал).

Поэтому я сделал расширение для конфигурации Бухгалтерия предприятия 3.0 (это база — приемник), в котором перехватил процедуру УстановитьПометкуУдаленияУОбъекта(Объект) из общего модуля ОбменДаннымиXDTOСервер.

Связанные (подчиненные) документы нахожу при помощи критерия отбора КритерийОтбора.СвязанныеДокументы.

Текст перехваченной процедуры:

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

КонецПроцедуры

Версии конфигураций, используемых при разработке:

  • Управление нашей фирмой (УНФ ) — 1.6.27.295
  • Бухгалтерия предприятия, редакция 3.0 ( БП ) —  3.0.121.31

Вполне возможно, данная технология будет работать и в других конфигурациях, где есть такой общий модуль и процедура.

has been added to your cart:
Оформление заказа