Не выгружать документы по условию

1. Flipp 10.01.25 13:37 Сейчас в теме
Здравствуйте, подскажите, пожалуйста.. Попросили добавить в документ реквизит «Не выгружать в бухгалтерию» .Если реквизит = да, тогда данный документ не записывает в очередь на выгрузку.
Как-то можно сделать это не используя конвертацию данных!? Можно ли это условие прописать в базе источнике и по условию не выгружать документы? Если да, то подскажите в каком модуле?

Так как реквизит добавленный, то стандартными правилами он не полетит я так понимаю и ловить его на стороне базы приемника не получится. Или я путаю!?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. RustamZz 10.01.25 14:49 Сейчас в теме
(1) Лучше через правила сделать. Проще, быстрее и понятнее.
2. VmvLer 10.01.25 14:32 Сейчас в теме
исходная УТ, ЗУП, ЕРП...?
4. Flipp 10.01.25 14:42 Сейчас в теме
3. Fox-trot 163 10.01.25 14:39 Сейчас в теме
пишешь в событие ПередВыгрузкой что-то типа
Отказ = (СтрСравнить(Объект.МойРеквизит, "не выгружать") = 0);
5. Flipp 10.01.25 14:42 Сейчас в теме
(3) это в каком модуле в унф можно прописать?
Или вы про конвертацию?
7. Fox-trot 163 10.01.25 14:49 Сейчас в теме
(5) в правилах конвертации
8. Flipp 10.01.25 14:50 Сейчас в теме
(7) мне нужно без конвертации
10. Fox-trot 163 10.01.25 14:51 Сейчас в теме
(8) тогда фильтруй по этому реквизиту при выгрузке
9. Flipp 10.01.25 14:51 Сейчас в теме
(7) Как сделать без правил в приемнике я знаю, но только со стандартными реквизитами, а мне нужно в источнике и со своим реквизитом. Менять правила - не вариант.
11. VmvLer 10.01.25 14:56 Сейчас в теме
(5) УНФ нет, но во всех типовых есть модули ОбменДаннымиСобытия...

- этот модуль в расширение
- находим там методы регистрации объектов, они различны в контексте конфигураций
- далее пишем что-то вроде

пример для источника БП, который блокирует регистрацию изменений некоторых объектов в БП, которыми "владеют" только кадры.

&Вместо("СинхронизацияДанныхЧерезУниверсальныйФорматПередЗаписью")
Процедура допСинхронизацияДанныхЧерезУниверсальныйФорматПередЗаписью(Источник, Отказ)
	Если допПропуститьРегистрациюОбъекта(Источник) Тогда
		Возврат;
	КонецЕсли;
	ПродолжитьВызов(Источник, Отказ);
КонецПроцедуры

&Вместо("ОбменЗарплата3Бухгалтерия3ПередЗаписью")
Процедура допОбменЗарплата3Бухгалтерия3ПередЗаписью(Источник, Отказ)
	Если допПропуститьРегистрациюОбъекта(Источник) Тогда
		Возврат;
	КонецЕсли;
	ПродолжитьВызов(Источник, Отказ);
КонецПроцедуры

&Вместо("ОбменЗарплата3Бухгалтерия3ПередЗаписьюРегистра")
Процедура доп_ОбменЗарплата3Бухгалтерия3ПередЗаписьюРегистра(Источник, Отказ, Замещение)
	Если допПропуститьРегистрациюОбъекта(Источник) Тогда
		Возврат;
	КонецЕсли;
	ПродолжитьВызов(Источник, Отказ, Замещение);
КонецПроцедуры

Функция допПропуститьРегистрациюОбъекта(Источник)
	
	сзИсточникМетаданныеИмя = Новый СписокЗначений;
	сзИсточникМетаданныеИмя.Добавить("Справочник.ФизическиеЛица"); 
	
	сзИсточникМетаданныеИмя.Добавить("РегистрСведений.ГражданствоФизическихЛиц");
	сзИсточникМетаданныеИмя.Добавить("РегистрСведений.ДокументыФизическихЛиц");   
	сзИсточникМетаданныеИмя.Добавить("РегистрСведений.ФИОФизическихЛиц");         
	
	//...
	
	ИсточникМетаданныеПолноеИмя = Источник.Метаданные().ПолноеИмя(); 
	Если сзИсточникМетаданныеИмя.НайтиПоЗначению(ИсточникМетаданныеПолноеИмя) <> Неопределено Тогда 
		//Если ИсточникМетаданныеПолноеИмя = "Справочник.ФизическиеЛица" Тогда  // Пример
		//	Если Источник.НеВыгружать Тогда
		//		Возврат Истина;
		//	КонецЕсли;
		//КонецЕсли;
		
		Возврат Истина;
		
	КонецЕсли;	
	
	Возврат Ложь;
	
КонецФункции
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот