КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
СправочникСписок.Отбор.Ссылка.Значение. 2 страница
Все, что нам осталось теперь сделать, чтобы наша конфигурация смогла работать в косметическом салоне, - просто создать новую информационную базу с нашей конфигурацией, и заполнить ее новыми данными, - сотрудниками и новой номенклатурой. Все механизмы учета, которые мы с вами создавали, не были привязаны к какой-либо специфике конкретного предприятия, а потому могут с успехом использоваться на любом другом предприятии, имеющем аналогичную область деятельности. Таким образом, даже если в косметическом салоне пожелают иметь дополнительную функциональность, нам потребуется всего лишь дописать несколько модулей к нашей конфигурации, что гораздо эффективнее, чем создавать заново индивидуальное решение только для данного предприятия.
Третья часть нашей книги будет посвящена некоторым конкретным приемам использования тех или иных объектов конфигурации которые могут потребоваться разработчику в процессе создания и модификации конфигурации. Глава 1. Общие приемы Существует ряд приемов использования объектов конфигурации, которые нельзя отнести только к какому-то одному виду объектов. Такие приемы мы собрали в этой главе.
Специальные приемы разработки Общие приемы
адача организации подбора заключается, как правило, | заполнении табличной части информацией, которую выбирает пользователь в списке какого-либо объекта. Алгоритм организации подборов Для иллюстрации механизма подбора информации в форме мы будем использовать задачу подбора элементов справочника в табличную часть документа, как наиболее распространенную. Поскольку механизм подбора реализован на уровне форм, то в других случаях просто будут задействованы иные прикладные объекты, сам механизм подбора не изменится. Для организации подбора в форму документа следует открыть форму справочника как подчиненную форме документа, либо элементу управления, расположенному в форме документа. Способ получения формы справочника может быть любым, также как и сама форма справочника, которая будет использована. Важно лишь то, что эта форма должна быть открыта как подчиненная. Результат подбора будет доступен в обработчике события «Обработка выбора» формы документа или элемента управления (в зависимости от подчинения формы справочника). Событие «Обработка выбора» будет вызвано в двух случаях: Создадим основную форму выбора справочника «Номенклатура». Затем добавим в состав командной панели табличного поля документа «ПриходнаяНакладная» кнопку «Подбор». Добавим кнопку «Подбор»
В форме документа, в обработчик события нажатия кнопки «Подбор» добавим следующий текст:
• • когда в форме справочника будет вызван метод Различные способы подбора мы проиллюстрируем на примере подбора элементов справочника «Номенклатура» в документ «ПриходнаяНакладная». Одиночный подбор
ри одиночном подборе форма справочника будет закрываться сразу после выбора элемента. Для выбора следующего элемента необходимо будет снова инициировать подбор. ПроцедураКоманднаяПанель1Подбор(Кнопка) ФормаПодбора = Справочники.Номенклатура ПолучитьФормуВыбора(,ЭлементыФормы.Материалы); ФормаПодбора.Открыть(); КонецПроцедуры
СтандартнаяОбработка) НоваяСтрока = Материалы.Добавить(); НоваяСтрока.Материал = ВыбранноеЗначение; ЭлементыФормы.Материалы.ТекущаяСтрока = НоваяСтрока; КонецПроцедуры
Специальные приемы разработки Общие приемы
Множественный подбор
ри множественном подборе форма справочника будех открыта до тех пор, пока пользователь не закроет ее интерактивно или пока не будет вызван метод формы Закрыть(). Для разнообразия создадим форму списка справочника «Номенклатура» и затем в форме документа «ПриходнаяНакладная», в обработчик события нажатия кнопки «Подбор» внесем следующие изменения: В форме документа «ПриходнаяНакладная» внесем в обработчик события нажатия кнопки «Подбор» следующие изменения:
ФормаПодбора = Справочники.Номенклатура .ПолучитьФормуСписка(, ЭлементыФормы.Материалы); ФормаПодбора.РежимВыбора = Истина; //ФормаПодбора.ЗакрыватьПриВыборе = Ложь; ФормаПодбора.МножественныйВыбор = Истина; ФормаПодбора.Открыть(); КонецПроцедуры
ФормаПодбора = Справочники.Номенклатура .ПолучитьФормуСписка(,ЭлементыФормы.Материалы); ФормаПодбора.РежимВыбора = Истина; ФормаПодбора.ЗакрыватьПриВыборе = Ложь; ФормаПодбора.Открыть(); КонецПроцедуры Процедура МатериалыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) Для СчетчикЦикла = 0 по РезультатВыбора.ВГраница() цикл НоваяСтрока = Материалы.Добавить(); НоваяСтрока.Материал = РезультатВыбора[СчетчикЦикла]; КонецЦикла; КонецПроцедуры
Запустите 1С:Предприятие в режиме отладки и проверьте работу множественного подбора. Подбор с использованием множественного выбора
ще одним способом организации подбора является «Множественный выбор». Это свойство разрешает множественный выбор в табличных полях формы. В этом случае в форму документа будет возвращен не элемент справочника, а массив элементов, выбранных в табличном поле формы справочника. Запустите 1С:Предприятие в режиме отладки и проверьте работу множественного подбора (множественный выбор в табличном поле выполняется при нажатой кнопке «Control»). Теперь, если вы удалите комментарий в обработчике события нажатия кнопки «Подбор», то получите вариант «множественного подбора с использованием множественного выбора». Использование метода ОповеститьОВыборе()
етод формы ОповеститьОВыборе() используется в тех случаях, когда алгоритм формирования данных подбора сложен, и кроме собственно выбора элемента справочника от пользователя требуется указание некоторой дополнительной информации. В этом случае метод ОповеститьОВыборе() вызывается тогда, когда вся необходимая информация подбора сформирована. Также метод ОповеститьОВыборе() может использоваться в тех случаях, когда требуется передать в форму документа не только
О6Щие приемы
Ввод на основании
еханизм ввода на основании может быть использован для ввода новых объектов различного типа (документы, справочники, планы видов характеристик и т.д.). Мы рассмотрим этот механизм на примере ввода новых документов, как наиболее распространенном. Для каждого объекта конфигурации Документ можно разрешить его ввод на основании других объектов базы данных и возможность являться основанием для других объектов. Действия по заполнению реквизитов при вводе на основании должны быть описаны в модуле объекта Документ, в обработчике события «Обработка заполнения». Есть возможность использовать конструктор ввода на основании, который позволяет визуальными средствами конструировать текст обработчика. Рассмотрим пример, когда документ «ОказаниеУслуги» будет вводиться на основании элемента справочника «Клиенты». Откроем окно редактирования объекта конфигурации Документ «ОказаниеУслуги» и добавим новый реквизит документа -«ОбъектОснование» с типом СправочникСсылка.Клиенты. Создание такого реквизита не является обязательной частью механизма ввода на основании и понадобится нам только для того, чтобы в последствии построить цепочку зависимых документов.
Специальные приемы разработки Общие приемы
Затем вызовем конструктор ввода на основании и зададим значения реквизитов документа, создаваемого на основании. Для этого воспользуемся кнопкой «Заполнить выражения»:
Определим состав объектов и вызовем конструктор ввода на основании...
Обратите внимание, что для заполнения реквизита «ОбъектОснование» конструктор предложил использовать значение Основание.Ссылка. В данном случае такая запись будет избыточной, поскольку в качестве основания будет передана ссылка на элемент справочника. Однако в общем случае событие «Обработка заполнения» возникает при создании нового объекта на основании некоторого переданного значения. Совсем не обязательно, что это значение будет иметь тип ссылки. Согласимся со всем, что предложил конструктор, и нажмем «ОК». В модуле документа будет сформирован текст обработчика события «Обработка заполнения»:
// Данный фрагмент построен конструктором. II При повторном использовании конструктора, // внесенные вручную изменения будут утеряны!!!
Специальные приемы разработки Общие приемы
// Заполнение шапки Клиент = Основание.Ссылка; ОбъектОснование = Основание.Ссылка; КонецЕсли; //} }_KOHCTPyKTOP_BBOД HA_OCHOBAHИИ КонецПроцедуры
Запустите 1С:Предприятие в режиме отладки и проверьте работу ввода на основании. Обратите внимание, что в командной панели формы списка справочника «Клиенты» появилась кнопка «Ввести на основании»:
Объекты, введенные на основании
аряду с тем, что платформа содержит механизмы, позволяющие создавать одни объекты на основании других, каких-либо специальных механизмов для анализа цепочек связанных объектов платформа не содержит. Для решения подобной задачи, мы дадим некоторые рекомендации, которые могут быть положены в основу конкретного решения. Для построения цепочек связанных объектов необходимо у каждого объекта, который будет вводиться на основании, создать служебный реквизит для хранения ссылки на объект-основание. Затем следует создать объект конфигурации КритерийОтбора, который будет использоваться для установки отбора по требуемому значению служебного реквизита. В дальнейшем, для получения всех объектов, введенных на основании, достаточно будет установить нужное значение отбора в критерии отбора. Объект конфигурации Критерий отбора
бъект конфигурации Критерий отбора предназначен для задания правил, по которым может выполняться отбор объектов. Этот объект используется в случае поиска различной информации, когда, например, требуется отобрать все документы, в которых используется (в реквизитах и в табличных частях) определенный контрагент, при этом можно учитывать также и другие условия отбора информации (например, поиск ведется только среди проведенных документов или в определенном интервале дат). Отбор объектов, введенных на основании
оскольку задача получения всех объектов, введенных на основании какого-либо другого объекта чаще всего возникает при анализе документов, мы рассмотрим применение описанной выше методики на примере получения списка документов, введенных на основании элемента справочника «Клиенты».
Специальные приемы разработки Общие приемы
На закладке «Состав» в качестве объектов, входящих в критерий, выберем реквизит «Основание» документа «ОказаниеУслуги»: Запустите 1С:Предприятие в режиме отладки и проверьте работу критерия отбора: Кнопка «Перейти» открывает форму списка критерия отбора...
Обратите внимание, что пункт меню «Перейти», формируемый платформой автоматически, включил в себя команду открытия формы списка созданного нами критерия отбора с установленным отбором по текущему элементу справочника «Клиенты». Чтобы проиллюстрировать действия, выполняемые платформой при открытии формы списка критерия отбора, создадим основную форму списка справочника «Клиенты» и в командную панель формы добавим кнопку «ДокументыКлиента». Обработчик этой кнопки будет выглядеть следующим образом:
СписокКритерияОтбора = ФормаКритерия.ЭлементыФормы.Список.Значение; СписокКритерияОтбора.Отбор.ЗначениеОтбора.Значение = ЭлементыФормы.СправочникСписок.ТекущаяСтрока; КонецПроцедуры Этот обработчик открывает форму критерия отбора и затем устанавливает значение единственного элемента отбора объекта
шальные приемы разработки циальные приемы разработки
КритерийОтбораСписок.ОказаниеУслуги равным элемент справочника. Запустите 1С:Предприятие в режиме отладки и проверьте работу нового пункта меню. Получение всех ссылок на все связанные документы ддя дальнейшего их анализа программными средствами возможно при помощи метода менеджера критерия отбора - Найти() Проиллюстрируем это на примере. Добавьте в обработчик события «При открытии» формы документа «ОказаниеУслуги» следующие строки: Глава 2. Формы В этой главе мы собрали приемы работы, которые имеют отношение к формам объектов. Кроме этого в начале главы дается краткое пояснение того, каким образом в системе 1С:Предприятие данные отображаются в формах.
СписокКритерияОтбора = ФормаКритерия.ЭлементыФормы.Список.Значение; СписокКритерияОтбора.Отбор.ЗначениеОтбора.Значение = ЭлементыФормы.СправочникСписок.ТекущаяСтрока; МассивСсылок = КритерииОтбора.ОказаниеУслуги .Найти(ЭлементыФормы.СправочникСписок.ТекущаяСтрока); Для Каждого НужнаяСсылка из МассивСсылок цикл СообщитьдаужнаяСсылка); КонецЦикла; КонецПроцедуры
Специальные приемы разработки Формы
ажной особенностью платформы 1С:Предприятие gQ является механизм представления данных в формах Ключевым моментом здесь является то, что принадлежность формы к тому или иному объекту конфигурации никоим образом не определяет состав данных, которые форма будет отображать. Например, можно создать общую форму, которая не будет подчинена ни одному из объектов конфигурации, но которая, в зависимости от содержимого, будет либо отображать список справочника, либо позволять редактировать документ. Однако такую форму уже нельзя будет назначить основной для выполнения определенных действий. Форма сама по себе и ее элементы управления обособлены от объектов конфигурации. Для того чтобы форма отображала какие-либо данные, необходимо задать связь самой формы и большинства из ее элементов управления с данными. При использовании конструктора форм, конфигуратор создает такие связи автоматически. Если разработчик создает форму вручную - он может определить эти связи путем задания свойств формы и элементов управления. В любом случае, эти связи могут быть изменены средствами встроенного языка в процессе выполнения программы. Связь формы и элементов управления с данными осуществляется при помощи реквизитов формы. Список существующих реквизитов формы доступен на закладке «Реквизиты» окна редактирования формы. Среди всех реквизитов формы, как правило, существует один основной реквизит (он выделен жирным шрифтом). Основной реквизит определяет источник данных для формы в целом. От типа значения основного реквизита формы зависит не только то, какие данные будУт отображены в элементах управления формы, но и поведение самой формы. Например, если основному реквизиту формы указать тип значения ДокументОбъект.ПриходнаяНакладная, то при закрытии формы программа будет запрашивать подтверждение записи ' проведения документа. Если же основному реквизиту формы указать тип значения СправочникСписок.Номенклатура, то подобного подтверждения при закрытии формы возникать не будет. Похожее влияние источники данных оказывают и на элементы СправочникСписок.Номенклатура или РегистрНакопленияСписок.ОстаткиКомплектующих. To же самое справедливо и для элемента управления командная панель. При установленном свойстве командной панели «Автозаполнение», смена источника данных (а точнее говоря, источника действий) будет приводить к изменению состава команд, которые отображает командная панель. Возможность связать форму и элементы управления с различными данными является причиной того, что у формы и у элементов управления существует несколько расширений. Расширение представляет собой набор дополнительных свойств, методов и событий, появляющихся у объекта. Наличие того или иного расширения определяется либо типом данных, которые отображает объект, либо расположением его в других объектах. Рассмотрим этот механизм на примере элемента управления Поле ввода, расположенного в колонке «Вид номенклатуры» формы списка справочника «Номенклатура»:
Поскольку форма отображает данные объекта СправочникСписок.Номенклатура, к свойствам, методам и
Специальные приемы разработки Формы
событиям объекта Форма добавляется расширение формы списка справочника: В результате этого у формы появляются такие свойства как ПараметрТекущаяСтрока, ПараметрВыборПоВладельцу и т.п.
Затем, поскольку данными, отображаемыми в табличном поле, будет список справочника «Номенклатура», к свойствам, методам и событиям табличного поля добавляется расширение табличного поля списка справочника. Но, поскольку это табличное поле расположено в форме, к его свойствам, методам и событиям добавляется также и расширение элементов управления, расположенных в форме:
Дата добавления: 2014-11-16; Просмотров: 1314; Нарушение авторских прав?; Мы поможем в написании вашей работы! |