Прошу помощи сообщества
В подписке на событие при проведении документа правлю регистры партий и БУ.
Когда запускается обработка Проведение по партиям эта подписка не срабатывает.
Для проверки попробовала сделать подписку на событие ПриЗаписи для регистра Партий, но эта подписка тоже почему то не отрабатывает.
Как поправить эти регистры при проведении по партиям не внося изменения в стандартный код конфигурации?
В подписке на событие при проведении документа правлю регистры партий и БУ.
Когда запускается обработка Проведение по партиям эта подписка не срабатывает.
Для проверки попробовала сделать подписку на событие ПриЗаписи для регистра Партий, но эта подписка тоже почему то не отрабатывает.
Как поправить эти регистры при проведении по партиям не внося изменения в стандартный код конфигурации?
По теме из базы знаний
- Запрет проведения документа "Корректировка записей регистров"
- Проведение документа "Требование-накладная" в 1С: УПП РАУЗ
- Программный контроль границы последовательности партионного учета при проведении документов задним числом
- 1С:Специалист по платформе. Система подготовки к экзамену. Личное мнение (C)
- Алгоритмы с решениями для экзамена Специалист УТ 11.1
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Вы пишите "Когда запускается обработка Проведение по партиям эта подписка не срабатывает."
Срабатывать должно всё, если использовать механизм подписок правильно.
Не видя кода можно только погадать на кофейной гуще.
Ну давайте погадаем.
1-е предположение.
У вас несколько подписок и в одной из них написано
2-е предположение.
Обработка проведения использует код
А алгоритм подписки согласно этого формирует Отказ
Можно ещё чего нибудь придумать.
Но лучше глянуть на код.
Срабатывать должно всё, если использовать механизм подписок правильно.
Не видя кода можно только погадать на кофейной гуще.
Ну давайте погадаем.
1-е предположение.
У вас несколько подписок и в одной из них написано
Отказ = Истина;
2-е предположение.
Обработка проведения использует код
ОбменДанными.Загрузка = Истина;
А алгоритм подписки согласно этого формирует Отказ
Можно ещё чего нибудь придумать.
Но лучше глянуть на код.
Обработка проведение по партиям не перепроводит документы , а пишет непосредственно в регистры партий, это я уже выяснила, поэтому моя подписка на проведение документа не сработает.
Я создала новую подписку на запись в регистр накопления партий и для начала решила проверить в отладчике - попаду ли я в эту процедуру при запуске обработки проведения по партиям. Т.е. код пока не прописывала, а поставила просто точку останова.
У модуля, в котором процедура сидит, есть галки На сервере и На клиенте.
В настройке обработки Проведение по партиям есть возможность выполнения как на сервере так и на клиенте
В обоих случаях я не попадаю в эту процедуру!
Я создала новую подписку на запись в регистр накопления партий и для начала решила проверить в отладчике - попаду ли я в эту процедуру при запуске обработки проведения по партиям. Т.е. код пока не прописывала, а поставила просто точку останова.
У модуля, в котором процедура сидит, есть галки На сервере и На клиенте.
В настройке обработки Проведение по партиям есть возможность выполнения как на сервере так и на клиенте
В обоих случаях я не попадаю в эту процедуру!
Jказывается даже если в обработке проведения по партиям снять галку выполнять на сервере, он все равно пишет эти наборы записей на сервере, а не на клиенте, а у меня просто отладка на сервере не включена, и поэтому в отладчике я попадаю в эту процедуру только если интерактивно провожу документ сама.
Вот код процедуры подписки на событие ПриЗаписи набора записей Регистра партий
Процедура отрабатывает, а на выходе склад не очистился
Вот код процедуры подписки на событие ПриЗаписи набора записей Регистра партий
Процедура ПриЗаписиНабора(Источник, Отказ, Замещение) Экспорт
ДокументПартии = Источник.Отбор.Регистратор.Значение;
НаименованиеДокумента = ДокументПартии.Метаданные().ПолноеИмя();
ИмяРегистра = Источник.Метаданные().ПолноеИмя();
Если НаименованиеДокумента = "Документ.ПоступлениеТоваровИзПереработки" Тогда
МойКонтрагент= омЗначенияПредопределенныхЭлементов.ПолучитьЗначениеПредопределенногоЭлемента("МойКонтрагент");
ДоговорСубподрядчика = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("123",,,МойКонтрагент);
Если ДокументПартии.ДоговорКонтрагента = ДоговорСубподрядчика Тогда
//для всех регистров партий обнуляем склад
Для каждого ЗаписьНабора из Источник Цикл
ЗаписьНабора.Склад = Справочники.Склады.ПустаяСсылка();
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
ПоказатьПроцедура отрабатывает, а на выходе склад не очистился
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот