как создать собственную форму документа
Вирус скуки
пятница, 17 мая 2013 г.
1С-ное.(Заметки быдло-ученика-погромиста)
Продолжение одинэсной темы, ответы на книгу Радченко, занятие 2 и 3.
14 комментариев:
Большое человеческое 1Спасибо!
Я вас обожаю, кто это создал.
а какой вопрос вызывает сложность то? Напишите, может, я напишу какой-нибудь развернутый пост, а то я не понимаю, уже три человека находят что-то особенное на этой странице.
только это 4 занятие
И к вам обращусь
а какой вопрос вызывает сложность то? Напишите, может, я напишу какой-нибудь развернутый пост, а то я не понимаю, уже три человека находят что-то особенное на этой странице.
Сори что анонимно, но сайт очень полезный
Спасибо чувак выручил перед экзаменом 🙂
Всё отлично, спс! Ток ето 4 занятие, а не 2 и 3
просто я читал книгу очень давно)))) она уже изменилась, другая редакция. Но принципы те же, хз, может, перечитаю и напишу новые ответы
Программирование 1С 8.х для начинающих
Обмен данными
Форма. Создание
1. Способы создания формы
2. Конструктор форм
Способы создания формы
Узнав о формах 1с, перейдем к более глубокому ознакомлению. Для начала создадим форму, это может быть форма любого объекта, в данном примере это справочник. Способов создать форму существует несколько:
1. Из конструктора объекта 2 способа
2. Из дерева конфигурации через контекстное меню (правой кнопкой мыши на выделенном синим на рисунке объекте).
Конструктор форм
При создании новой формы появляется окно конструктора формы:
Тип формы, который предлагает выбрать конструктор повлияет, на начальное заполнение элементами. Основными вариантами типов являются:
Флажок «Назначить форму основной» означает что, если форм данного типа будет несколько и при вызове формы этого типа не будет указана конкретная, то будет выведена основная. Например: существует форма списка «ФормаСпискаКраткая», которая является основной и «ФормаСпискаПолная», если вызвать форму списка и не указать конкретную, то будет выведена «ФормаСпискаКраткая».
Основные формы видны на закладке «Формы» конструктора изменяемого объекта.
Флажок «Основная форма списка и выбора» означает что, эта форма будет выводиться как для просмотра списка, так и для выбора.
Флажок «Основная форма элемента и группы» означает что, эта форма будет выводиться как для редактирования элемента, так и для группы.
Дальше идёт реквизит «Имя» он является идентификатором этой формы, нельзя создать у одного объекта двух форм с одинаковым идентификатором.
Реквизит «Синоним» будет выводиться в пользовательском режиме как имя этой формы.
Реквизит «Комментарий» хранит какие-либо заметки или пояснения.
Флажки «Командная панель сверху» и «Командня панель снизу» указывают где выводить командные панели. Командная панель это элемент формы который содержит кнопки. Например:
При нажатии кнопки «Далее» форма конструктора измениться, и будет доступно размещение элементов на форме:
Для себя я использую в основном следующий метод создания формы, если объект новый то вызываю конструктор из объекта на закладке «Формы» группа «Основные формы», нажимая на значок «Открыть»(лупа)(рисунок 1). Если объект имеет основные формы, то вызываю конструктор из дерева метаданных методом «Добавить» из контекстного меню ветки «Формы»(рисунок 2).
Сделаю небольшое пояснение о связи формы с объектом. Вообще правильная установка свойств уменьшает необходимость писать код.
У формы есть свойство «Данные» оно является основным для формы и на закладке «Реквизиты» выделяется жирным шрифтом.
Практикум 2. Создание документов
Для отражения этих событий в базе данных мы создадим два документа:
«Приходная накладная» будет фиксировать факт поступления в нашу организацию необходимых материалов, а документ «Оказание услуги» будет фиксировать оказание услуг и расход материалов, которые используются при оказании этих услуг.
Создание документа ПриходнаяНакладная
В создаваемых накладных значения в столбце «Сумма» нам пришлось вводить вручную. Это неудобно и возникает естественное желание автоматизировать работу документа так, чтобы сумма вычислялась автоматически всякий раз при изменении цены или количества материалов в строке.
Для этого нам потребуется создать собственную форму документа, а затем воспользоваться возможностями встроенного языка.
Создание формы документа
До сих пор мы использовали предопределенные формы объектов, которые система 1С:Предприятие создавала для нас сама «по умолчанию».
Теперь у нас возникла необходимость слегка изменить логику работы формы документа, а значит, нам придется создать свою собственную форму документа « ПриходнаяНакладная » для того, чтобы в ней мы могли описать тот алгоритм, который нам нужен.
Сразу нажмем кнопку «Готово», согласившись тем самым со всем, что нам предложила система.
Обратите внимание, что в дереве объектов конфигурации у объекта конфигурации Документ «ПриходнаяНакладная» появилась форма «ФормаДокумента», а на экране открылось окно редактора форм, содержащее эту форму.
Форма документа «ПриходнаяНакладная» содержит большое количество всевозможных полей. Эти поля называются элементами управления. Они имеют разное назначение и разное поведение, которое соответствует их назначению. Однако все они служат для того, чтобы отображать информацию, хранящуюся в базе данных и организовывать интерактивную работу с этой информацией.
Создание процедуры обработки события в модуле формы
1. Щелкните правой кнопкой мыши на поле ввода в колонке «Количество» и откройте для него палитру свойств (пункт контекстного меню Свойства)
2. Прокрутите список до конца, и вы обнаружите группу «События», в которой содержится перечень событий, которые могут быть связаны с этим полем ввода.
3. Среди событий найдите событие «ПриИзменении». Это событие возникает после изменения значения поля ввода.
Кликните по кнопке с лупой в конце поля ввода, и система создаст заготовку процедуры обработчика этого события в модуле нашей формы.
4. В модуль формы добавим следующий текст:
Объясним значения этих строк.
В первой строке мы обращаемся к программному объекту ЭлементыФормы. Этот объект является коллекцией значений, содержащей все элементы управления, расположенные на нашей форме. Каждый элемент управления формы можно получить, указав его имя в качестве свойства объекта ЭлементыФормы. В данном случае мы обращаемся к элементу управления с именем «Материалы» (ЭлементыФормы.Материалы).
Этот элемент управления отображает строки табличной части нашего документа. Получить ту строку, в которой в настоящее время осуществляется редактирование, можно при помощи свойства программного объекта ТабличноеПоле → ТекущиеДанные. Таким образом, в результате выполнения первой строки переменная СтрокаТабличнойЧасти будет содержать объект ДокументТабличнаяЧастьСтрока.ПриходнаяНакладная. Материалы, в котором находятся редактируемые данные.
Во второй строке вычисляется сумма как произведение количества и цены. Объект ДокументТабличнаяЧастьСтрока. позволяет обратиться к данным конкретной колонки, указав имя колонки в качестве свойства объекта. Например, СтрокаТабличнойЧасти.Количество.
5. Закроем все окна и посмотрим, как это работает, запустив 1С:Предприятие в режиме отладки.
6. В окне программы откройте список документов «ПриходнаяНакладная» и откройте любой из двух созданных вами документов. Если вы теперь поменяете количество в любой строке документа, то сумма в строке будет пересчитана автоматически.
7.Вернитесь в конфигуратор и для поля «Цена» сделайте то же самое.
Создание процедуры обработки события в общем модуле
Если подумать о будущем, то будет понятно, что подобное автоматическое заполнение поля «Сумма» может нам понадобиться и в других документах. Поэтому лучше будет поместить расчет суммы в некотором «общедоступном» месте, чтобы разные документы, имеющие аналогичные реквизиты табличной части, могли использовать этот алгоритм.
Для описания таких «общедоступных» мест служат объекты конфигурации Общий модуль, расположенные в ветке Общие в†’ Общие модули. Процедуры и функции, содержащиеся в этих модулях, могут быть доступны для любых объектов конфигурации.
Для того чтобы алгоритм, выполняемый при обработке события, был доступен для разных документов, мы создадим общий модуль и перенесем в него нашу процедуру расчета суммы. А в документе просто оставим вызовы этой процедуры из общего модуля.
1. Создайте объект конфигурации Общий модуль в ветке Общие в†’ Общие модули и назовите его «РаботаСДокументами».
2. Он будет содержать следующий текст:
Ключевое слово Экспорт в конце оператора «Процедура» как раз указывает на то, что эта процедура может быть доступна из других программных модулей.
3. Вернитесь в нашу форму (в дереве конфигурации Документы → ПриходнаяНакладная → Формы → ФормаДокумента).
4. В открывшемся окне Документ ПриходнаяНакладная: ФормаДокумента на нижней панели щелкните по клавише .
5. В каждом модуле формы измените текст обработчика:
Таким образом, теперь вместо непосредственного расчета суммы мы будем вызывать процедуру из общего модуля, и передавать ей в качестве параметра нужную нам строку табличной части.
6. Запустите 1С:Предприятие в режиме отладки и убедитесь, что все работает так как надо.
Создание документа ОказаниеУслуги
1. Создайте новый объект конфигурации Документ «ОказаниеУслуги».
2. На закладке «Данные» создайте реквизиты:
3. Создайте табличную часть «ПереченьНоменклатуры» с реквизитами:
4. Создайте основную форму документа.
5. Для полей ввода колонок «Количество» и «Цена» создать обработчик события «ПриИзменении», в котором вызвать процедуру «РассчитатьСумму» из общего модуля «РаботаСДокументами».
6. В результате документ «ОказаниеУслуги» в дереве конфигурации будет выглядеть следующим образом:
7. Запустите 1С:Предприятие в режиме отладки и убедитесь (опираясь на рисунки, помещенные ниже), что при вводе цены и количества в табличную часть документа « ОказаниеУслуги » сумма пересчитывается по нашему алгоритму.
Теперь наш документ «ОказаниеУслуг» должен иметь следующий вид:
Создание регистра накопления ОстаткиМатериалов
Прежде всего, нас интересует информация о том, сколько и каких материалов есть у нас на складе. Для накопления такой информации мы создадим регистр «ОстаткиМатериалов».
1. Создайте новый объект конфигурации Регистр накопления с именем «ОстаткиМатериалов».
2. На закладке «Данные» создадим измерения регистра:
3. Создадим ресурс «Количество» с длиной 15 и сточностью 3.
4. В результате этих действий регистр « ОстаткиМатериалов » должен иметь следующий вид:
5. Если вы сейчас попытаетесь запустить 1С:Предприятие в режиме отладки, то система выдаст сообщение об ошибке:
Создание движений документа ПриходнаяНакладная
Движения документа → это записи в регистрах, которые создаются в процессе проведения документа и отражают изменения, производимые документом.
1. Откройте окно редактирования объекта конфигурации Документ «ПриходнаяНакладная».
2. На закладке «Движения» в списке регистров конфигурации отметим регистр накопления «ОстаткиМатериалов»:
Обратите внимание, что сразу после отметки выбранного регистра становится доступной кнопки «Конструктор движений». Этим конструктором мы и воспользуемся:
3. Конструктор устроен просто. В списке «Регистры» перечислены регистры, в которых документ может создавать движения. В нашем случае там пока один регистр «ОстаткиМатериалов».
В списке «Реквизиты документа» должны находиться исходные данные для создания движений. А в таблице «Поле → Выражение» должны быть заданы формулы, по которым будут вычисляться значения измерений и реквизитов регистра при записи движений.
Обратите внимание, что по умолчанию конструктор предлагает нам создавать движения прихода (символ «+» рядом с названием регистра) по регистру «ОстаткиМатериалов». Это нас вполне устраивает, ведь документ «ПриходнаяНакладная» и должен приходовать материалы.
4. Нажмите кнопку «Заполнить выражения». В нижнем окне сформируется соответствие полей и выражений.
Как видите, конструктор движений установил соответствия подходящим образом:
5. Нажмите «ОК» и посмотрите, какой текст сформировал конструктор в модуле объекта:
Конструктор создал обработчик события ОбработкаПроведения объекта конфигурации Документ и поместил его в модуль объекта.
Внутри обработчика расположен цикл, который предназначен для перебора строк табличной части нашего документа. В цикле обращение к табличной части документапроисходит по имени (Материалы), а строки табличной части документа представляют собой коллекцию значений, для перебора которой можно использовать конструкцию Для Каждого …¦ Из …¦ Цикл.
Объект встроенного языка ДокументОбъект имеет свойство Движения. Оно возвращает коллекцию наборов записей регистров, которые принадлежат этому документу. К набору записей документа, принадлежащему конкретному регистру, можно обратиться, указав через точку имя этого регистра.
Таким образом, в первой строке тела цикла мы добавляем к набору записей, который создает наш документ в регистре, новую запись и сохраняем ее в переменной Движение.
Затем мы присваиваем нужные значения всем полям этой записи и после перебора всех строк документа (после завершения цикла) «одним махом» записываем в регистр ОстаткиМатериалов весь набор записей движений документа.
6. Посмотрим как это работает. Запустим 1С:Предприятие в режиме отладки и откроем одновременно два окна:
7. Откроем Приходную накладную №– 1 и нажмем ОК. Обратите внимание, что при проведении приходной накладной появляются соответствующие записи в регистрах накопления.
8. Аналогичные действия проделайте и с документом Приходная накладная №– 2.
Создание движений документа ОказаниеУслуги
1. Создайте движения документа ОказаниеУслуги.
При использовании конструктора будьте внимательны и обратите внимание на то, что документ ОказаниеУслуги должен расходовать материалы.
2. При автоматическом заполнении поля Материал не заполнится.
Если мы оставим это так, как есть, то в регистре накопления в строках с типом Движение регистра → расход имя номенклатуры фиксироваться не будет. Чтобы избежать этого, надо выбрать поле Материал и в поле Реквизиты документа дважды кликнуть по строке ТекСтрокаПереченьНоменклатуры.Номенклатура.
Таким образом, имя номенклатуры для строк регистра накопления будет выбираться из табличной части документа.
3. Запустим отладку и проведем документы оказания услуг и убедимся, что в регистре накопления он создал верные движения.
Сформированные таким образом движения этого документа будут не совсем правильны, поскольку в документе ОказаниеУслуги, в отличие от документа ПриходнаяНакладная, содержатся не только расходуемые материалы, но и услуги. Поэтому в регистр ОстаткиМатериалов попали записи и о расходуемых услугах, что неправильно.
Пока мы ничего не будем делать с движениями, которые сформировал конструктор, но как только познакомимся с перечислениями, мы внесем в обработчик проведения необходимые изменения.
Другие материалы по теме:
6 простых действий для создания формы в Word
Как создать форму в Word
Ниже приводится пошаговое руководство по созданию форм в Word, которые могут использоваться для заполнения другими пользователями:
Шаг 1: Отображение раздела «Разработчик»
Шаг 2: Создание шаблона формы
Чтобы избежать напрасной траты времени, начните с работы над шаблоном формы и убедитесь, что он пуст.
Шаблон формы: начальный этап
Для того, чтобы начать с пустого шаблона:
Шаг 3: Добавление контента в форму
Добавьте текстовый элемент управления в раздел, в который пользователи могут вводить текст.
Пользователи могут выделять текст курсивом или полужирным шрифтом в рамках расширенных настроек, а также разделять текст на несколько абзацев. Если вы предпочитаете установить ограничение на текст, вводимый пользователями, установите элемент управления содержимым простого текста.
Шаг 4: Задание свойств элементов управления контентом
Свойства элементов управления контентом могут быть настроены/изменены.
Шаг 5: Включение пояснительного текста в создаваемую форму
Сделайте это, чтобы настроить учебный текст по умолчанию для пользователей формы:
Шаг 6: Включение защиты в создаваемую форму
Этот шаг (использование команды «Ограничение редактирования») предназначен для ограничения операций форматирования или редактирования форму:
Преимущества формата PDF
Данное программное обеспечение идеально подходит для создания, аннотирования и редактирования PDF-документов. Кроме того, одним из его многочисленных применений является создание заполняемых PDF-форм. С помощью PDFelement вы можете создавать интерактивные формы. Используя комбинацию кнопок, вы можете создавать и выбирать дизайн поля формы в интерактивном формате с помощью этого инструмента. В рамках создания заполняемой PDF-формы PDFelement позволяет добавлять флажки, текстовые поля, переключатели, списки, поля со списками, а также различные кнопки.
Как создавать формы в PDF-документах
Вы можете создать форму вручную, выполнив следующие действия:
Шаг 1. Откройте PDF-файл
Откройте PDF-документ в программе.
Шаг 2. Создание формы в PDF-файле
Нажмите «Форма», а затем кнопку «Добавить текстовое поле». Выберите подходящее расположение файла; затем в файл будет добавлен флажок или текстовое поле. Нажмите кнопку «Завершить редактирование формы», щелкните по текстовому полю и начните вводить текст.
PDFelement предлагает пользователям отличное PDF-решение с полным набором инструментов для создания, редактирования, преобразования и подписывания PDF-документов: огромный функционал по доступной цене. Это лучший инструмент для оцифровки документов и ускорения процесса создания, подписывания и редактирования документов в формате PDF. Кроме того, благодаря множеству преимуществ формата PDF по сравнению с DOC, некоторые из которых были упомянуты выше, PDFelement является идеальным вариантом для создания заполняемой формы.