Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Справочники. Работа с группами          
Cnhtkjr Подменю пользователя
сообщение 30.06.10, 14:20
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 48
Спасибо сказали: 0 раз
Рейтинг: 0

Доброго времени суток. Помогите кому не лень:
Есть справочник. В нем много групп. В каждой группе магазины. На каждую группу есть свой "хозяин".
Вопрос:
"как сделать, чтобы, когда человек начинал выбор из справочника, ему открывалась только его группа магазинов и он не мог выйти из своей иерархии?"

Я надеюсь что вопрос задан понятно.
Как я понимаю, то в этом ничего сложного быть не должно - вам минута времени подсказать, а мне - день головой об стену биться маны читать.
посему - как всегда буду искренне признателен за ваше внимание и помощь.

Lefer Подменю пользователя
сообщение 30.06.10, 14:57
Сообщение #2

Завсегдатай
****
Группа: Пользователи
Сообщений: 155
Спасибо сказали: 11 раз
Рейтинг: 0

На сколько я понял вопрос задачу можно решить так (если речь у нас идет о выборе элемента справочника из поля выбора)

Процедура <ИскомоеПолеВыбора>НачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    
    ФормаВыбора = Справочники.<ИскомыйСправочник>.ПолучитьФормуВыбора(, Элемент);
    
    ФормаВыбора.Отбор.Магазин.Значение          = НужноеНаименованиеМагазина;
    ФормаВыбора.Отбор.Магазин.Использование = Истина;
    ФормаВыбора.Отбор.Магазин.ВидСравнения  = ВидСравнения.Равно;
    
    ФормаВыбора.Отбор.<Хозяин>.Значение      = <Хозяин>;
    ФормаВыбора.Отбор.<Хозяин>.Использование = Истина;
       ФормаВыбора.Отбор.<Хозяин>.ВидСравнения  = ВидСравнения.Равно;
    ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Доступность = Ложь;
    ФормаВыбора.Открыть();
    
КонецПроцедуры


Смысл в том, чтобы по Хозяину Документа (по-моему, в документе должен указываться текущий пользователь - он же и есть хозяин) формировать отбор в форме выбора справочника. Для того, чтобы отключить ему возможность выхода из иерархии надо отключить доступность отбора...по-моему так.

Если же мы напрямую обращаемся к справочнику, то смысл тот же. Просто даем пользователю форму выбора.


Signature
It's the end of the world as we know it and I feel fine

Спасибо сказали: Cnhtkjr,

Cnhtkjr Подменю пользователя
сообщение 30.06.10, 15:18
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 48
Спасибо сказали: 0 раз
Рейтинг: 0

Спасибо, добрый человек!
Еще не пробовал, но судя по коду - как раз то что нужно.

Lefer Подменю пользователя
сообщение 30.06.10, 15:23
Сообщение #4

Завсегдатай
****
Группа: Пользователи
Сообщений: 155
Спасибо сказали: 11 раз
Рейтинг: 0

Цитата(Cnhtkjr @ 30.06.10, 17:18) *
Спасибо, добрый человек!
Еще не пробовал, но судя по коду - как раз то что нужно.


Да не за что. Как решишь - скинь ,пожалуйста, сюда свое решение.


Signature
It's the end of the world as we know it and I feel fine

Cnhtkjr Подменю пользователя
сообщение 30.06.10, 15:46
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 48
Спасибо сказали: 0 раз
Рейтинг: 0

Процедура МагазинНачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    ФормаВыбора = Справочники.Магазины.ПолучитьФормуВыбора(, Элемент);
    ФормаВыбора.Отбор.Пользователь.Значение          = "Киев";
    ФормаВыбора.Отбор.Пользователь.Использование = Истина;
    ФормаВыбора.Отбор.Пользователь.ВидСравнения  = ВидСравнения.Равно;
    
//ФормаВыбора.Отбор.Наименование.Значение      = "БазыКиева";
    //ФормаВыбора.Отбор.Наименование.Использование = Истина;
    //ФормаВыбора.Отбор.Наименование.ВидСравнения  = ВидСравнения.Равно;
    //ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Доступность = Ложь;
    
ФормаВыбора.Открыть();
КонецПроцедуры



В общем вот что вышло:
делаю отбор по реквизиту "пользователь", который я создал в самом начале, предполагая, что будет такая потребность.
Да, как раз для обзора и выдаются магазины с нужным пользователем.
Но. Вот это вот нехорошее "Но" опять вклинилось.
Хотелось, чтобы форма выбора сразу открывалась на нужной группе. В данном варианте показываются все имеющиеся группы из которых нужно входить в свою и там уже видно список магазинов.
Если подскажете как сделать "по уму" - опять же буду благодарен.

Так же, почему-то строчка "ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Доступность = Ложь;" отказывается работать наотрез, заявляя, что поле объекта "Доступность" - не обнаружено.
Странно конечно, но почему так? Рылся в МСДНе, но ответа не нашел.

ну, и вторая часть закомменчена, так как нею я хотел сделать отбор на группу, а не вышло пока что.

zetovich Подменю пользователя
сообщение 30.06.10, 15:51
Сообщение #6

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 718
Из: Северодонецк
Спасибо сказали: 121 раз
Рейтинг: 0

RLS
откройте УТ ...и посматрите как реализован доступ к контрагентам тем же на уровне пользователей.
з.ы. Справочник "Группы доступа к контрагентам"
з.ы.ы. все равно пойдете дальше...и нужно будет ограничить в отчетах (взаиморасчеты)....а это как раз решит проблему.

Cnhtkjr Подменю пользователя
сообщение 30.06.10, 15:56
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 48
Спасибо сказали: 0 раз
Рейтинг: 0

решил пойти на небольшую хитрость:


"ФормаВыбора.НачальноеЗначениеВыбора = Справочники.Магазины.Киев;"

так хотя бы похоже на то что я хотел.
Даже, можно было бы оставить только эту строчку и запретить подниматься вверх по иерархии.
Но вот с запретом подниматься выше - пока траблы.

Cnhtkjr Подменю пользователя
сообщение 30.06.10, 16:01
Сообщение #8

Общительный
**
Группа: Пользователи
Сообщений: 48
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(zetovich @ 30.06.10, 17:51) *
RLS
откройте УТ ...и посматрите как реализован доступ к контрагентам тем же на уровне пользователей.
з.ы. Справочник "Группы доступа к контрагентам"
з.ы.ы. все равно пойдете дальше...и нужно будет ограничить в отчетах (взаиморасчеты)....а это как раз решит проблему.



спасибо, посмотрю обязательно.
Да, действительно, зря я наверное не пользуюсь для примеров УТешкой.
Но на это мне нужно будет время. Сейчас к сожалению у меня как всегда экспресс-задания: "или сделаешь за два часа того чего сам не знаешь, или вкусишь незабываемые часы анального и прочего..."

я оооочень медленный кодер. Мне только на осознание задачи требуются по крайней мере сутки. Потом на предрабочую медитацию - еще пара суток и только тогда я могу приступить к трудам.
Но кто ж мне даст столько времени? :/

Zaval Подменю пользователя
сообщение 30.06.10, 19:42
Сообщение #9

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Это... а кто сказал, что выбирать нужно из формы списка справочника? Если даже в "своей" группе есть подгруппы - удобнее отключить иерархию и начать вводить наименование...
Ну и сделайте им обработку ВыборКонтрагента.При открыти - запрос к справочнику, все дозволенное - в таблицу. Если уж так нужны подгруппы - выбирать с Родителями(если дозволен), поместить в дерево. А можно сгруппировать альтернативно...
Самое большое неудобство справочника - единая иерархия для всего разнообразия пользователей(как тут не вспомнить семерошные Комплексную и ТиС с их Категориями). Начнешь дотачивать под всех и каждого - тут и тормоза на подходе(

ЗЫ. Медитируйте, разглядывая типовые... отраслевые, "нетленки", все, до чего сможете добраться. Очень скоро знание "что где как реализовано" резко сократит время медитации.)

Спасибо сказали: Cnhtkjr,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 19.06.24, 23:38
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!