Версия для печати темы (https://pro1c.org.ua/index.php?s=055098ae7363f1c0cc48422e1e3cb49b&showtopic=41085)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Отбор в табличной части ограниченного списка Документов и Справочников конфигурации

Автор: Constantus 17.10.17, 8:55

Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Даже не знаю как правильно озвучить проблему.

Должен существовать ограниченный список необходимых мне документов и справочников (не все справочники и не все документы). Никак не могу сообразить где и как разместить этот ограниченный список, например, только "РеализацияТоваровУслуг" и "ПоступлениеТоваров"; "Контрагенты" и ДоговорыКонтрагентов" (справочник, регистр, перечисления). Речь идет о наименовании Документов и Справочников

Далее, имеется некий Справочник, куда должны заносится в ТЧ эти значения из этого ограниченного списка.

Причем ТЧ должна быть разграничена 2-мя Страницами "Справочники" и "Документы", но ТЧ должна иметь один источник (реквизит), т.е. страницы выполняют роль фильтра.

Структура ТЧ:

1. Тип (принимает значение "Справочники" или "Документы", например Перечисление)
2. Вид (поле выбора из ограниченного списка документов и/или справочников в зависимости от выбранного значения "ТИП")

1. Одним словом. Открывается этот справочник, заполняется шапка.
2. Идем на страницу "Справочники" или "Документы".
3. На соответствующей странице Тип принимает значение "Справочник" или "документы" в зависимости от выбранной страницы.
4. В поле "Вид" выбираем только Документы или Справочники в зависимости от Выбранной страницы


Автор: Flexy 17.10.17, 10:25

Зачем это все?

Автор: Constantus 17.10.17, 10:52

Flexy @ Сегодня, 13:25 * ,


Хороший вопрос! Занимаюсь извратом по заданию начальства. Он хочет, чтобы на часть документов и справочников были введены ограничения по редактированию:
ТолькоЧтение, ЗапретНаПроведение, ЗапретНаУдаление, ЗапретНаКопировние.

Причем эти параметры могут быть изменены, т.е. сегодня пользователю ТолькоЧтение, завтра снимет ограничение.
Еще причем, не на все документы и справочники это распространяется, только на некоторые.
Совсем причем, это все конечно можно сделать ролями и каждый раз менять конфигурацию, но этого уже не хочется делать мне, у меня РИБ.

В принципе я уже разработал механизм и он работает, но хлопоты составляет удобство интерфейса по редактированию настроек, т.е. подбор Справочников и Документов по наименованию, а не по конкретным ссылкам.

Смешивать перечень справочников и документов в одной странице ТЧ тоже не айс... вот и пытаюсь для себя сделать нечто читабельным...

В первую очередь не могу понять как лучше сформировать список всех документов и справочников, подлежащих этому процессу. Т.е. расположить их в Перечислениях? или где?
Т.е. я так думаю, создается новый справочник, заполняется шапка, потом кнопкой "Заполнить" в ТЧ заполняестя весь список наименований документов, а на странице "Справочники - список справочников...

Причем источник ТЧ для Справочников и Документов должен быть единым... У меня запросом вычленяются ограничения и не хочется делать 2-а запроса для справочников и документов...

Автор: Flexy 17.10.17, 11:21

Цитата(Constantus @ 17.10.17, 10:52) *
В первую очередь не могу понять как лучше сформировать список всех документов и справочников, подлежащих этому процессу. Т.е. расположить их в Перечислениях? или где?

Я бы сделал справочник с двумя ТЧ - ТЧ - документы и ТЧ - справочники.
Колонки ТЧ: имя документа (Строка) / справочника, и остальные с разрешениями.
Заполнятся ТЧ должны при первой инициализации.
Для Каждого Док Из Метаданные.Документы Цикл
    НовСтр = ТЧДокументы.Добавить();
    НовСтр.ИмяДокумента = Док.Имя;
КонецЦикла;

В дальнейшем при открытии формы справочника нужно выполнять проверку на новые типы документов конфигурации и автоматов добавлять их
Для Каждого Док Из Метаданные.Документы Цикл
    Если ТЧДокументы.Найти(Док.Имя, "ИмяДокумента") <> Неопределено Тогда
        Продолжить;
        КонецЕсли;
        НовСтр = ТЧДокументы.Добавить();
    НовСтр.ИмяДокумента = Док.Имя;
КонецЦикла;


Потом, пишем функцию, которая выбирает разрешения и ... профит

Автор: sava1 17.10.17, 11:24

Смотрите в сторону Метаданные......Имя / Синоним

Автор: Constantus 17.10.17, 12:00

Flexy @ Сегодня, 14:21 * ,

Благодарю. Приблизительно так я и делал, но можно ли как-то таки сделать, чтобы была одна ТЧ, две страницы, которые при открытии фильтровали свои данные по Справочникам и Документам?

И чтобы был не весь список всех документов, а только избранные? Хранящиеся где-то в другом списке?

Автор: sava1 17.10.17, 12:01

в ТЧ колонка тип "док"/"спр" - заполняете при заполнении - далее по нему отбор

Автор: Flexy 17.10.17, 12:46

Цитата(Constantus @ 17.10.17, 12:00) *
можно ли как-то таки сделать, чтобы была одна ТЧ, две страницы, которые при открытии фильтровали свои данные по Справочникам и Документам?

А в чем сложность сделать 2 таблицы? Красивше ж будет. Если что в запросе можно сделать "объединить все" и получить на выходе все, что нужно
|ВЫБРАТЬ
| ТЧ_Док.ИмяДокумента КАК ИмяОбъектаМета,
| ТЧ_Док.Разрешение,
| ИСТИНА КАК ЭтоДокумент
|ИЗ
| Справочник.РазрешенияОбъктовМета.Документы КАК ТЧ_Док
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТЧ_Спр.ИмяСправочника КАК ИмяОбъектаМета,
| ТЧ_Спр.Разрешение,
| ЛОЖЬ КАК ЭтоДокумент
|ИЗ
| Справочник.РазрешенияОбъктовМета.Справочники КАК ТЧ_Спр

Автор: sava1 17.10.17, 12:52

Flexy,
с третьей колонкой чет не так

Автор: Flexy 17.10.17, 12:57

Цитата(sava1 @ 17.10.17, 12:52) *
с третьей колонкой чет не так

Спс. Поправил. 32000000.gif

Автор: Constantus 17.10.17, 14:13

Flexy @ Сегодня, 15:46 * ,


Вот мой запрос:

    Запрос.Текст = 
        "ВЫБРАТЬ
        |    a_Справочник1Доступ.Тип,
        |    a_Справочник1Доступ.Объект.Наименование,
        |    a_Справочник1Доступ.ТолькоПросмотр Как ТП,
        |    a_Справочник1Доступ.ЗапретПроведения Как ЗП,
        |    a_Справочник1Доступ.ЗапретНаРаспроведение Как ЗНОП,
        |    a_Справочник1Доступ.ЗапретУдаления Как ЗУ,
        |    a_Справочник1Доступ.ЗапретОтменыУдаления Как ЗОУ,
        |    a_Справочник1Доступ.ЗапретКопирования Как ЗК        
        |ИЗ
        |    Справочник.a_Справочник1.Доступ КАК a_Справочник1Доступ
        |ГДЕ
        |    a_Справочник1Доступ.Ссылка.Пользователь = &Пользователь
        |    И a_Справочник1Доступ.Объект.Наименование = &Наименование";
    
    Запрос.УстановитьПараметр("Наименование", Значение);
    Запрос.УстановитьПараметр("Пользователь", Пользователь);


Никак не могу сообразить как объединить, если разные ТЧ

Автор: sava1 17.10.17, 14:46

В справочник добавьте поле "типОбъекта" - справочник/документ

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua