Имя: Пароль:
   
1C
1С v8
Отборы на форме
0 pavlo
 
28.11.17
07:48
Подскажите есть ли какой универсальный способ решения такой задачи:
В документе есть реквизит Клиент составного типа (Организация, Контрагенты) и Договор (справочники.Договоры) у договоров может быть ВладелецДоговора (реквизит, не подчиненный справочник это) Как один так и другой тип справочника Клиента.

Как то нужно при подборе нужно отфильтровать только его договора.

Конечно можно делать процедуру НачалоВыбора при подборе фильтр врубается, еще Автоподбор чтобы руками ввести можно было только по нужному владельцу, но это не спасает от просто вставить из буфера в итоге еще и у реквизита Договор занулять владельца в параметрах выбора, иначе просто вставить можно.

Можно попробовать при открытии формы и изменении клиента, что то менять в элементе договор, но вопрос что?

Так вот а проще как это это в одном месте решить можно, чтобы фильтровала как нужно во всех вариантах с учетом владельца?

Тоесть вопрос заключается в том, как каширно это делать? :)
1 pavlo
 
28.11.17
07:49
Управляемые формы
2 asady
 
28.11.17
07:53
(0) это в типовой так? что-то не помню...
3 pavlo
 
28.11.17
07:53
(2) нет не типовая
4 nordbox
 
28.11.17
07:54
и и в чем у тебя проблема?
5 wondkind
 
28.11.17
07:59
(4) проблема с умением описывать ситуации и вопросы.
6 pavlo
 
28.11.17
08:17
(5) описал, куда подробне уже?
написал проблема в том, если ли более верный вариант наложить отбор так, чтобы отбор срабатывал и на ввод по первым символам и по провалюиваю на выбор спарвочника и не давала при вставке из буфера выбрать тот элемент, который не соответствует отбору?

Как делаю описал, это работает, но выглядит не очень и много добавлять во все документы. Вот и хотел узнать может не знаю чего и есть более адекватный вариант?
7 FIXXXL
 
28.11.17
08:21
8 pavlo
 
28.11.17
08:28
(7) очищать то мне зачем?
9 Denis_CFO
 
28.11.17
08:31
(8) Главное не в очистке. Весь смысл в связи параметров выбора. Вот туда и смотрите.
10 FIXXXL
 
28.11.17
08:33
(8) ты там только про очищать прочитал?
11 pavlo
 
28.11.17
08:37
(9) так связь то не получается настроить, если в обработчиках событий элемента конечно не заполнять его (как и делаю).
У реквизита объекта есть "Связи параметров выбора" и "Параметры выбора" - если речь про них то никак не удается настроить эту свзяь :(

Связи - вообще там можно сделать типа выбрал Клиента, очистился Договор.
В параметрах выбора - можно выбрать реквизит договора ВладелецДоговора, но тип выбрать не могу так как Клиент составной тип. Да и как заставить проставлять именно из поля Клиент (не программно) не понятно :(
12 asady
 
28.11.17
08:40
(0) моё личное имхо - в 1С составные реквизиты нужно использовать очень осторожно.
В данном случае я так понимаю у вас есть "чужие" контрагенты и "свои контрагенты" и вы хотите использовать одни и теже документы для учета движений и взиморасчетов?
13 pavlo
 
28.11.17
08:40
(10) да, и еще про связи подчиненных (которые не вариант, справочник не подчинен) и про писать свой запрос по отбору.
14 pavlo
 
28.11.17
08:44
(12) приблизительно так и это уже давно используется успешно и нормально. Тут просто умники стали договора ставить не те подбором, а могут и из буфера вставить и в итоге проводки делаются не по тем договорам.
База большая и уже так сложилось, так что разделить на 2 документа не представляется возможным, да и не дадут - всех так устраивает - в каком то смысле это правильнее, чем дупить документы. Суть документа одна, просто мягко говоря в роли клиента выступают или наши организации или левые клиенты.
Завод в контрагентах аналогов наших организаций там тоже не вариант, учет так построен. Но это уже не суть вопроса :)
15 FIXXXL
 
28.11.17
08:45
(14) тебе по сути только проверка от хитропопопых нужна?
проверяй соответствие реквизитов ПередЗаписью
16 pavlo
 
28.11.17
08:52
(15) да от них самых, ну так тоже можно согласен, но лучше бы и не давала ничего подобного выбирать, чем потом только орала.
Тем более что есть ньанс, если документ был загружен из какого либо источника (есть обмены) то пусть будет как есть, иначе ничего не проведется. Тут задача только на ручное трогание.
При обмене варианта, что такое случится почти нет, но возможно и если документ не проведется (хотя он по сути тоже не совсем верный) мне мозг съедят. :)
Задача звуичт ТОЛЬКО при РУЧНОМ изменении ;)
17 pavlo
 
28.11.17
08:53
(15) ааа ПередЗаписью это же событие формы, а не объекта. Ну можно, согласен. Но как то тоже жестоко, хотелось бы чтобы и не могли выбрать и не видели то, чего не положено относительно владельца.
18 Borteg
 
28.11.17
08:58
(0)         
        МассивПараметров = Новый Массив;
        
        НовыйПараметр = Новый ПараметрВыбора("Отбор.Ссылка" , СписокКонтрагентов);
        МассивПараметров.Добавить(НовыйПараметр);
        
        Элементы.Договора = Новый ФиксированныйМассив(МассивПараметров);
19 Borteg
 
28.11.17
09:02
(18) Вешаешь на ПриОткрытии и на ПриИзменений контрагента, СписокКонтрагентов для тебя это будет список договоров, получать его можно запросом.
20 Borteg
 
28.11.17
09:02
(19) ПриОткрытии Формы
21 FIXXXL
 
28.11.17
09:19
22 pavlo
 
28.11.17
09:22
ну я так и написал, что и так можно, даже правильнее чем через событие НачалоВыбора.
23 Borteg
 
28.11.17
09:23
(21) что это?
24 pavlo
 
28.11.17
09:23
(19) ну я так и написал, что и так можно, даже правильнее чем через событие НачалоВыбора.
Но думал может есть еще правильнее вариант :) только на настройках формы к примеру
25 Borteg
 
28.11.17
09:24
(24) это как по мне лучший способ, у меня огромное количество различных ограничений настроено через такие выборы, все работает несколько лет уже.
26 Borteg
 
28.11.17
09:26
(24) причем через rls это безбожно тормозило, так как условия сложные были по нескольким видам, в итоге рлс работает на одно измерение а отборы по подразделениям например установлены так и все летает.
27 FIXXXL
 
28.11.17
09:31
(23) просто ссылка в тему
28 Borteg
 
28.11.17
09:32
(27) а)похоже) а то я не дочитал там ветку)
29 pavlo
 
28.11.17
09:57
(26) не ну я для того тут и написал, чтобы не столько решение получить, сколько узнать есть ли что то лучше того что я сделал или того что ты предложил (так как его тоже думал).

Если вариантов нет (rls реально будет тормозить и условия сильно разные в разных документах будут) то получается предложенный тобою вариант и есть лучший.

Я просто думал может есть более простая возможность на УФ все это связать, возможно без написания кода даже :)
Мало ли чего еще я не знаю, век живи и век учись.
30 aleks_default
 
28.11.17
10:24
(29)Ну так ты связи параметров выбора пробовал? Или чукча не читатель?
31 pavlo
 
28.11.17
11:53
(30) я же писал, что не могу там выбрать ничего.
в связях у договора можно выбрать только клиента и параметр не изменять или очищать.
В итоге как то ничего не происходит с виду.
32 FIXXXL
 
28.11.17
12:42
(31) с настроенной связью и "очищать", если вставишь "кривой" договор, он останется в поле ввода?
33 pavlo
 
28.11.17
14:35
(32) ну очистка при выборке клиента работает при таком изменении.
А отбор в форме все же в при открытии наложить на элемент Договор?
34 drcrasher
 
28.11.17
14:39
(0) ОбработкаПолученияДанныхВыбора() не поможет?
35 pavlo
 
29.11.17
12:12
(34) это же в списке документов, а не в документе на сколько я знаю.