Имя: Пароль:
1C
1С v8
множественность выбора в одном реквизите (кто тут гуру?)
,
0 grum01
 
15.10.15
09:47
Привет всем. Суть обыдена, но решения пока придумать не могу.
Есть справочники Контрагенты и Договоры. Отношение один ко многим (стандарт). В Договоре есть реквизит ОсновнойМенеджер (ссылка на справочник пользователей). Соответственно у разных договоров одного контрагента могут быть разные ОсновнойМенеджер. Т.е. у одного контрагента нескоголько ОсновныхМенеджеров.
Как в форме списка Контрагенты вывести этих менеджеров? А главное - как накладывать отборы на список Контрагентов? Т.е. вывести только тех, у которых есть договора с определенным менеджером?
Пока список менеджеров выводится строкой, но это накладывает ограничения на отборы.
1 Лефмихалыч
 
15.10.15
09:48
(0) назачем это делать?
2 фобка
 
15.10.15
09:49
Отбор по ссылке
3 Лефмихалыч
 
15.10.15
09:50
в (0) описан функционал отчета, а не формы списка. Сделаете это в форме списка, получите тормоза и жалобы.

если нужно беспечить, чтобы манагеры "чужих" контрагентов не видели, то это решается RLS-ом, а не отборами
4 aleks_default
 
15.10.15
09:52
Вообще-то по логике описанной в (0) "Основной менеджер" должен быть реквизитом Контрагента, а не Договора.
5 aleks_default
 
15.10.15
09:53
Т.е. получается, что менеджеры работают с определенными контрагентами, а не договорами.
6 Лефмихалыч
 
15.10.15
09:55
(5) что мешает одному поставщику продавать по одному договору штыковые лопаты, а по другому - ржаной хлеб? ЧТо мешает компании иметь двух разных манагеров по лопатам и ржаному хлебу?
7 grum01
 
15.10.15
09:59
(1) Зачем делать что? Вы сами ответили в (6)
8 grum01
 
15.10.15
10:01
(3) Насчет тормозов - нужно смотреть результат, а не предполагать его. А вдруг не будет?
Вопрос как сделать?
9 Лефмихалыч
 
15.10.15
10:01
(7) в (6) нет ответа, зачем эту куйню адовую воротить в форме списка контрагентов
10 Лефмихалыч
 
15.10.15
10:02
(8) я таких решений овер 9000 видел - какие уж тут в лес предположения?..
11 aleks_default
 
15.10.15
10:05
Он хочет чтобы у менеджера в форме списка Контрангентов отображались только те контрагенты, с которыми он уже работал, а остальные нет. Согласно этой логике - менеджер работает только с определенным кругом контрагентов, и не может выбрать другого контрагента физически.
12 grum01
 
15.10.15
10:06
(9) В принципе, банально ограничить список контрагентов. Не столько из проблем доступа, сколько просто для порядка и исключения ошибок выбора.
Например, есть два одинаковых контрагента, оба покупатели, полные тезки. Но с одним работает менеджер А по лопатам и менеджер Б по спичкам. А с другим работает менеджер С по ведрам.
Так вот этот менеджер С не должен видеть в списке первого контрагента, т.к. чревато неправильными бумагами и прочей лишней работой.
И другие моменты...
13 aleks_default
 
15.10.15
10:06
Или эта постановка задачи неверна.
14 eklmn
 
гуру
15.10.15
10:06
:) напоминает хотелки нашего комерса ))

(0) бредятина
15 Лефмихалыч
 
15.10.15
10:07
(11) значит это RLS-ом делается, а не унылым кодом в форме списка. И значит выводить основного менеджера в форму списка смысла нет - зачем манагеру по всем строчкам самого себя видеть везде?
16 grum01
 
15.10.15
10:07
(10) ну так дай ссылку на решение..
17 Лефмихалыч
 
15.10.15
10:08
(16) уже два раза дал, но ты их игнорируешь
18 grum01
 
15.10.15
10:08
(11) Бинго! У нас контрагенты поделены между менеджерами. А вернее не сами контрагенты, а договоры. И это принципиально.
19 aleks_default
 
15.10.15
10:09
(18) тогда см. (4)
20 eklmn
 
гуру
15.10.15
10:09
(18) ну если они настолько тупые/слепые/кривые , что не могут выбрать свое, то это звиздей
21 grum01
 
15.10.15
10:09
(14) если вы в чем-то не разбираетесь в силу ограниченности ваших знаний и опыта, то это не значит, что данные решения не приемлемы и не работают
22 Lama12
 
15.10.15
10:09
(10) Ох, как бы это заказчикам донести... достали уже.
23 Лефмихалыч
 
15.10.15
10:10
(22) планомерно и неумолимо медленно простыми словами. Как меленьким тупеньким детям.
24 grum01
 
15.10.15
10:10
(19) тогда перечитай (0). ты не правильно понял вопрос
25 aleks_default
 
15.10.15
10:11
(24) ты неправильно понял задачу
26 eklmn
 
гуру
15.10.15
10:12
(21) ага, манагеры тоже так говорят, только когда их просишь показать как это будет выглядеть, не могут
27 Лефмихалыч
 
15.10.15
10:12
(25) нет, основной менеджер не должен быть реквизитом контрагента. С этой стороны все правильно
28 Lama12
 
15.10.15
10:12
(23) Да есть такие, "пальцыгнуты"... вообще хотели ексель с кружочками. Им, видите ли, от прямоугольной сетки в глазах рябит. Ну это так... ворчание :)
29 grum01
 
15.10.15
10:13
(15) Возможно, это решит вопрос с подбором.
Но хотелось бы решить еще вопрос с отбором, чтобы другой (например, администратор) легко мог отобрать контрагентов по с договором по менеджеру. Без настроек и формирования отдельных отчетов.
30 eklmn
 
гуру
15.10.15
10:13
хотя (26) наверно для тебя тоже было слишком заумно
31 Лефмихалыч
 
15.10.15
10:14
(20) они просто люди. Обычные. Из мяса и костей. Работа у них - это ад кромешный, т.к. вся состоит в перелопачивании ворохов иппанутых экселей, внезапных писем в почте и телефонных звонков по двум и более телефонам. Они ошибатся потому, что не могут себе позволить сконцентрироваться на одной единственной задаче. Специфика такая
32 grum01
 
15.10.15
10:15
(25) Это не задача, это реальность. Все работает уже много лет.
Я хочу улучшить функционал.
33 grum01
 
15.10.15
10:15
(26) см. (32)
34 Лефмихалыч
 
15.10.15
10:16
(29) второй вопрос - это отчет, а не форма списка. Тем более, если это для административных задач. Вколачивать кол в продуктив, чтобы администратору раз в году было удобно что-то там... сам придумай этому название
35 Skylark
 
15.10.15
10:16
А контрагентов/договоров много?
Можно тупо при открытии формы списка фигачить запрос и отображать только нужных.
Или вообще радикально - открывать для выбора собственные формы.
36 Skylark
 
15.10.15
10:18
И вообще, чего набросились? "Это будет фигня". Фигни никогда не делали что ли?
37 grum01
 
15.10.15
10:18
(31) золотые слова практика!
38 grum01
 
15.10.15
10:20
(34) ну почему сразу кол?
конфа переписана/допилена уже столько, что ...
и это не раз в году, а постоянно разным людям.
39 grum01
 
15.10.15
10:22
(35) для подбора это как раз так и работает сейчас. со скоростью все нормально. Но нужен еще и отбор. (29)
40 Лефмихалыч
 
15.10.15
10:22
(38) про кол - это такие же слова практика, как и (31)
я это видел много  раз и делал неоднократно. Решение это задачи отборами в списке - самое кривое, какое можно придумать
41 Skylark
 
15.10.15
10:24
(39) Добавь свою кнопку "Наш отбор" в форму списка. По этой кнопке запрашивай вводные для отбора и фигачь такой же отбор как и в подборе. В чем проблема то?
42 grum01
 
15.10.15
10:27
(40) Ну вот опять. Видел. Делал.
Но, кроме RLS (которое у нас не используется совсем, а потому надо его пилить долго), где посмотреть на решение?
Может познакомишь с решением, хотя бы в образовательных целях. А там уж я как-нибудь сам возьму ответственность за "кривизну".
43 grum01
 
15.10.15
10:32
(41) В этом проблем нет. Просто я ведь не могу тут описать все процедуры, в которых был бы использован данный функционал, если его реализовать.
Есть механизмы a формах, которые основываются на ОсновномМенеджере договора, есть на ВидеДеятельности договора, есть на реквизитах  контрагента. Чаще всего они все переплетены.
Если бы можно было отбирать контрагентов напрямую, не приходилось бы плясать кругами в других местах.
44 Лефмихалыч
 
15.10.15
10:33
Да банально они этот твой ссаный отбор выиграют в рот вводом по строке в день внедрения!
Аргумент про пилить - вообще алес
45 Skylark
 
15.10.15
10:44
(43) Делай свою форму отбора. В платформе есть таже такой прикладной объект "Отбор". По своей кнопке открывай этот отбор - пусть там указывают основного менеджера, вид деятельности - все что надо. На основании этого своего отбора делаешь запрос по контрагентам и суешь его в качестве отбора в форму списка.
46 Skylark
 
15.10.15
10:45
(44) "Спили мушку" (с)
47 aleks_default
 
15.10.15
10:50
(45)И никто не задумался, для чего такой отбор нужен? Завели нового контрагента, с которым еще никто не работал. И никто из менеджеров этого контра не увидит.
48 grum01
 
15.10.15
10:57
(47) Процедуры у всех разные. И тут просто перековеркали мои слова. Я не говорил про момент "работы". Я говорил про реквизит ОсновнойМенеджер договора. А это означает, что договору НАЗНАЧАЮТ менеджера при вводе нового. От хотелок самих менеджеров это не зависит. Закрепили за тобой - работай и отвечай.
49 grum01
 
15.10.15
10:59
(45) ну, наверное, придется плясать туда.
Просто думал, есть более простые решения.
50 grum01
 
15.10.15
11:01
(44) Я ж сказал - у меня нет цели решать проблемы с доступом/безопасностью/конфиденциальностью.
Мне нужна просто функциональность.
51 Cyberhawk
 
15.10.15
11:06
RLS, другие варианты - мина замедленного действия (только уменьшение вероятности проявления проблемы)
52 Cyberhawk
 
15.10.15
11:07
Вспомнил еще про РИБ, но ради доступа менеджеров к контрагентам не видел, чтоб делали :)
53 aleks_default
 
15.10.15
11:13
Я себе плохо представляю где может в твоей системе понадобиться выбор контрагента без выбора договора. А если всегда есть выбор договора, то нахрен не нужен выбор контрагента - владельца можно всегда подставлять автоматом.
54 Cyberhawk
 
15.10.15
11:17
"А если всегда есть выбор договора, то нахрен не нужен выбор контрагента" // Ошибаешься. Как тогда выбрать договор из 100000 доступных элементов?
55 aleks_default
 
15.10.15
11:26
(54)При выборе договора можно установить отбор непосредственно по менеджеру(это реквизит договора), а контрагента выводить в отдельной колонке.
56 aleks_default
 
15.10.15
11:27
(55) и нахрена нужны такие танцы с бубном как в (0) я не понимаю.
57 Лефмихалыч
 
15.10.15
11:29
Эти танцы не ЗАЧЕМ, а ПОЧЕМУ. Потому, что заказчик пришел с готовым техническим решением, а не с проблемой.
58 grum01
 
15.10.15
11:42
(55) И? Вопрос то же, как (54)
59 aleks_default
 
15.10.15
12:08
(58) Ответ в (55), а то что ты хочешь - это все равно что "через рот ковырять задницу"(не мое, где-то на этом форуме услышал).
60 grum01
 
15.10.15
12:13
(56) (57) Почему вы все вдруг решили,что это танцы и сразу с бубном? Только лишь потому, что у вас не так, или вы не видели?
Система очень проста и гибка, работает уже много лет. По сравнению с типовым функционалом УТ (который и функционалом-то назвать нельзя в силу отсутствия выбора) имеет массу преимуществ для управления и разграничения.
Вопрос возник только лишь из соображения расширений удобства для пользователя и разработчика.
Легче и правильнее сделать один раз этот функционал и потом обращаться к нему напрямую, чем постоянно использовать связки менеджер-договор-владелец.
61 grum01
 
15.10.15
12:18
(59) ты так и не ответил на вопрос: Как тогда выбрать договор из 100000 доступных элементов?
За менеджером закреплено 150 контрагентов, у каждого контрагента от 1 до 120 договоров. Как ты предлагаешь выбирать договор сразу???
62 aleks_default
 
15.10.15
12:31
Не выбирать контрагента, а выбирать договор, и от него плясать.
63 Сияющий в темноте
 
15.10.15
12:41
Если уж очень хочется,то делайте отдельную таблицу,где будет связь контрагентов с менеджерами и показывпйте ещё для выбора
64 grum01
 
15.10.15
13:16
(62) Ты попугаем подрабатываешь что ли? Заладил одно и тоже. Ответь на дважды заданный тебе вопрос (54)(61), потом продолжим.
65 Лефмихалыч
 
15.10.15
13:36
(63) дык есть уже таблица-то - основная таблица справочника Договоры и связывает одно с другим.
66 aleks_default
 
15.10.15
14:11
Попугайничаешь ты, задавая один и тот же вопрос, на который я ответил еще в (55). Жаль, ты понять не можешь. Видимо не дано просто...
67 Сияющий в темноте
 
15.10.15
14:27
(65) если в договоре один менеджер,то вообще вопрос не очень понятно просто на форме выбора договора показываем данные контрагента и выбираем
проблема только в том что будет несколько записей контрагента если в нескольких договорах указан один и тот же менеджер
отдельная таблица позволь такие записи схлопнутб в одну
68 bolobol
 
15.10.15
14:56
Осторожно, псевдокод))

(0) "Как в форме списка Контрагенты вывести этих менеджеров?"

Запрос= "Выбрать различные Менеджер из договоры где владелец = &(ВыбраннаяСтрока.Ссылка)";

ТЧНаФорме.Загрузить(Запрос.Выполнить.Выгрузить());

(0) "А главное - как накладывать отборы на список Контрагентов? Т.е. вывести только тех, у которых есть договора с определенным менеджером?"

Запрос= "Выбрать различные Контрагент из Договоры где Менеджер = &Менеджер";
Элементы.СписокКонтрагентов.Отбор.Ссылка.Использовать= Да, ВидСравнения = ВСписке, Значение= Запрос.Выполнить.ВыгрузитьКолонку("Контрагент");

(0) "Пока список менеджеров выводится строкой, но это накладывает ограничения на отборы."

Тогда в запросе не "Менеджер = &Менеджер", а "Менеджер.Наименование = &СтрокаНаименованияМенеджера"
69 trad
 
15.10.15
15:03
(0) все не читал.
попробовать сменить парадигму, и менеджеру работать не со списком контрагентов, а с отобранным списком договоров в котором, кроме договора, владелец и его реквизиты
70 grum01
 
15.10.15
15:12
(66) Ну да, куда же мне ограниченному понять как из 1500 моих договоров быстро найти и выбрать нужный. Может, все-таки соблаговолишь спуститься и просвятишь убогого?
71 grum01
 
15.10.15
15:16
(67) ты предлагаешь вместо списка контрагентов открывать список договоров, свернутый по контрагенту? правильно понял мысль?
интересная мысль, конечно, но придется тогда выловить и заменить все вызовы справочника контрагентов...
72 grum01
 
15.10.15
15:26
(68) Получить менеджеров-то проблемы нет. Какой тип поля позволит вывести все эти данные в одну ячейку? И отбор делать не по строке, а по ссылке на пользователя
73 grum01
 
15.10.15
15:27
(69) чтобы все не читать - вот проблема твоего предложения (61)
74 bolobol
 
15.10.15
16:01
(72) "Какой тип поля позволит вывести все эти данные в одну ячейку?" - любой, поддерживающий вывод нескольких значений. Ка-ак? Нет такого??? Увы) В чём вопрос-то был?

(72) "И отбор делать не по строке, а по ссылке на пользователя" - что-то вы уже с (0) противоречите. Может, для начала, вам с (0) уточнить цель задачи?, несмотря на это, в (68) оба варианта описаны.
75 bolobol
 
15.10.15
16:02
(72) Или, может, у вас УФ и вы это скрываете?
76 Мимохожий Однако
 
15.10.15
16:44
(75)Забыто простое правило ТС: указывать конфигурацию и полностью формулировать задачу.
77 Гёдза
 
15.10.15
16:47
в утхе посмотри как отбор по сегментам делается
78 grum01
 
15.10.15
17:17
(74) не вижу никакого противоречия.
Да сейчас используется строка, но я не против ее сменить на другой вид. На строку накладывается только "содержит/ не содержит". А это не позволяет выбрать несколько значений (несколько менеджеров).

(75) нет, простые
79 grum01
 
15.10.15
17:22
(76) Задача сформулирована, на мой взгляд, конкретно.
Как конфигурация повлияет на ответ? В данном случае УТ10.3, платформа 8.3, простые формы.
80 grum01
 
15.10.15
17:22
(77) в... где?
81 aleks_default
 
15.10.15
17:23
(71) Мысль все-таки пробилась в голову ТС. Дыру, наверное, большую проделала...
82 тарам пам пам
 
15.10.15
17:25
Посмотри в ЗУП - там почти та же задача: в документе, например, начисление зарплаты указывается список сотрудников; в журнале документов по начислению зарплаты реализован отбор по сотруднику.

Отбор сделан через критерий отбора; для вывода в форму списка в документ добавлен спец реквизит "краткий состав документа".
83 bolobol
 
15.10.15
18:08
(82) Немного не то для задачи... В списке контрагентов нет информации о наличии договоров в принципе. Т.е. - и что отбирать по критерию - тоже не определить.
84 Гёдза
 
15.10.15
18:30
(80) УТэхе
85 FIXXXL
 
15.10.15
19:46
(83) если добавить реквизит СписокМанагеров у контра вполне взлетит
86 EvgeniuXP
 
15.10.15
23:14
RLS еще тормозней
87 EvgeniuXP
 
15.10.15
23:16
но зато круче :)
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn