В режиме «1С:Предприятие». Открытие формы списка с заданным отбором. В режиме «Конфигуратор». Закроем отчет. Если в форме документа мы изменим склад на Розничный
В режиме «1С: Предприятие» Запустим «1С: Предприятие» в режиме отладки и откроем документ Оказание услуги № ЦБ000000001. Нажмем кнопку Остатки по складу и вызовем отчет Материалы. Форма отчета генерируется системой автоматически. Отчет будет выполнен сразу при открытии формы с отбором по складу Основной, указан- ному в форме документа (рис. 27. 39). Закроем отчет. Если в форме документа мы изменим склад на Розничный, а затем выполним отчет нажатием кнопки Остатки по складу, то он будет сформирован с отбором по складу Розничный (в данном случае отчет будет пустой, так как у нас нет движений мате- риалов по этому складу). Таким образом, мы создали для пользователя очень удобную возмож- ность – открывать отчет, показывающий остатки материалов по складу, прямо из формы документа с отбором по указанному в документе складу. Занятие 27
Рис. 27. 39. Отчет «Материалы» с отбором по складу, указанному в документе
Открытие формы списка с заданным отбором В заключение рассмотрим распространенный случай, когда требуется открыть форму списка с некоторым заранее установленным отбором. На этом же примере мы поясним различие между фиксированными (программными) пользовательскими настройками и настройками динамического списка, сделанными в конфигураторе. Предположим, из списка сотрудников нам нужно открыть список документов об оказании услуг, выполненных сотрудником, который выделен в форме списка. Похожую задачу мы уже решали с помощью критерия отбора и механизма ввода на основании (см. раздел «Получение объектов, введенных на основании» на стр. 811). Теперь выполним ее с помощью встроенного языка.
В режиме «Конфигуратор» Итак, нам нужно открыть форму списка документов Оказание услуги с отбором по мастеру, в котором поле Мастер будет равно ссылке на текущего сотрудника в списке сотрудников. Для этого создадим форму списка справочника Сотрудники, затем создадим в ней команду ОказаниеУслуг и перетащим ее в командную панель формы. В палитре свойств команды ОказаниеУслуг, в строке Действие создадим клиентский обработчик этой команды (рис. 27. 40).
В модуле формы заполним обработчик команды следующим образом (листинг 27. 7). листинг 27. 7. Обработчик команды «Оказание услуг» Этот код очень похож на предыдущий листинг 27. 6, в котором открывалась форма отчета с отбором по значению параметризо- ванной команды. Только здесь в значение отбора для поля Мастер передается ссылка на текущий элемент списка сотрудников, которая содержится в свойстве ТекущаяСтрока таблицы формы Список, отображающей данные динамического списка. Затем этот отбор пере- дается в параметры формы при открытии формы списка документов Оказание услуги. В режиме «1С: Предприятие» Запустим «1С: Предприятие» и откроем список сотрудников. В форме списка появилась кнопка Оказание услуг. При ее нажатии открыва- ется список документов об оказании услуг, где мастером является текущий сотрудник (рис. 27. 41).
Однако не все так просто, как может показаться. Здесь есть одна тонкость, которую нужно знать и учитывать при создании настроек (в частности, отборов) динамических списков. Как уже говорилось, динамический список построен на основе системы компоновки данных. Настройки списка при открытии формы помещаются в свойство динамического списка Компонов- щикНастроек. Следует различать три вида настроек динамического списка: Фиксированные настройки, сделанные программным путем, помещаются в свойство динамического списка КомпоновщикНа- строек. ФиксированныеНастройки;
Настройки, сделанные в конфигураторе, помещаются в свойство динамического списка КомпоновщикНастроек. Настройки; Пользовательские настройки, сделанные в режиме 1С: Пред- приятие, помещаются в свойство динамического списка Компо- новщикНастроек. ПользовательскиеНастройки. Пользовательские настройки загружаются из системного хранилища и накладываются на настройки, сделанные в конфигураторе. В случае пересечения этих настроек пользовательские настройки имеют больший приоритет, то есть «затирают» настройки конфигуратора. Затем к полученным настройкам применяются фиксированные настройки. Но в случае пересечения этих настроек будет выдаваться ошибка. Например, при открытии формы списка с отбором (в нашем случае по полю Мастер) этот отбор помещается в фиксированные настройки. Поэтому пользователь уже не сможет установить отбор списка по тому же полю. Таким образом, если пользователь должен иметь возможность создавать отбор по полю, участвующему в фиксированных настройках списка, нужно удалить отбор из коллекции фиксированных настроек (КомпоновщикНастроек. ФиксированныеНастройки. Отбор) и добавить этот отбор в коллекцию основных настроек списка (КомпоновщикНа- строек. Настройки. Отбор).
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|