![]() |
|
Помогите по настройке РИБ с фильтрами. | ☑ | ||
---|---|---|---|---|
0
Повелитель
24.11.15
✎
11:43
|
Управление торговым предприятием для Казахстана, редакция (2.0.7.5).
Задача: Обмен центральной базы и торговой точки, всеми документам, но чтобы документы в торговое точке видели только по своему подразделению, своему складу, своей кассе. База в торговое точке файловая. Пользователей 3 человека. Решение: 1. Создали новый план обмена "Филиал". 2. Для документов и регистров регистрацию поставили равной "Запретить". 3. Для документов создали подписку на событие "ПриЗаписи". Для дочерней базы регистрируем все документы, для центральной только те которые соответствуют заданным условиям. 4. Для документов создали подписку на событие "ПередУдалением". Тут регистрируем все документы без отборов. Тут все отрабатывает хорошо. 5. Для регистров создали подписку "ПриЗаписи". Процедура ФилиалПриЗаписиРегистра(Источник, Отказ, Замещение,ОтменаПроведения=Ложь) Экспорт
В типовой конфигурации в документах, на закладке "Движения", удаление движений = "Не удалять автоматически". При проведении документов вызывается процедура: УдалитьДвиженияРегистратора(ЭтотОбъект, Отказ, РучнаяКорректировка);
При отмене проведения тоже вызывается УдалитьДвиженияРегистратора(ЭтотОбъект, Отказ, РучнаяКорректировка);
Вот тут возникли проблемы: 1. При проведении документа срабатывала подписка для регистров "ПриЗаписи". А вот при отмене проведения или пометке удаления документа не срабатывала, так как нет такой подписки. В Итоге получили, в торговое точке документ не проведен, а движения у документа остались. Решили эту проблему так. В процедуру УдалитьДвиженияРегистратора добавили вызов процедуры ФилиалПриЗаписиРегистра(Набор, Отказ, Ложь,Истина).
Теперь стало еще хуже. При проведении документы которые не относиться к торговой точке, вызывается функция УдалитьДвиженияРегистратора, которая регистрирует пустые наборы записей для этого документа. А далее идет проведение документа, там конечно по фильтру набор записей не проходит к регистрации. Ну так как регистрация уже есть, то все данные по регистру уходят. И в торговой точке имеем записи регистра, без регистратора. Подскажите решение? Вот все процедуры которые используются:
|
|||
1
aleks_default
24.11.15
✎
12:05
|
"1. При проведении документа срабатывала подписка для регистров "ПриЗаписи". А вот при отмене проведения или пометке удаления документа не срабатывала, так как нет такой подписки." - причем тут какая-то подписка на отмену проведения, здесь должна отрабатывать подписка ПриЗаписи регистра. Ведь при этом должно происходить изменение набора записей регистра. Вот разберитесь почему она не отрабатывала. Короче хрень у вас написана в процедуре УдалитьДвиженияРегистратора()
|
|||
2
Повелитель
24.11.15
✎
12:09
|
(1) При отмене проведения, подписка для регистров "ПриЗаписи" не срабатывает.
А разве должна? |
|||
3
aleks_default
24.11.15
✎
12:12
|
Сам подумай. Если при отмене проведения удаляются движения документа, а движения документа это у нас что? Это у нас - набор записей регистра. А на запись набора записей регистра у нас стоит эта подписка. Так почему она не отрабатывает? видимо мотому что движения документа не удаляются.
|
|||
4
Повелитель
24.11.15
✎
12:16
|
(3) Понял.
Проверил, да действительно "ПриЗаписи" вызывается. До этого тестировал на документе у которого действительно двжижения не удалялись. Спасибо, сейчас будут тестировать. Пока не понял поможет мне это или нет. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |