Занятие 28 871
В открывшемся окне конструктора формы выберем тип формы Произ-
вольная форма и зададим имя формы ФормаДляРедактирования (рис. 28.9).
Рис. 28.9. Создание произвольной формы документа
Нажмем Готово.
В открывшемся редакторе формы мы видим, что кроме командной панели со стандартным подменю Еще в форме больше ничего нет. Так и должно быть. Ведь форма – произвольная, и сейчас мы начнем наполнять ее данными и элементами по своему усмотрению.
На закладке Реквизиты создадим реквизит формы с именем Докумен-
тОбъект и типом ДокументОбъект.ОказаниеУслуги. И обязательно укажем, что реквизит будет основным, установив флажок Основной реквизит (рис. 28.10).
Рис. 28.10. Окно редактора формы
872 1С:Предприятие 8.3. Практическое пособие разработчика
Сразу после установки основного реквизита формы в окне предварительного просмотра в командной панели формы появляются кнопки для выполнения стандартных действий с документами (Провести
и закрыть, Записать, Провести и т. п.).
После установки основного реквизита формы нам становятся доступны для редактирования в форме данные объекта Документ ОказаниеУслуги. Нужно только связать эти данные с элементами формы, в которых они будут отображаться. Проще всего это сделать путем перетаскивания реквизитов в окно элементов формы. При этом связь элементов с отображаемыми данными будет установлена автоматически в свойстве элементов формы ПутьКДанным.
В окне реквизитов раскроем основной реквизит ДокументОбъект и последовательно перетащим в окно элементов формы реквизиты документа Номер, Дата, Склад, Клиент, Мастер. В форме будут созданы соответствующие поля ввода для отображения этих данных. Однако стандартно они размещаются друг под другом, как и в форме, созданной конструктором (рис. 28.11).
Рис. 28.11. Окно редактора формы
Занятие 28 873
В соответствии с нашим планом по переделке стандартной формы разобьем информацию на смысловые группы.
Первым делом мы хотим, чтобы стандартные реквизиты документа Дата и Номер были объединены в отдельную группу, выделялись бы цветом фона и располагались бы не друг под другом, а горизонтально.
Для этого в окне элементов формы нажмем Добавить и создадим группу типа Обычная группа без отображения. Мы выбрали этот тип группы, а не Обычная группа, так как нам не нужно особым образом выделять группу (она будет выделена цветом фона) и давать ей заголовок (рис. 28.12).
Рис. 28.12. Добавление новой группы в форму
В палитре свойств группы установим ее свойство Группировка
в значение Горизонтальная, снимем флажок РазрешитьИзменениеСо-
става и зададим для группы ЦветФона (рис. 28.13).
Перетащим в эту группу поля Номер и Дата, а саму группу расположим вверху формы после командной панели. В окне предварительного просмотра в нижней части редактора формы мы сразу же увидим результат сделанных изменений (рис. 28.14).
874 1С:Предприятие 8.3. Практическое пособие разработчика
Рис. 28.13. Палитра свойств группы
Рис. 28.14. Окно редактора формы
Занятие 28 875
Таким образом, взгляд пользователя сразу будет падать на выделенную цветом группу, в которой горизонтально расположены номер и дата документа. А также мы запретили пользователю менять состав элементов этой группы в режиме 1С:Предприятие, сняв флажок РазрешитьИзменениеСостава. Кроме того, форма стала более компактной в высоту за счет расположения двух полей ввода на одной строке.
Теперь нам нужно добавить в форму более детальную информацию о клиенте, которому оказывались услуги. Например, это может быть адрес клиента, телефон, e-mail и т. п. При этом требуется сделать просмотр этих данных опциональным, чтобы блок с информацией можно было свернуть или развернуть по желанию пользователя. Опять же из соображений компактности нужно, чтобы группа с дополнительной информацией изначально была свернута.
Добавить в форму реквизиты ссылочного реквизита очень просто. Реквизит документа Клиент имеет тип ссылки на справочник Клиенты. Поэтому в окне редактора формы документа мы можем раскрыть реквизит Клиент и перетащить в форму необходимые нам реквизиты справочника Клиенты. Перетащим в окно элементов формы реквизит справочника Адрес. Путь к данным этого «реквизита реквизита» будет указан через точку – ДокументОбъект.Клиент.Адрес. Кроме того, поместим поле Склад последним в списке полей (рис. 28.15).
Рис. 28.15. Окно редактора формы
876 1С:Предприятие 8.3. Практическое пособие разработчика
Затем создадим еще одну свертываемую группу для просмотра адреса (и другой дополнительной информации) клиента. Для этого в окне элементов формы нажмем Добавить и создадим группу типа Обычная группа. В палитре свойств группы установим ее свойства:
Заголовок – Скрыть информацию о клиенте, Поведение – Свертываемая, ЗаголовокСвернутогоОтображения – Показать информацию
о клиенте, Отображение – Нет
и установим флажок Свернута
(рис. 28.16).
Рис. 28.16. Палитра свойств группы
Перетащим в эту группу поле КлиентАдрес, а саму группу расположим после поля Клиент. В окне предварительного просмотра формы мы видим результат сделанных изменений. Правда, здесь группа развернута и имеет заголовок «Скрыть информацию о клиенте», а при открытии формы в режиме 1С:Предприятие группа с дополнительной информацией будет свернута под заголовком «Показать информацию о клиенте», так как мы установили в свойствах группы флажок Свернута (рис. 28.17).
Таким образом, чтобы группа была свертываемой, нужно установить свойство Поведение этой группы в значение Свертываемая и, кроме того, указать либо заголовок (и/или заголовок в свернутом виде), либо картинку, в зависимости от значения свойства ОтображениеУправления. Это свойство стандартно установлено в значение
Гиперссылка заголовка.
Рис. 28.17. Окно редактора формы
Таким образом, в режиме 1С:Предприятие пользователь по своему желанию может отобразить или скрыть дополнительную информацию о клиенте, нажимая на заголовок группы.
Теперь объединим в одну группу поле Склад и команду для открытия отчета Материалы с отбором по складу, указанному
вданном поле. Эту команду мы создали на предыдущем занятии
вразделе «Использование параметризованных команд» на стр. 851. Нам кажется, что это будет вполне логичным и удобным.
Для этого в окне элементов формы нажмем Добавить и создадим группу типа Обычная группа без отображения. В палитре свойств группыустановимеесвойствоГруппировка взначениеГоризонтальная. Затем перетащим в эту группу поле Склад и глобальную параметризуемую команду ОстаткиПоСкладу, а саму группу расположим после поля Мастер. Посмотрим на результат сделанных изменений в окне предварительного просмотра формы (рис. 28.18).
На этом этапе проверим результат работы в режиме 1С:Предприятие. Для этого сначала установим нашу произвольную форму в качестве основной формы документа ОказаниеУслуги.
878 1С:Предприятие 8.3. Практическое пособие разработчика
Рис. 28.18. Окно редактора формы
Для этого на закладке Формы окна редактирования этого объекта конфигурации нажмем кнопку выбора в поле Форма документа и выберем созданную нами форму с именем ФормаДляРедактирования
(рис. 28.19).
Рис. 28.19. Установка основной формы документа
Занятие 28 879
В режиме «1С:Предприятие»
Запустим «1С:Предприятие» в режиме отладки и откроем любой из документов Оказание услуги. Внешний вид формы документа в точности соответствует нашим пожеланиям (рис. 28.20).
Рис. 28.20. Форма документа в режиме «1С:Предприятие»
Однако мы видим не всю информацию: здесь не отображена табличная часть документа. Вернемся в конфигуратор, поместим в форму документа табличную часть и немного усовершенствуем ее внешний вид.
В режиме «Конфигуратор»
Прежде чем добавить в форму табличную часть, с помощью панели со страницами разделим форму на две большие части. Добавим в форму панель с двумя страницами, на одной из которых будут располагаться основные реквизиты документа
(Номер, Дата, Клиент и т. п.),
а на другой – таблица со списком оказанных услуг.
Для этого в окне элементов формы нажмем Добавить и создадим группу типа
Страницы (рис. 28.21).
Рис. 28.21. Добавление в форму группы страниц
8801С:Предприятие 8.3. Практическое пособие разработчика
Впалитре свойств этой группы зададим ее имя Панель. Затем выделим эту группу в дереве элементов формы и добавим в нее еще одну группу типа Страница (рис. 28.22).
Рис. 28.22. Добавление страницы в группу страниц
Дадим ей имя ОсновнаяИнформация. Аналогичным образом добавим в группу страниц Панель еще одну страницу с именем СписокУслуг.
ВНИМАНИЕ!
При нажатии кнопки Добавить в командной панели дерева элементов формы новый элемент (в данном случае группа) будет подчинен тому элементу формы, который выделен в данный момент.
Теперь мышью перетащим в группу ОсновнаяИнформация все ранее созданные нами элементы формы (Группа1, Клиент, Группа2, Мастер, Группа3). Окно редактора формы примет следующий вид
(рис. 28.23).
Однако в окне предварительного просмотра формы в панели страниц мы не видим пока страницы Список услуг. Так происходит потому, что мы еще не добавили в эту группу ни одного элемента.
В окне реквизитов формы раскроем реквизит ДокументОбъект, найдем табличную часть ПереченьНоменклатуры и перетащим ее в окно элементов формы в группу СписокУслуг. Подтвердим, что мы хотим добавить в форму все колонки табличной части. В панели страниц сразу же появится страница Список услуг, содержащая таблицу с данными табличной части (рис. 28.24).