Управление регистрацией объектов для обмена.

1. timothy_ 2 07.12.18 11:52 Сейчас в теме
Доброго дня.
Вопрос может и простой, но не нашел ответа в поисковиках. Кто знает, прошу помочь.

Есть БП 3.0 Хочу выгружать Документ со статусом "Выгрузить". Правила регистрации сделал, выгружается. Но есть нюанс. Если Документ со статусом выгрузить провели, то он попал в зарегистрированные объекты для обмена, а потом задача:
1. меняю статус на "не выгружать"
Как его удалить из уже зарегистрированных на выгрузку объектов?

Например человек сделал что-то потом другой проверил и решил не выгружать, откатил статус, а в зарегистрированных он уже числится. Как снять оттуда?
По теме из базы знаний
Найденные решения
7. timothy_ 2 09.12.18 15:12 Сейчас в теме
Решил так: в обработчике событий правил регистрации документа "перед обработкой" прописал:

Если Объект.СтатусВыгрузкиВУТ <> Перечисления.СтатусВыгрузкиВУТ.ОтправитьВУТ Тогда
Отказ = Истина;
КонецЕсли;
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. davealone 165 07.12.18 12:02 Сейчас в теме
ПланыОбмена.УдалитьРегистрациюИзменений(<Узлы>, <Данные>)

Получить можно из таблицы изменений - в конструкторе запросов над деревом метаданных есть кнопка "Отображать таблицы изменений" - проверяете есть ли зарегистрированные изменения по документу скорее всего с условием на узел
ТИПЗНАЧЕНИЯ(ДокументИзменения.Узел) = ТИП(ПланОбмена.ВашПланОбмена)
3. timothy_ 2 07.12.18 12:46 Сейчас в теме
(2) Это получается мне делать нужно поиск и удаление из регистрации в самом документе, а не в правилах регистрации?
4. timothy_ 2 07.12.18 20:28 Сейчас в теме
Продвинулся.
Прочитал изменения и удалил:
Процедура ПриЗаписи()
ЕслиСтатусВыгрузкиВУТ <> Перечисления.СтатусВыгрузкиВУТ.ОтправитьВУТ Тогда
		ЗапросИзменений = Новый Запрос;
		ЗапросИзменений.Текст = 
		"ВЫБРАТЬ
		 |	КоммерческоеПредложениеИзменения.Узел КАК Узел,
		 |	КоммерческоеПредложениеИзменения.НомерСообщения КАК НомерСообщения,
		 |	КоммерческоеПредложениеИзменения.Ссылка КАК Ссылка
		 |ИЗ
		 |	Документ.КоммерческоеПредложение.Изменения КАК КоммерческоеПредложениеИзменения
		 |ГДЕ
		 |	КоммерческоеПредложениеИзменения.Ссылка = &Ссылка" ;
		ЗапросИзменений.УстановитьПараметр("Ссылка",ЭтотОбъект.Ссылка);
		Результат = ЗапросИзменений.Выполнить().Выбрать();
		Пока Результат.Следующий() Цикл
			
ПланыОбмена.УдалитьРегистрациюИзменений(Результат.Узел,Результат.Ссылка); 			

		конецЦикла;
	КонецЕсли;
Показать


Удаляется, но потом опять появляется запись о регистрации.
Есть ощущение, что регистрация выполняется после проведения и записи. Где копать?
5. Xershi 1484 07.12.18 21:28 Сейчас в теме
Смотри подписки на на события.
6. timothy_ 2 07.12.18 23:53 Сейчас в теме
Странно, что когда отработает
ПланыОбмена.УдалитьРегистрациюИзменений(Результат.Узел,Результат.Ссылка);

То документ продолжает числиться в списке на выгрузку и если сделать синхронизацию, то в базе приемнике он помечается на удаление. Это как так?
7. timothy_ 2 09.12.18 15:12 Сейчас в теме
Решил так: в обработчике событий правил регистрации документа "перед обработкой" прописал:

Если Объект.СтатусВыгрузкиВУТ <> Перечисления.СтатусВыгрузкиВУТ.ОтправитьВУТ Тогда
Отказ = Истина;
КонецЕсли;
Оставьте свое сообщение

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