|
Правила регистрации по сочетанию реквизитов |
☑ |
0
runoff_runoff
03.01.17
✎
08:19
|
Дано:
1. Нужно регистрировать документы Реализация товаров и услуг по сочетанию реквизитов Организация/Контрагент, т.е. пусть есть
организации = {А, Б}
контрагенты = {К, Л}
допустимые сочетания для регистрации = {А/К, Б/Л}
таким образом сочетания А/Л или Б/К запрещены, т.е. документ с "неправильными" сочетаниями не должен регистрироваться !!!
2. В связи с вышеизложенным создан план обмена с табличной частью, содержащей два реквизита: Организация и Контрагент, в таблицу занесены "правильные" сочетания..
3. Есть конфигурация "Конвертация данных 2.1", в которой нужно создать правило регистрации реализаций товаров и услуг..
ОТСЮДА вопрос:
можно ли обойтись без обработчиков событий, а только с помощью (штатного) дерева отбора в Правиле регистрации объекта?..
а если я пишу две строчки в отборе:
Организация Равно [Состав].Организация
Контрагент Равно [Состав].Контрагент
то в регистрацию попадают "неправильные" сочетания..
|
|
1
nordbox
03.01.17
✎
08:27
|
Ради интереса, в чем такая необходимость?
Для начала я бы сделал в одну строчку,
из кучи документов РТУ регистрацию только А/Б и посмотрел что будет,а потом после этого пляски бы устраивал.
|
|
2
runoff_runoff
03.01.17
✎
08:40
|
необходимость выгружать реализации из одной базы в поступления в другой.. поэтому такой ограниченный набор сочетаний организаций и контрагентов..
одна строчка "вырождена".. потому что "вхождение" сводится к "равенству"..
|
|
3
nordbox
03.01.17
✎
08:48
|
(2) Ну так она у тебя работает?
|
|
4
runoff_runoff
03.01.17
✎
08:53
|
(3) так, конечно, работает ;-)
|
|
5
nordbox
03.01.17
✎
09:08
|
Тогда для начала сделай тупой перебор табчасти.
Берешь док, проверил соответствие в табчасти и вперед...
|
|
6
runoff_runoff
03.01.17
✎
09:18
|
сделал с помощью кода в обработчике ПРО "После обработки"..
СтруктураОтбора = Новый Структура("Организация, Контрагент");
ЗаполнитьЗначенияСвойств(СтруктураОтбора, Объект);
i = 0;
Пока i < Получатели.Количество() Цикл
Если Получатели[i].Состав.НайтиСтроки(СтруктураОтбора).Количество() = 0 Тогда
Получатели.Удалить(i);
Иначе
i = i + 1;
КонецЕсли;
КонецЦикла;
|
|
7
nordbox
03.01.17
✎
09:43
|
(6) Ну если работает, то удачи ))
С Новым годом! )))
|
|