Как назначить форму основной в 1с
Перейти к содержимому

Как назначить форму основной в 1с

Вирус скуки

в версии 8.3 книги есть 28 глава, Приемы редактиварования форм.

Можно прочесть в эл. виде в учебной сборке.

А можно выгрузку данных?

Жесть, как ты это все осилил, я дошел только до 24 главы и все, руки опустились, я не помню что уже было пару глав назад. Как это все в себя запхать. Автору спасибо за проделанную работу, очень помог с ответами, т.к. многие ответы не очень явно даны в книге

Пишите вопросы, мб сделаю пост типа для новичков.
А по факту просто начинаешь работать, а нужные вопросы гуглишь по ходу работы. В отрыве от действительности учить реально тяжело

Как назначить форму основной в 1с

Требуется для просмотра Flash Player 9 или выше.

И снова здравствуйте!

Прошлая глава закончилась нежданно-негаданно на самом интересном месте, а именно на понятии «формы справочника«. Попробуем разобраться с назначением форм, причем не обязательно именно справочника, суть и назначение формы касаются всех объектов конфигурации, имеющих формы (от автора: «Как-то запутанно у меня все получилось…»)

Итак, если совсем по-простому, то форма – это интерфейс для ввода данных пользователем в систему. Например, ранее мы создали реквизит «Ответственное лицо» для справочника «Склады», мы долго рассуждали над его свойствами, но ни слова не сказали о том, как же этот реквизит будет заполняться пользователем. Теперь можем с легкостью ответить: «Для того чтобы дать возможность ввести значение реквизита – его необходимо поместить на форму». Будем пробовать? Думаю что да, но перед этим давайте познакомимся с видами форм и влиянием их на вид справочника.

Вернемся к нашей закладке

Глава 3. Продолжаем мучить справочники.

В самом верху мы с Вами можем увидеть две группы свойств форм: Редактирование и Выбор. Эти свойства задаются разработчиком и влияют на поведение редактирования данных справочника. Мы с Вами вернемся к ним после того, как познакомимся с формами списка и выбора.

Формы списка и выбора

По своей сути – это таблица, состоящая из данных справочника. Колонками в этой таблице могут быть реквизиты справочника и системные поля (Код, Наименование, Картинка, Родитель, Пометка удаления и предопределенный). Каждая строка таблицы – это ссылка на конкретный элемент справочника. Формы списка и выбора могут дополняться деревом групп справочника, но применимо данное чудо только для иерархических справочников (надеюсь еще помните что это…). Давайте попробуем создать форму нашего справочника.

Сделать это проще простого- необходимо в окне форм добавить новый элемент

alt

Или нажать на кнопку лупы напротив интересующей нас основной формы

alt

Разницы в этих способах никакой, все зависит от дальнейших настроек добавления формы. Жмем на любую из предложенных кнопок и смотрим что еще нам предложит система.

alt

А предложить системе есть что… Для начала необходимо определиться с типом формы, а именно:

  • Форма списка – таблица элементов справочника. Каждая строка – это ссылка. Таблица элементов справочника содержит ссылки только на текущий справочник.
  • Форма выбора – та же форма списка, но дополненная режим выбора. То есть при нажатии кнопки «Выбрать» или двойном щелчке форма вернет значение выбранной ссылки в элемент из которого данная форма открывалась.
  • Форма выбора группы – используется в случае необходимости выбора ТОЛЬКО группы. В данном случае элементы, не являющиеся группами (или папками) не будут отображаться.
  • Форма элемента – это форма, которая будет содержать на себе неограниченное количество реквизитов и табличных частей как принадлежащих справочнику, так и связанных данных (например, регистры сведений, подчиненные справочники и т.д.). Использование формы элемента у справочника объясняется удобством редактирования данных. Согласитесь, что если справочник содержит 50 реквизитов, то прокрутить 50 колонок будет не очень удобно. Поэтому в таких случаях выносят на форму списка только основные реквизиты, а все реквизиты размещают на форме элемента, которая может биться на закладки, панели и т.д.
  • Форма группы – принцип такой же как и у формы элемента, но отрываться она будет только в том случае, если справочник иерархический и текущая ссылка – группа.
  • Произвольная форма – форма, которая может содержать в себе абсолютно любые сведения, данные, реквизиты и т.д. Недостаток такой формы – это отсутствие привязки к данным справочника, в то время как все остальные формы связаны напрямую с конкретным элементом справочника или списком оных.

В нашем случае мы выберем «Форма списка справочника» и перейдем к флажкам ниже. Флажок «Назначить форму основной» поможет нам избавиться от самостоятельной ручной установки значения основной формы списка на предыдущем этапе. В свою очередь флажок «Основная форма списка и выбора» поможет установить еще и основную форму выбора (конечно же, если мы этого захотим). Ниже следующий флажок «Основная форма элемента и группы» тоже призвана экономить нам пару кликов мышкой, но в случае добавления формы элемента или группы. Хочу сразу отметить, что понятие «Основная форма» сродни «Форма по умолчанию». На практике программист может обращаться к любой форме и подменять основные формы на свое усмотрение. Поэтому переживать особо не стоит.

Далее зададим Имя нашей форме. Имя формы используется для непосредственного обращения или получения формы. Например, если мы захотим подменить какую-либо форму справочника, нам необходимо всего лишь знать имя желаемой формы и иметь немного навыков в конфигурировании.

Важно: имена форм не могут повторяться.

Меня, к примеру, всегда устраивало имя по умолчанию для форм нового справочника. Вы же как пожелаете.

Синоним отвечает за представление создаваемой формы в пользовательском режиме (хотя на практике нигде такого сочетания на форме списка не встречал). Комментарий используется для разработчиков (дабы помечать свои деяния).

Флажки «Командная панель сверху» и «Командная панель снизу» определяют будут ли добавлены панели управления формой списка или нет. Панель управления – это набор кнопок, отвечающих за: добавление новых элементов, удаление, изменение, сортировку, произвольные действия заложенные разработчиком и т.д. Каждый определяет стиль форм по своему, но хорошим тоном считается командная панель над таблицей.

Жмем далее и переходим к следующему этапу.

alt

На этом этапе мы будем определяться с реквизитным составом на форме. В колонке реквизиты мы должны отобрать те, которые хотим видеть и отметить их флажками. Дерево – на любителя – воде как удобно, но занимает место на форме. А в наше время работа на ноутбуке или нетбуке с диагональю 8-10 дюймов не редкость. Поэтому решайте сами. Колонка «Элементы формы» позволит настроить элементы управления для Ваших реквизитов. Что мне нравится так это почти 100% адаптация настроек по умолчанию под требуемые разработчику.

Примечание: настройка «располагать элементы управления в 1 колонку» для форм списка и выбора не имеет смысла, поэтому я о ней умолчал. А вообще она позволяет выстроить добавляемые на форму реквизиты в колонки числом, указанным в данном параметре.

Я настроил форму как показано на рисунке выше, а Вам рекомендую поэкспериментировать с настройками после чего нажать кнопку «Готово».

Глава 3. Продолжаем мучить справочники.

Вот она наша форма, в которой мы можем увидеть все элементы справочника склады. Давайте сохраним наши изменения и запустим предприятие для созерцания нашей формы и добавления первого элемента. Сохранение – сочетание клавиш Ctrl + S , запуск предприятия Ctrl + F 5. При этом система спросит о необходимости обновления конфигурации.

alt

Соглашаемся и ждем пока запустится предприятие.

Интерфейс пока никакущий, но мы будем работать в этом направлении. Жмем пункт меню «Операции», в нем находим «Справочники»

alt

И в открывшемся списке выбираем интересующий нас (думаю, Вы не промахнетесь ). После выбора справочника сразу откроется форма списка данного типа – такое вот предназначение у формы списка. У нас пока нет элементов, поэтому мы это дело поправим. Нажмите на кнопку добавления нового элемента

alt

И что мы видим? Открылась еще одна форма. Это и есть форма элемента. Откуда она взялась? Все очень просто – при отсутствии какой-либо формы система генерирует автоматически специальную форму, которая будет использоваться в качестве основной. Плюс такой формы – она не требует никаких усилий от разработчика. Минусы – реквизиты будут расположены так, как будто 1С не дружит с линейками вообще. Поля буду ориентироваться на размерность реквизита по типу. Еще один минус – это полное отсутствие возможности управления поведением формы. Например, у физически созданной формы разработчик может определять правила поведения при некоем событии (открытие, закрытие, обновление и т.д.), может задавать правило доступности и видимости элементов управления и т.д. А это поверьте, очень важные свойства.

Но коли мы уже добавили элемент, то внесем его первый-родимушку в базу. Заполним наименование и все. Обратите внимание, код уже был присвоен – сказалась автонумерация. Жмем «ОК» дабы подтвердить изменения и запись элемента.

Больше нам пока в предприятии нечего делать. Закроем его и вернемся к нашей разработке. Открываем нашу закладку с формами. Я предлагаю Вам самостоятельно создать все основные формы по образу и подобию. После чего вернуться к рассмотрению свойств редактирования и выбора.

Редактирование – отвечает за режим редактирования данных на формах списка и выбора. Могут быть три варианта:

  • В списке – это означает, что в момент добавления нового элемента справочника или изменения существующего форма элемента не будет открыта. Изменение данных будет производиться непосредственно в строке таблицы.
  • В диалоге– это означает обратный вариант: в момент добавления нового элемента справочника или изменения существующего будет открыта форма элемента, а изменение данных непосредственно в строке таблицы будет невозможным.
  • Обоими способами – смешанный вариант, на форме появится кнопка переключения режима редактирования (можно будет редактировать и так, и так)

Выбор – данное свойство справочника позволяет настроить режим выбора данных в элементах управления имеющих тип данного справочника. Это значит, что все объекты конфигурации, ссылающиеся на справочник «Склады» при попытке выбора значения будут подчиняться именно той стратегии выбора, какую мы зададим в данном свойстве.

  • Из формы – системой автоматически будет открыта основная форма выбора и уже из нее мы будем выбирать интересующий нас элемент.
  • Быстрый выбор – форма выбора открываться не будет. При попытке нажать на кнопку выбора будет выведен список существующих элементов.
  • Обоими способами – разработчик будет иметь возможность дать выбор как списком, так и через форму выбора. Регулируется кнопками для элемента управления.

Пример выбора через список

Глава 3. Продолжаем мучить справочники.

Пример выбора через форму

Глава 3. Продолжаем мучить справочники.

Последнее неописанное свойство на данной закладке – это «Ввод по строке». Данное свойство определяет подбор ссылки «для ленивых». Например, я по своей сути очень ленивый и лишние движения мышкой меня иногда напрягают. Для того чтобы выбрать ссылку на интересующий справочник я обычно не жму на кнопку выбора, а ввожу текст прямо в элемент управления. Именно здесь и срабатывает свойство «Ввод по строке».

Давайте снова рассмотрим пример. У нас есть справочник «Склады». В нем имеются реквизит «Ответственное лицо» и системные поля Код и Наименование.

Допустим, в режиме предприятия у нас есть элемент справочника со следующими значениями полей:

Код – 001, Наименование – Оптовый склад, Ответственное лицо – Иванов И.И.

Я хочу выбрать данный склад из другого справочника или документа. Для этого я могу воспользоваться формой выбора или ввести текст в элемент управления. Какой текст вводить? Любой текст из полей, которые указаны во вводе по строке в конфигураторе. То есть, если я введу текст «001» или «Оптовый склад» (допустим неполный ввод текста ) я получу ссылку на искомый склад, а если введу «Иванов», то ничего не получу кроме сообщения о некорректных данных. Для того чтобы я мог найти ссылку и по ответственному лицу – необходимо добавить его в настройку «Ввод по строке».

Вот так вот. Пока всё. Рекомендую посмотреть созданные формы и попробовать в них что-либо поменять самостоятельно. Например, цвет, шрифт и т.д.

Формы

Формы используются для удобного отображения данных базы пользователю. С формами можно работать как пользователь интерактивно, так и программист управляя поведением и внешним видом формы с помощью кода.

Типы форм

Формы делятся на два типа: обычные и управляемые, обычные формы это формы которые были в линейке 8 с самого начала и по текущий момент. Смысл этих форм заключается в том что форма в прямом смысле рисуется разработчиком, он указывает на то место (вплоть до пикселя)где будут располагаться элементы формы. Обычные формы работают только в толстом клиенте, в то время когда управляемые формы работают и в толстом и в тонком клиенте. Управляемые формы доступны в версии 1С начиная с 8.2 и выше и только когда конфигурация настроена как "Управляемое приложение". В тонком клиенте возможно использование только управляемых форм. Управляемую форму нельзя нарисовать мышкой. Элементы в ней не рисуются, а декларируются или объявляются, что накладывает некоторые ограничения. Вы можете указать что реквизиты будут группироваться горизонтально а не вертикально к примеру, но нельзя указать системе: "вон то поле ввода на 2пикселя выше пусть будет". В управляемых формах код делится строго на клиентский и серверный. В обычных формах можно встретить некоторые серверные ограничения только в режиме клиент-сервер и только для функций которые не расположены в модулях форм.

Программное открытие формы

Программно открыть форму можно с помощью метода "Открыть форму". Этот метод доступен в различных контекстах(форма может существовать и быть открыта только на клиенте) и отличается при использовании обычного и управляемого приложения(в толстом клиенте нельзя передать параметру в форму) но в целом имеет следующие основные параметры: ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>)

Принадлежность форм

Формы могут общими(принадлежать к общим формам) или принадлежать определенному виду объектов, например справочнику номенклатура. Если формы принадлежат какому то виду объекта то они могут быть специального типа: например форма списка, эту форму можно использовать для того, что бы просмотреть список документов или форма документа, эту форму можно использовать для редактирования документа. Здесь мы говорим, «можно использовать» так как когда мы щелкаем по документу в списке или когда мы открываем список документов, будет открываться та форма, которая назначена основной. Если основная форма не назначена, при открытии форма будет сгенерирована, вне зависимости от того есть ли в списке форм, форма нужного вида. По сути форма это просто набор полей и кнопок, Форма выбора , форма списка и форма элемента могут отличаться друг от друга только основным реквизитом, который и служит идентификатором для платформы. Основными реквизитами у форм документа и у элемента справочника являются СправочникОбъект и ДокументОбъект . Для форм выбора и форм списка обычного приложения это СправочникСписок.ВидСправочника и ДокументСписок.ВидДокумента . У управляемого приложения у форм выбора и форм списка основной реквизит ДинамическийСписок . Форма выбора отличается от формы списка установленным свойством Режим выбора у основного реквизита. Если форма принадлежит справочнику\документу то для них доступны следующие типы:

Разница между элементами формы, и реквизитами объекта.

Для корректной работы с элементами формы, следует для себя четко разделить где нужно пользоваться элементами формы, а где реквизитами объекта. К примеру, Элементы.Организация Отвечает за поведение реквизита на форме, начиная от видимости, заканчивая цветом заголовка. В то время как Объект.Организация Предоставляет доступ непосредственно к данным.

Обращение к данным формы из модуля объекта.

Обратиться к реквизиту формы(не путайте с реквизитом документа\справочника) из модуля документа или справочника невозможно, потому, что модуль не может знать какая форма сейчас открыта(а их ведь может много) да и не факт, что при выполнении процедуры или функции модуля формы, какая то форма будет вообще открыта. Реквизиты формы существуют, только до тех пор, пока форма открыта.

"Толстые" объекты на управляемой форме.

Так как на тонком клиенте недостуны, данные базы данных, серверные объекты(например таблица значений) то на форме их как таковые разместить нельзя в то время, когда они как типы для реквизитов доступны. Здесь дело в том что, при добавлении на форму, добавляется не табличное поле, и не сам список элементов справочника номенклатура к примеру, а коллекция например типа ДанныеФормыКоллекция или ДанныеФормыСтруктура с урезанным функционалом, суть которой заключается в том, чтобы отображать данные таблицы значений которая является реквизитом формы или документа. Список методов, доступных для этих типов, позволяет вести комфортную работу, с данными тех объектов которые они отображают.

Преобразование Реквизит – Данные формы и обратно.

Несмотря на то, что типы ДанныеФормыКоллекция , имеют достаточно широкий функционал, иногда возникает необходимость на сервере получить, "оригинал" — тот объект который отображает форма. Особенно это актуально для реквизитов формы, ведь данные реквизитов объекта, можно получить из самого объекта. Для таких случаев существует метод РеквизитФормыВЗначение() , например:

Второй параметр необязательный.(и не совсем понятно зачем он нужен). Возможно и обратное преобразование, бывает необходимо когда полученный извне или сгенерированный объект "засунуть" в уже существующий реквизит формы, соответствующего типа для этого существует

Перезаполнение реквизитов формы в случае изменения объекта.

Бывают случаи когда объект изменяется не из формы а с помощью какой то процедуры, которая находится в модуле объекта или в любом другом месте. Если действие было инициализировано с помощью кнопки на форме, то после, например таких действий:

Вы не увидите изменений на форме, все дело в том, что форма не делает лишних вызовов к серверу без необходимости и как следствие не в курсе, что с объектом, что-то происходило. В этом случае надо перечитать данные объекта, следующим образом:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *