1С-Предприятие 8.0. Практическое пособие разработчика

       

Отбор объектов, введенных на основании


Поскольку задача получения всех объектов, введенных на основании какого-либо другого объекта чаще всего возникает при анализе документов, мы рассмотрим применение описанной выше методики на примере получения списка документов, введенных на основании элемента справочника "Клиенты". [497]

Создадим новый объект конфигурации "КритерийОтбора" с именем "ОказаниеУслуги". На закладке "Данные" выберем тип используемого критерия – СправочникСсылка.Клиенты.

На закладке "Состав" в качестве объектов, входящих в критерий, выберем реквизит "Основание" документа "ОказаниеУслуги":

На закладке "Формы" создадим основную форму списка при помощи конструктора. [498]

Запустите 1С:Предприятие в режиме отладки и проверьте работу критерия отбора:

Кнопка "Перейти" открывает форму списка критерия отбора...

Обратите внимание, что пункт меню "Перейти", формируемый платформой автоматически, включил в себя команду открытия формы списка созданного нами критерия отбора с установленным отбором по текущему элементу справочника "Клиенты".

Чтобы проиллюстрировать действия, выполняемые платформой при открытии формы списка критерия отбора, создадим основную форму списка справочника "Клиенты" и в командную панель формы добавим кнопку "ДокументыКлиента".

Обработчик этой кнопки будет выглядеть следующим образом:



Процедура ДействияФормыДокументыКлиента(Кнопка)

   ФормаКритерия = КритерииОтбора.ОказаниеУслуги.ПолучитьФорму();

   ФормаКритерия.Открыть();

   СписокКритерияОтбора = ФормаКритерия.ЭлементыФормы.Список.Значение;

   СписокКритерияОтбора.Отбор.ЗначениеОтбора.Значение = ЭлементыФормы.СправочникСписок.ТекущаяСтрока;

КонецПроцедуры

Этот обработчик открывает форму критерия отбора и затем устанавливает значение единственного элемента отбора объекта [499] КритерийОтбораСписок.ОказаниеУслуги равным ссылке на элемент справочника.




Запустите 1С:Предприятие в режиме отладки и проверьте работу нового пункта меню.

Получение всех ссылок на все связанные документы для дальнейшего их анализа программными средствами возможно при помощи метода менеджера критерия отбора – Найти() Проиллюстрируем это на примере.

Добавьте в обработчик события "При открытии" формы документа "ОказаниеУслуги" следующие строки:

Процедура ПриОткрытии()

   МассивСсылок = КритерииОтбора.ОказаниеУслуги.Найти(ЭлементыФормы.Клиент.Значение);

   Для Каждого НужнаяСсылка Из МассивСсылок Цикл

       Сообщить(НужнаяСсылка);

   КонецЦикла;

КонецПроцедуры

 В оригинале...

Процедура ДействияФормыДокументыКлиента(Кнопка)

   ФормаКритерия = КритерииОтбора.ОказаниеУслуги.ПолучитьФорму();

   ФормаКритерия.Открыть();

   СписокКритерияОтбора = ФормаКритерия.ЭлементыФормы.Список.Значение;

   СписокКритерияОтбора.Отбор.ЗначениеОтбора.Значение = ЭлементыФормы.СправочникСписок.ТекущаяСтрока;

   МассивСсылок = КритерииОтбора.ОказаниеУслуги.Найти(ЭлементыФормы.СправочникСписок.ТекущаяСтрока);

   Для Каждого НужнаяСсылка Из МассивСсылок Цикл

       Сообщить(НужнаяСсылка);

   КонецЦикла;

КонецПроцедуры

Запустите 1С:Предприятие в режиме отладки и проверьте вывод списка зависимых документов в окно сообщений. [500]





if (window.topicInitScriptAvailable) { HMInitToggle('TOGGLE0186A1','hm:type','dropdown','hm:state','0');HMInitToggle('$TOGGLE0186A1_ICON','hm:type','dropdown','hm:state','0','hm:src0','hmtoggle_plus0.gif','hm:src1','hmtoggle_plus1.gif','onclick','HMToggle(\'toggle\',\'TOGGLE0186A1\',\'\$TOGGLE0186A1_ICON\')');}


Содержание раздела