|
v7: Как пробежаться по форме списка справочника ПриОткрытии() | ☑ | ||
---|---|---|---|---|
0
Absurdus
17.04.17
✎
12:55
|
Открываю справочник цены определенной номенклатуры. ПриОткрытии мне надо записать реквизит Показать, чтобы потом УстановитьОтбор("Показать",1);
А вот как ПриОткрытии() пробежаться по форме списка не знаю. Изначально прописать какой-нибудь обработкой этот реквизит - не вариант. Т.к. какие цены показать, а какие скрыть может измениться в любой момент |
|||
1
Волшебник
модератор
17.04.17
✎
12:56
|
Чушь какая-то
|
|||
2
Смотрящий
17.04.17
✎
12:57
|
(0) Тебе динамически надо показывать цены ?
|
|||
3
Absurdus
17.04.17
✎
12:58
|
Мне надо некоторым пользователям скрыть некоторые виды цен в справочнике цен
|
|||
4
Злопчинский
17.04.17
✎
12:58
|
(0) пробегаться надо не по форме списка
А по выборке справочника Ибо форма отображает содержимое справочника |
|||
5
Смотрящий
17.04.17
✎
12:59
|
ИспользоватьСписокЭлементов(<?>);
Синтаксис: ИспользоватьСписокЭлементов(<СписокЗначений>) Назначение: Реализует фильтрацию элементов справочника, используя нединамический фильтр. Параметры: <СписокЗначений> - необязательный параметр. Значение типа - ''СписокЗначений'' - должен представлять собой список элементов справочника, выбранных для просмотра. Если это значение пустое, то фильтр отключается. Замечание: Метод доступен только в контексте Модуля формы списка справочника и относится ко всему текущему справочнику. |
|||
6
Absurdus
17.04.17
✎
13:00
|
В форме списка как по выборке пробежаться? Владелец = null
|
|||
7
HawkEye
17.04.17
✎
13:00
|
(0) ты полностью оправдал свой ник...
|
|||
8
Злопчинский
17.04.17
✎
13:01
|
(3) не получится
Разные пользователи могут смотреть одновременно одно и то же содержимое Поэтому придётся писать просмотр списка с нужным содержимым на своём так сказать движке - например отображать справочник с помощью тз |
|||
9
Смотрящий
17.04.17
✎
13:01
|
Спр = СоздатьОбъект("Справочник." + Вид());
Спр.ИспользоватьВладельца(ИспользоватьВладельца()); Спр.ВыбратьЭлементы(); |
|||
10
Смотрящий
17.04.17
✎
13:01
|
Справочник должен быть спозиционирован по владельцу, либо назначай его принудительно
|
|||
11
skafandr
17.04.17
✎
13:01
|
(6)При чем тут форма списка? Пробегаешь по элементам справочника цена и прописываешь записываешь с реквизитом а потом отбор в списке
|
|||
12
Злопчинский
17.04.17
✎
13:02
|
(6) смотри например (5)
Про владельца херня какаято |
|||
13
skafandr
17.04.17
✎
13:02
|
подчиненному к товару естественно
|
|||
14
Злопчинский
17.04.17
✎
13:02
|
(11) не взлетит, смотрят один справочник два пользователя одновременно с разными правами
|
|||
15
Chameleon1980
17.04.17
✎
13:02
|
(9) вроде, выбрть элементы нужным параметром типа без учета иерархии чтоли.
|
|||
16
HawkEye
17.04.17
✎
13:02
|
(11) а что будет если одну цену надо первому пользователю показать, а второму скрыть?
|
|||
17
Злопчинский
17.04.17
✎
13:04
|
Если база скальная то можно прикрутить патч ромикса, который позволяет модифицировать запросы, которые тянут данные из базы на отображение списков
|
|||
18
Смотрящий
17.04.17
✎
13:05
|
(15) Пусть сам посмотрит СП, я дверь показал - пройти туда он только сам сможет
|
|||
19
Absurdus
17.04.17
✎
13:06
|
(9) О! Так работает, спасибо.
|
|||
20
Злопчинский
17.04.17
✎
13:07
|
(0) нормально ный вариант можно сделать как было в тис 8.7
Там цены товара отображались в тз на форме номенклатуры Для автора это имхо оптимальный вариант или как в (5). А чтобы было красиво - посмотретьткак сделана форма обработки просмотра остатков Я бы делал на тз Вариант с использовать список элементов противоречит моему чувству прекрасного |
|||
21
Злопчинский
17.04.17
✎
13:09
|
(19) другой юзер в это время будет порождать коллизии. И если второй юзверь имеет более широкие права то после открытия им просмотра цен - первый юзверь увидит не предназначенную для него инфу
|
|||
22
skafandr
17.04.17
✎
13:09
|
(14) Конечно,был неправ .... удивительно непонятная формулировка задачи
Тогда отбирать список по своей логике и использовать ИспользоватьСписокЭлементов() |
|||
23
Absurdus
17.04.17
✎
13:21
|
(21) Не. Никаких колллизий
|
|||
24
Злопчинский
17.04.17
✎
13:27
|
(23) обоснуй. Если писать реквизит в справочник - то он не на одного, а на всех
|
|||
25
Absurdus
17.04.17
✎
13:33
|
Если НазваниеНабораПрав() = "Филиал" Тогда
Н = СоздатьОбъект("Справочник.Номенклатура"); Ц = СоздатьОбъект("Справочник.Цены"); Н.НайтиЭлемент(ИспользоватьВладельца()); Ц.ИспользоватьВладельца(Н.ТекущийЭлемент()); Ц.ВыбратьЭлементы(); Пока Ц.ПолучитьЭлемент() = 1 Цикл Если Ц.ТипЦен.ДоступноУве = 1 Тогда Если Ц.ПоказатьУве = 0 Тогда Ц.ПоказатьУве = 1; Ц.Записать(); КонецЕсли; иначе Если Ц.ПоказатьУве = 1 Тогда Ц.ПоказатьУве = 0; Ц.Записать(); КонецЕсли; КонецЕсли; КонецЦикла; УстановитьОтбор("ПоказатьУве",1); Форма.Процент.Видимость(0); КонецЕсли; Открыл цены у одной и той же номенклатуры одновременно под пользователем с правами Филиал и под обычными правами. У филиала показываются три типа цен, которые и надо показать. И обычного - все цены |
|||
26
Chameleon1980
17.04.17
✎
13:39
|
что за конструкция:
Н.НайтиЭлемент(ИспользоватьВладельца()); |
|||
27
Absurdus
17.04.17
✎
13:42
|
(26) Сам в шоке! Но работает
|
|||
28
HawkEye
17.04.17
✎
13:43
|
(26) это вместо ВыбратьЭлементы(0)... )))))
|
|||
29
HawkEye
17.04.17
✎
13:45
|
(27) если ты перебираешь ВСЕ элементы, то проще использовать ИспользоватьСписокЭлементов()...
если конечно нет задачи специально написать корявый и тормозящий код... |
|||
30
HawkEye
17.04.17
✎
13:46
|
(25) если ты показываешь цены ОДНОЙ номенклатуры, зачем цикл по ВСЕМ элементам?
|
|||
31
HawkEye
17.04.17
✎
13:48
|
+30...
аааааа у тебя там Н.НайтиЭлемент(ИспользоватьВладельца())... ну хоть так... |
|||
32
Absurdus
17.04.17
✎
13:51
|
Да всё нормуль пашет и совершенно не тормозит. Меня устраивает. Спасибо еще раз умным людям.
|
|||
33
Смотрящий
17.04.17
✎
14:23
|
(25) Чет намолотил ты лишнего
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |