![]() |
|
ПРО и узел обмена | ☑ | ||
---|---|---|---|---|
0
orensymrak
24.01.22
✎
14:40
|
Всем привет,
1С:Предприятие 8.3 (8.3.19.1351) Розница 8. Магазин одежды и обуви, редакция 2.3 (2.3.8.22) Имеется: Главный узел и 20+ РИБов Проблема с документами установки цен: не для каждого РИБа нужны те или иные документы установки цен + разное ценообразование. Сейчас на все РИБы регистрируются все документы установки цен - нам так не надо)) Логику изменения правил регистрации объектов придумал, тормозит только установка параметра, не знаток правил обмена, учусь, каким образом определить какой узел в данный момент производит регистрацию объекта в ПРО? |
|||
1
orensymrak
24.01.22
✎
14:50
|
(0) Пробовал "УзелОбмена" как описано в информации по обработчикам - переменная не определена.
Отбор пытаюсь сделать в процедуре "Перед обработкой" |
|||
2
Strogg
24.01.22
✎
14:54
|
(1) Попробуй в обработчике "ПослеОбработки".
Ну и там есть предопределенная переменная Получатели типа Массив. Туда и запихиваешь всех необходимых получателей |
|||
3
orensymrak
24.01.22
✎
14:59
|
(2) Их надо еще запихивать? или там уже имеются значения?
|
|||
4
Strogg
24.01.22
✎
15:02
|
(3) Наоброт, там все получатели. Либо удаляешь ненужных получателей, либо переопределяешь массив и запихиваешь нужных. Выбирать тебе, Нео.
|
|||
5
orensymrak
24.01.22
✎
16:04
|
(4) Да это конечно получилось достать, но это не то что нужно т.к. в ПРО обрабатывается данный массив узлов и для каждого узла проходит запрос на определения нужна ли отмена регистрации документа. А так получается что при обработке каждого узла из получателей срабатывает определенная логика и Отказ = Истина и все на определенный узел регистрация снялась.
Мне нужно определить именно тот узел РИБа по которому идет регистрация объекта. Логика примитивная взять магазин на узле РИБа, если нет остатка товара взаимосвязанного с документом установки цен то Отказ = Истина. В консоли все отрабатывает корректно, а вот в ПРО сейчас при массиве Получатели такая логика не срабатывает. |
|||
6
orensymrak
24.01.22
✎
16:27
|
(5) может не правильно объясняю)
20 РИБов: 1 РИБ: Магазин №1, 2 РИБ: Магазин №2 и т.д. Множество номенклатуры, которой может и не быть вовсе на каком то из магазинов, но туда документ прилетит т.к. документ не ограничивается по магазинно. Соответственно идея такая, что взяв правила регистрации данных допустим РИБ магазина №4, сравнилась (внутренним соединением) ТЧ "Товары" документа с остатками(либо оборотами) магазина №4 и если остатка не найдено по всему документу то отказываем в регистрации |
|||
7
Strogg
24.01.22
✎
16:41
|
(6) для этого тебе надо где-то завести соответствие магазина и РИБ. Либо допсвойством склада, либо еще как-то. Пишешь функцию, которая входным параметром имеет узел, а выходным - ложь, или истину. Перебираешь получателей, к примеру в цикле. И если твоя функция возвратила ложь, то добавляешь исследуемого получателя в массив вычитания. После обхода всего массива получателей - сокращаешь его на массив вычитания.
|
|||
8
orensymrak
24.01.22
✎
17:35
|
(7) ну с альтернативами понятно, я думал может есть стандартная функция какая-нибудь по получению текущего узла, раз нету, то буду обдумывать альтернативы.
Спасибо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |