Vinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo Slider
Автор: Administrator Категория: Разработка
Дата публикации Просмотров: 8537
Печать

В 8-ой платформе 1С нет возможности осуществить отбор в справочниках таким образом, чтобы можно было ограничить видимость групп в форме списка. В некоторых особо извращенных случаях это ограничивает возможности конфигурации.
Приведем некоторые способы обхода этого ограничения.


1) Можно использовать возможность отбора по владельцу.

СправочникДерево.Отбор.Владелец.Использование=Истина;
СправочникДерево.Отбор.Владелец.Значение=Владелец;
СправочникСписок.Отбор.Владелец.Использование=Истина;
СправочникСписок.Отбор.Владелец.Значение=Владелец;


Это сделано для устранения глюка платформы релиза 8.06 (1С его уже признала, обещала исправить
Если хотите посмотреть - что за глюк - просто закомментируйте следующие 2 строки

ЭлементыФормы.СправочникСписок.ИерархическийПросмотр=Ложь;
ЭлементыФормы.СправочникСписок.ИерархическийПросмотр=Истина;


В этом случае отбор происходит, но возможности данного метода ограничены. Нельзя осуществить отбор по реквизиту.
2) В форме списка отображаются элементы отдельно, группы отдельно.
Делается это просто:
Стандартная форма списка иерархического справочника, два реквизита типа СправочникСписок.
в одном настраиваем «Просмотр групп и элементов = Группы», в табличном поле Дерево=Истина, ТолькоПросмотр=Ложь, в другом соответственно «Просмотр групп и элементов = Элементы», в табличном поле Дерево=Ложь, связь по родителю Дерево.Выбор.
Данный метод позволяет реализовать отбор по любому реквизиту и не сложен в использовании. Но немного пропадает наглядность отображения иерархии.
3) Использование иерархии «Иерархия элементов».
В данном случае также возможен отбор стандартными средствами по любому реквизиту, но есть одно маленькое препятствие – нет групп . Так создадим их… Нам необходимо – создать реквизит (ЭтоЭлемент типа Булево например), в табличных полях указать картинку для строки. И программно регулировать работу с элементами. А именно… Отображение картинок соответствующим строкам, отображение помеченных на удаление элементов. Разделение создания групп и элементов. Сортировку по типу ЭтоЭлемент. Запрет создания подчиненных элементов для элементов с ЭтоЭлемент = Ложь (При условии подчинения элементам).

 

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

Процедура СправочникДеревоПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
// Вставить содержимое обработчика.
ОформлениеСтроки.Ячейки.Наименование.ОтображатьКартинку = Истина;
ИндексКартинки = 0;
Если ДанныеСтроки<>Неопределено Тогда
Если ДанныеСтроки.Ссылка.ПометкаУдаления Тогда
ИндексКартинки = 2;
КонецЕсли;
КонецЕсли;
ОформлениеСтроки.Ячейки.Наименование.ИндексКартинки=ИндексКартинки;
КонецПроцедуры

Процедура ПриОткрытии()
// Вставить содержимое обработчика.
СправочникДерево.Отбор.ЭтоЭлемент.Установить(Ложь);
СправочникСписок.Порядок.Установить("ЭтоЭлемент";
КонецПроцедуры

Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
// Вставить содержимое обработчика.
ОформлениеСтроки.Ячейки.Картинка.ОтображатьКартинку = Истина;
ОформлениеСтроки.Ячейки.Картинка.ОтображатьТекст = Ложь;
Если ДанныеСтроки.Ссылка.ЭтоЭлемент Тогда
ИндексКартинки = ?(ДанныеСтроки.Ссылка.ПометкаУдаления,3,1);
Иначе
ИндексКартинки = ?(ДанныеСтроки.Ссылка.ПометкаУдаления,2,0);
КонецЕсли;
ОформлениеСтроки.Ячейки.Картинка.ИндексКартинки=ИндексКартинки;
КонецПроцедуры

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

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

Данный метод позволяет наглядно отобразить иерархию, делает отбор по любому доступному для элемента параметру, но имеет один большой минус – надо программно отслеживать работу с группами-элементами. Т.е. быть предельно внимательными. Ну и еще неизвестно как быстро он будет работать на больших объемах.

Автор: © Абырвалг

(Информация с ресурса http://www.forum.mista.ru)

Add comment


Security code
Refresh

Последние новости

Written on 16/05/2012, 10:29 by admin
ob-otvetstvennosti-i-bezotvetstvennosti-ili-kak-opredelit-doljnostnye-obyazannosti-rabotnikovПоговорим о должностных обязанностях. Казалось бы, что тут может быть интересного?! Обязанности – они, как говорится, и в Африке обязанности. Нет ничего...
Written on 06/05/2012, 01:19 by admin
upravlenie-znaniyami-sozdanie-bazy-znanii-a-chto-na-praktikeПродолжая тему двух предыдущих постов (первый и второй), в которых проводилось исследование на тему управления знаниями и были рассказаны основные...
Written on 05/05/2012, 22:26 by admin
kak-pobedit-vorovstvo-sobstvennyh-sotrudnikovТы скажи нам, Карамзин,Как там Тверь, Калуга, Клин?И ответил Карамзин: «Да везде воруют, БЛИН!»Как вы полагаете, кто способен нанести бизнесу больший...
Written on 05/05/2012, 22:14 by admin
kak-naiti-chujoe-myloРуководство содержит описание поиска личных и корпоративных email различными методами с использованием специальных сервисов и поисковых систем....
Written on 05/05/2012, 22:10 by admin
prognozirovanie-prodaj-i-motivaciya-truda«…Конечно, можно платить и от продаж. Но лучше платить людям за то, что они делают на самом деле».   Территориальный менеджер крупной табачной...

Последние сообщения

  • linx 12.05.2012 13:49
    а как тоже самое сделать через политики в домене?

    Read more...

     
  • Super User 27.04.2012 09:03
    Вот пример как можно обработать перетаскивание из Excel: Отключаем стандартную обработку у табличного ...

    Read more...

     
  • Super User 27.04.2012 09:03
    1) Нужно установить свойство "РазрешитьНачал оПеретаскивания " у табличного поля из которого будем ...

    Read more...

     
  • Unknown181538 06.04.2012 14:36
    Я имею ввиду текст, который пишется для обработки в режиме пользователя. По умолчанию обработка ...

    Read more...

     
  • Administrator 06.04.2012 14:29
    Уважаемый, Unknown181538. По первому пункту согласен, спасибо. Видимо оператор "выполнить" "остался" ...

    Read more...

Login Form