Вход | Регистрация


1С:Предприятие ::

Метки: 

Отборы на форме

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

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

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

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

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

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

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

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

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

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



Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует