Проведение по партиям и подписка на событие

1. droplet 81 15.01.16 13:15 Сейчас в теме
Прошу помощи сообщества
В подписке на событие при проведении документа правлю регистры партий и БУ.
Когда запускается обработка Проведение по партиям эта подписка не срабатывает.
Для проверки попробовала сделать подписку на событие ПриЗаписи для регистра Партий, но эта подписка тоже почему то не отрабатывает.
Как поправить эти регистры при проведении по партиям не внося изменения в стандартный код конфигурации?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. CaptainMorgan 15.01.16 13:56 Сейчас в теме
(1) Вы пишите "Когда запускается обработка Проведение по партиям эта подписка не срабатывает."

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

Ну давайте погадаем.
1-е предположение.
У вас несколько подписок и в одной из них написано
Отказ = Истина;


2-е предположение.
Обработка проведения использует код
ОбменДанными.Загрузка = Истина;

А алгоритм подписки согласно этого формирует Отказ

Можно ещё чего нибудь придумать.
Но лучше глянуть на код.
3. droplet 81 15.01.16 14:22 Сейчас в теме
Обработка проведение по партиям не перепроводит документы , а пишет непосредственно в регистры партий, это я уже выяснила, поэтому моя подписка на проведение документа не сработает.
Я создала новую подписку на запись в регистр накопления партий и для начала решила проверить в отладчике - попаду ли я в эту процедуру при запуске обработки проведения по партиям. Т.е. код пока не прописывала, а поставила просто точку останова.
У модуля, в котором процедура сидит, есть галки На сервере и На клиенте.
В настройке обработки Проведение по партиям есть возможность выполнения как на сервере так и на клиенте
В обоих случаях я не попадаю в эту процедуру!
4. droplet 81 15.01.16 15:51 Сейчас в теме
Jказывается даже если в обработке проведения по партиям снять галку выполнять на сервере, он все равно пишет эти наборы записей на сервере, а не на клиенте, а у меня просто отладка на сервере не включена, и поэтому в отладчике я попадаю в эту процедуру только если интерактивно провожу документ сама.
Вот код процедуры подписки на событие ПриЗаписи набора записей Регистра партий
Процедура ПриЗаписиНабора(Источник, Отказ, Замещение) Экспорт
ДокументПартии = Источник.Отбор.Регистратор.Значение;
НаименованиеДокумента = ДокументПартии.Метаданные().ПолноеИмя();
ИмяРегистра = Источник.Метаданные().ПолноеИмя();
	
Если  НаименованиеДокумента = "Документ.ПоступлениеТоваровИзПереработки" Тогда
	МойКонтрагент= омЗначенияПредопределенныхЭлементов.ПолучитьЗначениеПредопределенногоЭлемента("МойКонтрагент");
	ДоговорСубподрядчика = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("123",,,МойКонтрагент);
	Если ДокументПартии.ДоговорКонтрагента = ДоговорСубподрядчика Тогда
	       //для всех регистров партий обнуляем склад
		Для каждого ЗаписьНабора из Источник Цикл
		      ЗаписьНабора.Склад	= Справочники.Склады.ПустаяСсылка();
		КонецЦикла;
	КонецЕсли;


КонецЕсли;

КонецПроцедуры
Показать


Процедура отрабатывает, а на выходе склад не очистился
5. ekaruk 5003 15.01.16 16:09 Сейчас в теме
(4) droplet, А почему "ПриЗаписи"
Насколько я помню, этот обработчик вызывается, когда записи уже записаны в базу.
То, что вы меняете данные временного объекта, никак не отражается на записанной информации.
6. droplet 81 15.01.16 16:43 Сейчас в теме
Спасибо! Поменяла событие на ПередЗаписью и все ОК
Оставьте свое сообщение

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