Разработка произвольной формы для редактирования документа "Оказание услуги"
страницаРазработка произвольной формы для редактирования документа «Оказание услуги»
В режиме «Конфигуратор»
У нас в конфигурации уже существует основная форма документа ОказаниеУслуги. Эта форма была создана еще на четвертом занятии в разделе «Форма документа» с помощью конструктора формы (рис. 28.7).

Рис. 28.7. Форма документа «ОказаниеУслуги» в редакторе формы
Как мы видим, все реквизиты документа и его табличная часть просто последовательно следуют друг за другом. Конечно, это не мешает пользователю вносить информацию в документ и редактировать ее в этой форме. Однако нельзя сказать, что работать с такой формой очень комфортно.
При взгляде на форму пользователь может потеряться среди обилия полей и колонок, так как информация в форме не структурирована. Кроме того, расположение всех элементов редактирования друг за другом делает форму довольно громоздкой, особенно при наличии большой табличной части.
Для того чтобы улучшить дизайн формы и удобство работы с ней, нужно сконцентрировать внимание пользователя на определенных группах информации, выделить наиболее важные из них, структурировать вводимые данные по смыслу и сделать форму более компактной.
Для решения этих задач мы разработаем форму для редактирования документа ОказаниеУслуги с нуля. Попутно мы освоим (или повторим) основные приемы разработки форм:
- как добавить в форму основной реквизит;
- как добавить элементы формы, связанные с данным реквизитом;
- как объединить элементы формы в группы;
- как задать свойства группы и сделать группу свертываемой;
- как добавить в форму группу страниц;
- как добавить в форму табличную часть и выделить ее строки по условию;
- как вывести итог по колонке табличной части.
Итак, начнем.
Откроем окно редактирования объекта Документ ОказаниеУслуги и на закладке Формы нажмем кнопку Добавить над списком форм (рис. 28.8).

Рис. 28.8. Создание формы документа
В открывшемся окне конструктора формы выберем тип формы Произвольная форма и зададим имя формы ФормаДляРедактирования (рис. 28.9).

Рис. 28.9. Создание произвольной формы документа
Нажмем Готово.
В открывшемся редакторе формы мы видим, что кроме командной панели со стандартным подменю Еще в форме больше ничего нет. Так и должно быть. Ведь форма - произвольная, и сейчас мы начнем наполнять ее данными и элементами по своему усмотрению.
На закладке Реквизиты создадим реквизит формы с именем ДокументОбъект и типом ДокументОбъект.ОказаниеУслуги. И обязательно укажем, что реквизит будет основным, установив флажок Основной реквизит (рис. 28.10).

Рис. 28.10. Окно редактора формы
Сразу после установки основного реквизита формы в окне предварительного просмотра в командной панели формы появляются кнопки для выполнения стандартных действий с документами (Провести и закрыть, Записать, Провести и т. п.).
После установки основного реквизита формы нам становятся доступны для редактирования в форме данные объекта Документ ОказаниеУслуги. Нужно только связать эти данные с элементами формы, в которых они будут отображаться. Проще всего это сделать путем перетаскивания реквизитов в окно элементов формы. При этом связь элементов с отображаемыми данными будет установлена автоматически в свойстве элементов формы ПутьКДанным.
В окне реквизитов раскроем основной реквизит ДокументОбъект и последовательно перетащим в окно элементов формы реквизиты документа Номер, Дата, Склад, Клиент, Мастер. В форме будут созданы соответствующие поля ввода для отображения этих данных. Однако стандартно они размещаются друг под другом, как и в форме, созданной конструктором (рис. 28.11).

Рис. 28.11. Окно редактора формы
В соответствии с нашим планом по переделке стандартной формы разобьем информацию на смысловые группы.
Первым делом мы хотим, чтобы стандартные реквизиты документа Дата и Номер были объединены в отдельную группу, выделялись бы цветом фона и располагались бы не друг под другом, а горизонтально.
Для этого в окне элементов формы нажмем Добавить и создадим группу типа Обычная группа без отображения. Мы выбрали этот тип группы, а не Обычная группа, так как нам не нужно особым образом выделять группу (она будет выделена цветом фона) и давать ей заголовок (рис. 28.12).

Рис. 28.12. Добавление новой группы в форму
В палитре свойств группы оставим без изменения свойство Группировка в значении Горизонтальная если возможно (это значение по умолчанию, и нас это устраивает), снимем флажок РазрешитьИзменениеСостава и зададим для группы ЦветФона (рис. 28.13).

Рис. 28.13. Палитра свойств группы
Перетащим в эту группу поля Номер и Дата, а саму группу расположим вверху формы после командной панели. В окне предварительного просмотра в нижней части редактора формы мы сразу же увидим результат сделанных изменений (рис. 28.14).

Рис. 28.14. Окно редактора формы
Таким образом, взгляд пользователя сразу будет падать на выделенную цветом группу, в которой горизонтально расположены номер и дата документа. А также мы запретили пользователю менять состав элементов этой группы в режиме 1С:Предприятие, сняв флажок РазрешитьИзменениеСостава. Кроме того, форма стала более компактной в высоту за счет расположения двух полей ввода на одной строке.
Теперь нам нужно добавить в форму более детальную информацию о клиенте, которому оказывались услуги. Например, это может быть адрес клиента, телефон, e-mail и т. п. При этом требуется сделать просмотр этих данных опциональным, чтобы блок с информацией можно было свернуть или развернуть по желанию пользователя. Опять же из соображений компактности нужно, чтобы группа с дополнительной информацией изначально была свернута.
Добавить в форму реквизиты ссылочного реквизита очень просто. Реквизит документа Клиент имеет тип ссылки на справочник Клиенты. Поэтому в окне редактора формы документа мы можем раскрыть реквизит Клиент и перетащить в форму необходимые нам реквизиты справочника Клиенты. Перетащим в окно элементов формы реквизит справочника Адрес. Путь к данным этого «реквизита реквизита» будет указан через точку - ДокументОбъект.Клиент.Адрес. Кроме того, поместим поле Склад последним в списке полей (рис. 28.15).

Рис. 28.15. Окно редактора формы
Затем создадим еще одну свертываемую группу для просмотра адреса (и другой дополнительной информации) клиента. Для этого в окне элементов формы нажмем Добавить и создадим группу типа Обычная группа. В палитре свойств группы установим ее свойства: Группировка - Вертикальная, Заголовок - Скрыть информацию о клиенте, Поведение - Свертываемая, ЗаголовокСвернутогоОтображения - Показать информацию о клиенте, Отображение - Нет и установим флажок Свернута (рис. 28.16).

Рис. 28.16. Палитра свойств группы
Перетащим в эту группу поле КлиентАдрес, а саму группу расположим после поля Клиент. В окне предварительного просмотра формы мы видим результат сделанных изменений. Правда, здесь группа развернута и имеет заголовок «Скрыть информацию о клиенте», а при открытии формы в режиме 1С:Предприятие группа с дополнительной информацией будет свернута под заголовком «Показать информацию о клиенте», так как мы установили в свойствах группы флажок Свернута (рис. 28.17).

Рис. 28.17. Окно редактора формы
Таким образом, чтобы группа была свертываемой, нужно установить свойство Поведение этой группы в значение Свертываемая и, кроме того, указать либо заголовок (и/или заголовок в свернутом виде), либо картинку, в зависимости от значения свойства ОтображениеУправления. Это свойство стандартно установлено в значение Гиперссылка заголовка.
Таким образом, в режиме 1С:Предприятие пользователь по своему желанию может отобразить или скрыть дополнительную информацию о клиенте, нажимая на заголовок группы.
Теперь объединим в одну группу поле Склад и команду для открытия отчета Материалы с отбором по складу, указанному в данном поле. Эту команду мы создали на предыдущем занятии в разделе «Использование параметризованных команд». Нам кажется, что это будет вполне логичным и удобным.
Для этого в окне элементов формы нажмем Добавить и создадим группу типа Обычная группа без отображения. В палитре свойств группы установим ее свойство Группировка в значение Горизонтальная если возможно. Затем перетащим в эту группу поле Склад и глобальную параметризуемую команду ОстаткиПоСкладу, а саму группу расположим после поля Мастер. Посмотрим на результат сделанных изменений в окне предварительного просмотра формы (рис. 28.18).

Рис. 28.18. Окно редактора формы
На этом этапе проверим результат работы в режиме 1С:Предприятие. Для этого сначала установим нашу произвольную форму в качестве основной формы документа ОказаниеУслуги.
Для этого на закладке Формы окна редактирования этого объекта конфигурации нажмем кнопку выбора в поле Форма документа и выберем созданную нами форму с именем ФормаДляРедактирования (рис. 28.19).

Рис. 28.19. Установка основной формы документа