Имя: Пароль:
1C
1С v8
ПРО и узел обмена
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) ну с альтернативами понятно, я думал может есть стандартная функция какая-нибудь по получению текущего узла, раз нету, то буду обдумывать альтернативы.
Спасибо