- •1С:Предприятие 8.2. Практическое пособие разработчика.
- •4 1С:Предприятие 8.3. Практическое пособие разработчика
- •Что такое конфигурируемость системы «1с:Предприятие»?
- •Ориентировочная продолжительность занятия - 2 часа 10 минут.
- •I I "Йт Склады Рис. 3.8. Справочник «Склады» с предопределенным элементом «Основной»
- •Ориентировочная продолжительность занятия - 1 час 30 минут.
- •1C: Пред приятие
- •I ПриходнаяНак ладная j
- •X ран и л ище Зна че и и я у ника льныйИденгификатор СправочникСсылка СправочникСсылка.Клиенты СправочникСсылка.Сотрудники СправочникСсылка.Н оменклатура
- •Локальный контекст модуля формы.
- •Свойства и методы расширения формы, определяемого типом того объекта, данные которого содержатся в основном реквизите формы.
- •0 £ Управляемая форма © Ei УправляемаяФорма © е Расширение элементов Формы © е Расширение объектов © е Расширение констант
- •Глобальный контекст, в том числе неглобальные общие модули и экспортируемые функции и процедуры глобальных общих модулей.
- •Экспортируемые переменные, процедуры и функции модуля управляемого приложения.
- •3 Документ ПринплнляНлкладная ФпрмаДпкумента
- •4 ' Рис. 5.36. Панель инструментов «Точки останова»
- •208 209 211 211 214 221 223 223 224 225 225 228 229 231 Занятие 6
- •Ориентировочная продолжительность занятия - 50 минут.
- •Оказание услуги Рис. 8.15. Печатная форма документа «Оказание услуги»
- •1C: Пред приятие
- •Периодический независимый регистр сведений "Цены"
- •0 D Стиральные машины
- •Ориентировочная продолжительность занятия - 1 час 20 минут.
- •Движения по регистру Стоимость материалов Рис. 11.8. Записи регистра «Остатки материалов» Рис. 11.7. Приходная накладная № 1
- •322 1С:Предприятие 8.3. Практическое пособие разработчика
- •0™ Номенклатура © Колонки
- •0Е™ Клиент е 01ч Диаграмма © т очки
- •0™ Клиент © Серии
- •0Е33 Номенклатура
- •0 Щ] Отчет
- •I Отлично
- •77 Перечень услуг
- •Универсальный 1 Ец1е " Рис. 13.113. Результат отчета
- •Ориентировочная продолжительность занятия - 3 часа 20 минут.
- •В остальных случаях функция вернет само значение этого поля.
- •Ориентировочная продолжительность занятия - 2 часа 50 минут.
- •I Период t | Регистратор | н... | Материал | Склад | Набор свойств | Количество
- •Остатки материалов по свойствам Рис. 15.47. Результат отчета
- •0 Для чего предназначен объект конфигурации «План видов харак
- •0 В чем принципиальное отличие плана вида характеристик от справочника?
- •0 Что такое тип значения характеристик?
- •0 Зачем нужны дополнительные значения характеристик?
- •0 Как, используя план видов характеристик, организовать учет по переменному количеству характеристик?
- •0 Как создать план видов характеристик?
- •0 Что такое связь по параметрам выбора?
- •0 Как изменить заголовок формы?
- •0 Как скрывать элементы формы с подчиненной информацией при ее создании?
- •0 Как описать характеристики в метаданных?
- •0 Как использовать характеристики при выполнении отчета?
- •Ориентировочная продолжительность занятия - 1 час 50 минут.
- •По периоду действия
- •I ДиаграммаГ анга |
- •15 Форма
- •1 Номенклатура: Строчный трансформатор Samsung Последние запросы (материал)
- •6. Оказание услуги: Оказание услуги 000000002 от 11.07.2013 16:14:06
- •3. Начисление сотрудникам: Начисление сотрудникам 1
- •0 Для чего предназначен документ для ввода начальных остатков, и как его создать?
- •Ориентировочная продолжительность занятия - 1 час 50 минут.
- •Ориентировочная продолжительность занятия - 1 час 10 минут.
- •Ориентировочная продолжительность занятия - 6 часов 10 минут.
- •1Е проверять
- •3AnwcbXml.3aKpNTbO;
- •3AnMCbXml.3aKpNTbO;
- •С предварительным вопросом пользователю
- •Ориентировочная продолжительность занятия - 2 часа 10 минут.
- •® В ® © ® ® Рис. 27.6. Контекст поля формы дополняется контекстом расширения поля ввода
- •I ключать в пользовательские настройки
- •I доступ
- •Из формы элемента
- •Из формы узла
® В ® © ® ® Рис. 27.6. Контекст поля формы дополняется контекстом расширения поля ввода
Типы данных формы
В управляемой форме можно выделить следующие категории типов, с которыми она работает:
Типы встроенного языка, предназначенные для использования как в управляемых формах, так и вне них. Например, Число, СправочникСсылка.<имя>, ГрафическаяСхема, ТабличныйДокумент и т. д.
Типы встроенного языка, предназначенные исключительно для того, чтобы представить в форме данные прикладных объектов (справочников, документов и т. д.). Это такие типы, как Дан- ныеФормыСтруктура, ДанныеФормыКоллекция и другие.
Отдельно следует упомянуть тип ДинамическийСписок, который используется в управляемых формах для отображения списков прикладных объектов.
Все типы прикладных объектов (такие как СправочникОбъект и т. д.) не существуют на стороне тонкого и веб-клиентов, они существуют только на сервере. Однако данные этих объектов нужно отображать в управляемых формах.
Поэтому для представления в форме данных этих прикладных типов введены специальные типы данных, предназначенные для работы именно в управляемых формах. Используются следующие типы данных:
ДанныеФормыСтруктура - содержит набор свойств произвольного типа. Свойствами могут быть другие структуры, коллекции или структуры с коллекциями. Таким типом представляется, например, в форме СправочникОбъект.
ДанныеФормыКоллекция - это список типизированных значений, похожий на массив. Доступ к элементу коллекции осуществляется по индексу или по идентификатору. Доступ по идентификатору может отсутствовать в некоторых случаях. Это обусловлено типом прикладного объекта, который представлен этой коллекцией. Идентификатором может быть любое целое число. Таким типом представляется, например, в форме табличная часть.
ДанныеФормыСтруктураСКоллекцией - это объект, который представлен в виде структуры и коллекции одновременно. С ним можно обращаться как с любой из этих сущностей. Таким типом представляется, например, в форме набор записей.
ДанныеФормыДерево - объект предназначен для хранения иерархических данных.
Прикладной объект представлен либо одним, либо несколькими элементами данных формы. В общем виде иерархия и состав данных формы зависят от сложности и взаимосвязи прикладных объектов управляемой формы.
Например, документ, содержащий табличную часть, будет представлен объектом типа ДанныеФормыСтруктура (собственно документ), которому подчинен объект типа ДанныеФормыКоллекция (табличная часть документа).
ВНИМАНИЕ!
Во время разработки конфигурации важно помнить, что прикладные объекты доступны только на сервере, в то время как объектами данных форм можно пользоваться и на сервере, и на клиенте.
Фактически можно сказать, что данные формы - это унифицированное представление данных различных прикладных объектов, с которыми форма работает единообразно и которые присутствуют и на сервере, и на клиенте.
В редакторе формы (у реквизитов формы) вместо имен этих типов обычно отображаются те прикладные типы, данные которых содержит реквизит.
Например, если реквизит Объект содержит данные элемента справочника Клиенты, то в колонке Тип отображается ненастоящий тип этого реквизита формы - ДанныеФормыСтруктура, а тип прикладного объекта, данные которого содержатся в этом реквизите - Справоч- никОбъект.Клиенты. Причем чтобы было понятно, что это «ненастоящий тип» реквизита, тип прикладного объекта показывается в круглых скобках.
Таким образом форма содержит некоторую «проекцию» данных прикладных объектов в виде своих собственных типов данных и автоматически выполняет преобразование между ними при необходимости.
Однако если разработчик конфигурации реализует свой алгоритм обработки данных, то преобразование данных (из специализированных типов в прикладные и обратно) он должен выполнять самостоятельно.
Для конвертирования прикладных объектов в данные формы и обратно существует набор глобальных методов:
ЗначениеВДанныеФормы() - преобразует объект прикладного типа в данные формы;
ДанныеФормыВЗначение() - преобразует данные формы в объект прикладного типа.
Аналогичные методы, предназначенные для конвертирования значений реквизитов формы в прикладные объекты и обратно, существуют и у самой управляемой формы:
ЗначениеВРеквизитФормы() - преобразует объект прикладного типа в реквизит управляемой формы;
РеквизитФормыВЗначение() - преобразует реквизит управляемой формы в значение прикладного типа.
Методы, работающие с прикладными объектами, доступны только в серверных процедурах формы.
При выполнении стандартных действий формы с основным реквизитом (открытие формы, выполнение стандартной команды Записать и т. д.) преобразование выполняется автоматически.
Приведем пример преобразования данных, которое может потребоваться в собственных алгоритмах.
Например, у нас есть особенная форма, в которой в качестве одного из реквизитов (ТоварДляМодификации) используются данные элемента справочника Товары. При создании формы на сервере мы по некоторому алгоритму определяем, какой именно это товар, и читаем его данные в реквизит формы. При этом используется преобразование данных ЗначениеВДанныеФормы(), листинг 27.1.
ОбъектТовар.Записать();
ОбъектТовар
= ДанныеФормыВЗначение(ТоварДляМодификации,
Тип(
"СправочникОбъект.Товары1'));
&НаСервере
Процедура
ЗаписатьНаСервере()
КонецПроцедуры
&НаСервере
Процедура
ПриСозданииНаСервере(Отказ,
СтандартнаяОбработка)
ОбъектТовар
=
Справочники.Товары.НайтиПоНаименованию(''Кофейник'').ПолучитьОбъектО;
ЗначениеВДанныеФормы(ОбъектТовар,
ТоварДляМодификации);
КонецПроцедуры
&НаКлиенте
Процедура
Записать()
ЗаписатьНаСервере();
КонецПроцедуры
В некоторый момент работы формы мы решаем, что измененные данные нашего товара необходимо записать в базу данных, и тогда выполняем обратное преобразование данных формы в прикладной объект (ДанныеФормыВЗначение()) и записываем его.
Как мы уже упомянули, у формы также есть методы, позволяющие преобразовать прикладные данные в реквизит формы и наоборот.
Использование данных методов обычно удобнее, так как они имеют, например, информацию о типе реквизита формы. Кроме этого, метод РеквизитФормыВЗначение() выполняет установку соответствия
данных формы и объекта, которая используется при формировании сообщений.
Приведем пример использования этих методов. В серверной процедуре формы мы получаем прикладной объект из реквизита формы и выполняем метод этого прикладного объекта Пересчитать(). Затем данные объекта, измененные в результате пересчета, преобразуем обратно в реквизит формы (листинг 27.2).
Листинг 27.2. Пример преобразования данных прикладных объектов в данные формы
&НаСервере
Процедура ПересчитатьНаСервере()
// Преобразует реквизит Объект в прикладной объект.
Документ = РеквизитФормыВЗначениеС'Объект");
// Выполняет пересчет методом, определенным в модуле документа.
Документ.Пересчитать();
// Преобразует прикладной объект обратно в реквизит.
ЗначениеВРеквизитФормы(Документ, "Объект");
КонецПроцедуры
Связанные списки
При создании прикладных решений часто возникает необходимость из какой-либо формы прикладного объекта перейти к информации, логически связанной с этим объектом.
Это может быть, например, список подчиненного справочника; регистры, в которых объект производит движения; регистры, где измерение с типом этого объекта указано как ведущее; критерии отбора, в которые входит этот тип; объекты, которые можно ввести на основании этого типа, и т. д.
Одним из распространенных примеров использования связанных списков является необходимость перейти из формы документа к списку движений, которые произвел этот документ в каком-либо регистре.
Все перечисленные ситуации платформа контролирует автоматически. На основании информации, содержащейся в объектах конфигурации, платформа автоматически создает в формах объектов
команды для перехода к связанной информации. Некоторые такие команды она сразу же делает видимыми, и они появляются в форме. Некоторые команды она только создает, но по умолчанию не включает их видимость.
Поэтому чаще всего, если в форме вы не видите команды перехода к связанной информации, которая должна быть, просто нужно включить ее видимость в интерфейсе формы.
Рассмотрим это на примере.
В режиме «Конфигуратор»
Для примера откроем форму документа ОказаниеУслуги. В левом верхнем окне перейдем на закладку Командный интерфейс.
В разделе Панель навигации в группе Перейти уже находится набор таких команд. Это команды перехода к записям регистров, для которых этот документ является регистратором.
Мы можем установить общую видимость для этих команд, а можем более точно настроить видимость этих команд для каждой отдельной роли, которая есть в нашей конфигурации (рис. 27.7).
В режиме «1С:Предприятие»
В режиме 1С:Предприятие откроем один из документов Оказание услуги (рис. 27.8).
«II.
+■
"м”
Оказание
услуги 000000003 от 11.07.2013 16:14:57
Главное
^Остатки
материалов
Продажи
Стоимость
материалов
Управленческий^
Пр°в
lee™
и
закрыть Записать
Провести
Печать
Ещв
-
Номер:
000000003
:
Дата:
111.07.2013
16:14:57 |и|
Склад:
(Основной
|
- | сР
|
Клиент:
|
Роман
IЧ
l°
Мастер:
|Симонов
Валерий
Михайлович
М
l°
|
ДобаЕ
-
ЕЩв
-
N
Номенклатура
Набор
свойст
Количест
Цена
■1
Подключение
электричества
(услуга)
1,000
800,00
BOO
00
2
Шланг
резиновый
(материал)
2.000
150.00
300,00
3
Кабель
электрический
(материал)
1,000
30,00
30,00
4
Ремонт
отечественного
телевизора
(ус
луга)
1,000
600,00
600,00
5
Строчный
трансформатор
GoldStar
(ыа
ериал)
1,000
400,00
400,00
6
Транзистор
Philips
2N2369
(материал)
2,000
7,00
14,00
Рис. 27.8. Документ «Оказание услуги № 3»
В панели навигации формы мы видим команды перехода к списку записей регистров, связанных с открытым документом.
Например, выполним команду Стоимость материалов и перейдем к движениям, которые произвел в этом регистре наш документ (рис. 27.9).
|
Найти...
| | Отменить
поиск
| | Еще
Период
4
Регистратор
| Н
м...
Материал
Стоимость
-
11.07.2013
16:14:57
Оказание
услуги
000000003...
1
Строчный
трансформатор
GoldStar
(материал)
270,00
-
11.07.2013
16:14:57
Оказание
услуги
000000003...
2
Транзистор
Philips
2N2369 (материал)
6.00
^
-
11.07.2013
16:14:57
Оказание
услуги
000000003...
3
Шланг
резиновый
(материал)
200,00
-
11.07.2013
16:14:57
Оказание
услуги
000000003...
4
Кабель
электрический
(материал)
20,00
Г*1
| <-
-»
| *
Оказание
услуги 000000003 от 11.07.2013 16:14:57
Главное
Остатки
материалов
Продажи
Стоимость
материалов^
Управленческий
Движения
по регистру Стоимость материалов
Оформление строк в форме списка
Одним из полезных свойств формы списка является возможность настройки оформления его строк. Для иллюстрации этой возможности мы воспользуемся формой списка справочника Номенклатура и придадим ей нестандартный вид.
В режиме «Конфигуратор»
Откроем в конфигураторе форму списка справочника Номенклатура и создадим обработчик события формы ПриСозданииНаСервере.
Внесем в него следующий текст (листинг 27.3).
Листинг 27.3. Обработчик события формы «При открытии»
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СписокСправочника = Элементы.Список;
// Задать режим отображения справочника.
СписокСправочника.Отображение = ОтображениеТаблицы.Список;
// Скрыть линии сетки.
СписокСправочника.ВертикальныеЛинии = Ложь;
СписокСправочника.ГоризонтальныеЛинии = Ложь;
КонецПроцедуры
В этой процедуре, выполняющейся при создании формы на сервере, мы сначала представляем список в виде обычного, а не иерархического списка. Это сделано для большей наглядности, чтобы материалы отображались вперемешку с услугами.
Затем мы скрываем линии, разделяющие колонки и строки таблицы списка.
Теперь настроим условное оформление строк списка. Для этого вызовем палитру свойств основного реквизита формы Список.
В строке Настройка списка нажмем Открыть (рис. 27.10).
Поскольку этот реквизит имеет тип ДинамическийСписок, который построен на основе системы компоновки данных, то мы можем настроить для него Отбор, Порядок, Группировку и УсловноеОформ- ление аналогично тому, как это делалось в отчетах.
Рис.
27.10. Вызов
настройки
динамического
списка
В открывшемся окне настройки динамического списка перейдем на закладку Условное оформление и нажмем кнопку Добавить в командной панели окна.
Сначала укажем Оформление для выделения полей.
Нажмем кнопку выбора в поле Оформление и установим сиреневый цвет фона (рис. 27.11).
Нажмем ОК. Затем укажем условие, при наступлении которого будет применяться оформление, то есть когда строки списка будут сиреневыми.
Нажмем кнопку выбора в поле Условие и в появившемся окне добавим Новый элемент отбора (рис. 27.12). Для этого нажмем кнопку Добавить и укажем в графе Левое значение - поле ВидНоменклатуры, в графе Вид сравнения - Равно, а в графе Правое значение выберем Перечисление.ВидыНоменклатры.Услуга.
Динамический
список О
X
Настройки
|
Щ-
Отбор
[* ||^Поряаок
| | |г5
Группировка
|г
^Условное
оформление
"|
^
К
♦
♦
| Подробно
|t
0
формление
У
словно
0формляемые
поля
0
Ц
вет
Фона
Су
Рис.
27.12. Настройка
условного
оформления
Нажмем ОК.
Таким образом, мы установили, что когда в списке номенклатуры будут отражаться услуги, эти строки будут выделены сиреневым фоном.
Поскольку мы хотим выделить полностью строки, а не отдельные поля списка, то список оформляемых полей можно оставить пустым. Нажмем ОК.
В режиме «1С:Предприятие»
Запустим «1С:Предприятие» в режиме отладки и откроем список номенклатуры.
Мы видим, что список имеет вид обычного неиерархического списка, услуги выделены сиреневым цветом, а также отсутствуют разделительные линии строк и колонок списка (рис. 27.13).
о
I
I
■*
\
☆
Номенклатура
Создать
|
Создать
группу
| | Нанта.. Отменить
поиск |
Еще
Наименование
4-
Код
Вид
номенклатуры
-
Диагностика
000000008
Услуга
=
Kaбель
электрический
000000007
Материал
□
Материалы
000000001
Подключение
воды
000000011
Услуга
Подключение
электричества
000000012
Услуга
ЁЭ
Прочее
000000016
Zj
Радиодетали
000000015
=
Ремонт
импортного
телевизора
000000010
Услуга
-
Ремонт
отечественного
телевизора
000000009
Услуга
Zj
Стиральные
машины
000000014
=
Строчный
трансформатор
GoldStar
000000004
Материал
-
Строчный
трансформатор
Samsung
000000003
Материал
Zj
Телевизоры
000000013
=
Транзистор
Philips
2N2369
000000005
Материал
Z3
Услуги
000000002
-
Шланг
резиновый
000000006
Материал
Рис. 27.13. Список номенклатуры с заданным оформлением
Рассмотрим также свойства пользовательских настроек списка, которые аналогичны для всех настроек динамического списка - Отбор, Порядок, Группировка и УсловноеОформление. Настройки динамических списков в платформе очень похожи на настройки отчетов, построенных с помощью системы компоновки данных.
В режиме «Конфигуратор»
По умолчанию в окне настроек (внизу на каждой из закладок: Отбор, Порядок, Группировка, УсловноеОформление) динамического списка в конфигураторе установлен флажок Включать в пользовательские настройки, а также свойство Режим редактирования установлено свойство Обычный (см. рис. 27.11).
Это значит, что пользователь может изменить заданное оформление списка, выполнив команду Еще ► Настроить список... При этом откроется окно настройки динамического списка, аналогичное окну пользовательских настроек отчетов, где он может задать свое условное оформление списка и/или другие настройки (см. рис. 27.15).
Если настройка требуется пользователю часто, то можно поместить настройку непосредственно в форме списка. Для этого нужно установить в окне настройки списка Режим редактирования в значение Быстрый доступ (рис. 27.14).
Рис.
27.14. Свойства
настроек
условного
оформления
В режиме «1С:Предприятие»
При открытии списка в режиме 1С:Предприятие мы увидим следующий результат (рис. 27.15).
Мы видим, что настройка условного оформления доступна пользователю в самой форме списка, сразу над списком номенклатуры. Кроме того, он может вызвать окно пользовательских настроек по команде Еще ► Настроить список... и редактировать там условное оформление и другие настройки списка.
А также (как и в отчетах) пользователь может изменить состав настроек (Еще ► Изменить состав настроек.) согласно своим предпочтениям. То есть перенести какие-то настройки из списка быстрых настроек в обычные и наоборот.
Свойства Включать в пользовательские настройки, Представление и Режим редактирования могут относиться как в целом к настройкам отбора, порядка, группировки и условного оформления динамического списка, так и к отдельным элементам этих настроек. Например, одна настройка отбора может быть включена в пользовательские настройки, а другая - нет. Свойства отдельных элементов настроек, если они заданы, имеют больший приоритет. Они задаются
по
команде Свойства элемента пользовательских
настроек нажатием соответствующей
кнопки над списком настроек.
Найти.
Создать
группу
Отменить
поис)
Наименование
Вид
номенклатур^
Диагностика
000000008
Кабель
злекгрический
000000007
Материал
Материалы
000000001
Подключение
водь
Настройка
списка - Оособие для начинающих [1
С:Предприятие]
Подключение
электричеств;
Настройка
списка
U
Прочее
С]
Радиодетали
Ремонт
импортного
телевиз
Сортировка:
Наименование
а
Ремонт
отечественного
тел<
Условное
оформление: Установлено
)альные
машины
=
Строчный
трансформатор
G
<=
Строчный
трансформатор
S
L3
Телевизоры
Транзистор
Philips
2N2369
Шланг
резиновый
Г
руппировка:
Завершить
редактирование
000000013
000000005
000000002
000000006
Материал
Материал
Рис. 27.15. Пользовательские настройки списка номенклатуры
Аналогичным образом можно настраивать условное оформление и для списков, источником которых является не динамический список, а другие типы данных. Например, условное оформление табличной части документа.
Но выполняется это уже с помощью условного оформления самой формы. То есть в дереве элементов формы нужно выделить корневой элемент и в палитре свойств открыть ссылку УсловноеОформление.
Если требуется выделить по некоторому условию полностью всю строку табличной части, то в список Оформляемые поля нужно добавить саму таблицу формы, содержащую табличную часть (например, Материалы), иначе нужно указать те поля таблицы, которые должны быть оформлены.
Вычисляемые колонки в списках
Необходимость вывода произвольных данных в колонках списка возникает, когда вместе с элементом списка нужно отобразить некоторую вычисляемую информацию.
Мы рассмотрим эту ситуацию на примере отображения актуальной цены в списке справочника Номенклатура.
Эти данные мы можем получить из таблицы регистра сведений Цены.СрезПоследних. Следовательно, поле Цена из этой таблицы нам нужно добавить в динамический список Список, который является основным реквизитом формы списка номенклатуры и служит источником данных для таблицы списка.
В режиме «Конфигуратор»
Откроем в конфигураторе форму списка справочника Номенклатура и вызовем палитру свойств основного реквизита формы Список.
До сих пор в свойствах динамического списка была указана Основная таблица - Справочник.Номенклатура (см. рис. 27.10), и список формировался путем запроса к этой таблице.
Теперь нам нужна еще связанная информация из таблицы регистра сведений Цены.СрезПоследних.
списка
нажмем (рис. 27.16).
Открыть
Рис.
27.16. Вызов
настройки
динамического
списка
Откроется окно настройки динамического списка. На закладке Запрос мы видим запрос, в котором выбираются все поля из таблицы Справочник.Номенклатура.
Изменим его. Для этого нажмем кнопку Конструктор запроса (рис. 27.17).
Рис.
27.17. Создание
произвольного
запроса
для
динамического
списка
Добавим в список таблиц Цены.СрезПоследних и выберем из нее поле Цена (рис. 27.18).
Рис.
27.18. Добавление
второй
таблицы
На закладке Связи отредактируем связь между таблицами, созданную по умолчанию.
Установим флажок Все у таблицы Справочник.Номенклатура и снимем его у таблицы Цены.СрезПоследних (рис. 27.19).
Рис.
27.19. Установка
связи
между
таблицами
Тем самым мы задаем, что в списке номенклатуры будут отражены все позиции, даже те, по которым не установлены цены.
Похожие действия мы уже выполняли на занятии № 13 «Отчеты» для отчета «Перечень услуг» на стр. 390.
Создание запроса закончено, нажмем ОК. Текст запроса нам уже знаком и понятен, поэтому не будем на нем останавливаться.
Теперь колонка Цена, содержащая актуальную цену, будет отображаться в списке номенклатуры, когда мы поместим ее в форму списка.
В окне настройки динамического списка перейдем на закладку Настройки и зададим условное оформление этой колонки так, чтобы низкие цены выделялись цветом.
Для этого перейдем на закладку Условное оформление. Там мы видим созданное нами ранее условное оформление для строк списка. Нажмем кнопку Добавить в командной панели окна.
Сначала укажем Оформление для выделения полей. Нажмем кнопку выбора в поле Оформление и установим синий цвет текста.
Затем укажем условие, при наступлении которого будет применяться оформление, то есть когда текст в колонке Цена будет синим.
Нажмем кнопку выбора в поле Условие и в появившемся окне добавим Новый элемент отбора (рис. 27.20). Для этого нажмем кнопку Добавить и укажем в графе Левое значение - поле Цена, в графе Вид сравнения - Меньше, а в графе Правое значение выберем 500.
Затем укажем список оформляемых полей. Нажмем кнопку выбора в поле Оформляемые поля, затем нажмем Добавить и выберем поле Цена (рис. 27.20).
Рис.
27.20. Настройка
условного
оформления
динамического
списка
Нажмем ОК. Теперь нам осталось только перетащить поле Цена из окна реквизитов в окно элементов формы (рис. 27.21).
Рис.
27.21. Добавление
колонки
в
форму
списка
Теперь зададим отдельно свойства для каждого созданного нами элемента настроек условного оформления.
Для этого выделим каждую настройку и нажмем кнопку Свойства элемента пользовательских настроек над списком настроек. У обеих
Динамический
список
В
Запрос
| [ tjH
Настройки
pj^
Отбор
|
Порядок
| |у5;
Группировка Условное
оформление
®
SC
Ф
#
I Подробно!
Оформление
Условие
^^Номенклатуры
Равно
"Перечисл..
|
Оформляемые
настроек
установим флажок Включать в пользовательские
настройки. Зададим представление первой
настройки как Услуги, второй - Низкая
цена, а свойство Режим редактирования
оставим без изменения в значении Быстрый
доступ. Аналогичное свойство для настроек
условного оформления в целом (внизу
окна) вернем к значению Обычный (рис.
27.22).
текста
Пользовательские настройки элемента
