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

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 164 10.01.25 14:39 Сейчас в теме
пишешь в событие ПередВыгрузкой что-то типа
Отказ = (СтрСравнить(Объект.МойРеквизит, "не выгружать") = 0);
5. Flipp 10.01.25 14:42 Сейчас в теме
(3) это в каком модуле в унф можно прописать?
Или вы про конвертацию?
7. Fox-trot 164 10.01.25 14:49 Сейчас в теме
(5) в правилах конвертации
8. Flipp 10.01.25 14:50 Сейчас в теме
(7) мне нужно без конвертации
10. Fox-trot 164 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ПередЗаписьюРегистра(Источник, Отказ, Замещение)
	Если допПропуститьРегистрациюОбъекта(Источник) Тогда
		Возврат;
	КонецЕсли;
	ПродолжитьВызов(Источник, Отказ, Замещение);
КонецПроцедуры

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

сзИсточникМетаданныеИмя = Новый СписокЗначений;
сзИсточникМетаданныеИмя.Добавить("Справочник.ФизическиеЛица");

сзИсточникМетаданныеИмя.Добавить("РегистрСведений.ГражданствоФизическихЛиц");
сзИсточникМетаданныеИмя.Добавить("РегистрСведений.ДокументыФизическихЛиц");
сзИсточникМетаданныеИмя.Добавить("РегистрСведений.ФИОФизическихЛиц");

//...

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

Возврат Истина;

КонецЕсли;

Возврат Ложь;

КонецФункции
Показать


Подскажи,пожалуйста
13. Flipp 20.03.25 12:28 Сейчас в теме
&Вместо("МеханизмРегистрацииОбъектовПередЗаписьюДокумента")
Процедура МеханизмРегистрацииОбъектовПередЗаписьюДокумента(ИмяПланаОбмена, Источник, Отказ, РежимЗаписи, РежимПроведения)
	
	Если ПропуститьРегистрациюОбъекта(Источник) Тогда
        Возврат;
    КонецЕсли;

	ПродолжитьВызов(ИмяПланаОбмена, Источник, Отказ, РежимЗаписи, РежимПроведения);
КонецПроцедуры


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

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