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


1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Как пробежаться по форме списка справочника ПриОткрытии()

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

Открыл цены у одной и той же номенклатуры одновременно под пользователем с правами Филиал и под обычными правами. У филиала показываются три типа цен, которые и надо показать. И обычного - все цены
   Chameleon1980
 
26 - 17.04.17 - 13:39
что за конструкция:

Н.НайтиЭлемент(ИспользоватьВладельца());
   Absurdus
 
27 - 17.04.17 - 13:42
(26) Сам в шоке! Но работает
   HawkEye
 
28 - 17.04.17 - 13:43
(26) это вместо ВыбратьЭлементы(0)... )))))
   HawkEye
 
29 - 17.04.17 - 13:45
(27) если ты перебираешь ВСЕ элементы, то проще использовать ИспользоватьСписокЭлементов()...

если конечно нет задачи специально написать корявый и тормозящий код...
   HawkEye
 
30 - 17.04.17 - 13:46
(25) если ты показываешь цены ОДНОЙ номенклатуры, зачем цикл по ВСЕМ элементам?
   HawkEye
 
31 - 17.04.17 - 13:48
+30...
аааааа у тебя там  Н.НайтиЭлемент(ИспользоватьВладельца())...

ну хоть так...
   Absurdus
 
32 - 17.04.17 - 13:51
Да всё нормуль пашет и совершенно не тормозит. Меня устраивает. Спасибо еще раз умным людям.
   Смотрящий
 
33 - 17.04.17 - 14:23
(25) Чет намолотил ты лишнего
 
 


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