Как создать собственную форму документа в 1с
Прежде всего, следует заметить, что до сих пор мы использовали предопределенные формы объектов, которые система 1С:Предприятие создавала для нас сама «по умолчанию».
Теперь же у нас возникла необходимость слегка изменить логику работы формы документа, а значит, нам придется создать свою собственную форму документа ПриходнаяНакладная для того, чтобы в ней мы могли описать тот алгоритм, который нам нужен.
Вернемся в конфигуратор и откроем окно редактирования объекта конфигурации Документ ПриходнаяНакладная. В этом окне нас интересует закладка Формы. Как мы видим, ни одна из основных форм документа пока не задана.
Для того чтобы создать форму документа, нажмем на символ лупы в поле ввода (рис. 3.6):
Рис. 3.6. Создадим форму документа…
Рис. 3.7. Конструктор форм
Выберем тип формы ФормаДокумента и нажмем кнопку Готово, согласившись тем самым со всем, что нам предложила система.
Обратите внимание, что в дереве объектов конфигурации у объекта конфигурации Документ ПриходнаяНакладная появилась форма ФормаДокумента, а на экране открылось окно редактора форм, содержащее эту форму (рис. 3.8):
Рис. 3.8. Новая форма документа и окно редактора форм
Как видите, форма документа Приходная накладная содержит большое количество всевозможных полей. Эти поля называются элементами управления. Они имеют разное назначение и разное поведение, которое соответствует их назначению. Однако все они служат для того, чтобы отображать информацию, хранящуюся в базе данных, и организовывать интерактивную работу с этой информацией.
Сейчас мы обратим свое внимание только на те элементы управления, которые нас интересуют, – это три поля ввода, расположенные в колонках Количество, Цена и Сумма (рис. 3.9):
Рис. 3.9. Интересующие нас элементы управления…
Мы хотим, чтобы каждый раз, когда меняется значение в поле Количество или в поле Цена, в поле Сумма автоматически устанавливалось значение, равное Количество * Цена. Очевидно, что для этого нужно написать на встроенном языке команду, похожую на Сумма = Количество * Цена, которая будет выполняться при изменении значения поля Количество или Цена. Но как «поймать» эти моменты изменения?
Сегодня мы поработаем с формой документа: научимся ее создавать и добавлять на нее новые реквизиты.
Откроем документ "ПриходДенежныхСредств" и добавим реквизит "Договор" (Рисунок 1).
Укажем у реквизита "Договор" ссылку на справочник "Договоры" (Рисунок 1).
Теперь зайдем в пользователя и проверим изменения (Рисунок 2)!
Теперь я хочу сделать таким образом, что бы при выборе контрагента "Поставщик 3" показывались только те договоры, которые относятся к этому контрагенту! У нас для этого уже есть заготовки и просто необходимо включить этот функционал.
До этого мы указывали, что справочник "Договоры" является подчиненным для справочника "Контрагенты" - является владельцем.
Посмотрите на рисунок 2, сейчас в этом окне показываются все договоры, которые относятся к этому контрагенту и которые не относятся, а мне необходимо лишние отфильтровать по владельцу (контрагенту).
Для этого нужно открыть свойства реквизита "Договор" и найти свойство "Связи параметров выбора" (Рисунок 3).
У этого свойства необходимо нажать на значок многоточия и откроется окно (Рисунок 4).
В этом окне нам необходимо перетащить реквизит, по которому будет делаться отбор - это Контрагент. Нужно выделить реквизит и нажать на значок стрелки вправо и он переместится в правое окно (Рисунок 5).
В правом окне необходимо установить значения, которые показаны на рисунке 5 и нажать "Ок".
Если поле (столбец) "Имя" не отображается как на рисунке, то необходимо по нему дважды щелкнуть и в выпадающем списке выбрать необходимое значение.
После этого нужно перейти в режим пользователя и проверить изменения (Рисунок 6).
На рисунке 6 видно, что реквизит сам добавился и на форму документа и на форму списка, а так же, отбор по владельцу работает.
Работает это так: как только вы выбрали в поле "Контрагент" какой-то элемент, так сразу для поля "Договор" срабатывает отбор и будет показываться только то, что относится к этому владельцу (контрагенту).
Давайте продолжим. Добавим реквизит "Договор" (Рисунок 8) в документ "РасходДенег" - он будет абсолютно таким же, как и в прошлом документе, то есть нужно в свойствах указать отбор по владельцу (если не помните как, то посмотрите выше, там это описано), но перед этим добавим форму документа на вкладке "Формы" (Рисунок 7), выберите необходимые реквизиты, которые будут отображаться на форме и нажмите "Готово".
Закройте форму, она пока нам не нужна и теперь перейдите на вкладку "Данные" и создадим реквизит "Договор" (Рисунок 8).
После этого запустить пользователя и проверить изменения (Рисунок 9).
Посмотрите на рисунок 9, на форме документа нет реквизита "Договор"! Как так и почему? Ведь мы же его создали, а он тут не отображается!
Но, если закрыть форму документа и посмотреть на форму списка (Рисунок 10), то мы увидим, что этот реквизит на этой форме есть!
Как так получается? Почему в одном месте его нет, а в другом есть?
Все очень просто, все точно так же как и в справочнике! Мы создали реквизит после того, как создали форму! А в этом случае платформа понимает: "как только создана форма, она уходит в сторону и все работу по добавлению чего-то нового на форму, отдает полностью пользователю"!
Мы создали форму документа, а потом только создали реквизит. Именно поэтому он не добавился на форму, так как нам нужно добавлять его на форму вручную, а форму списка мы не трогали и именно поэтому платформа сама его добавила!
Давайте добавим реквизит на форму! Для этого откроем объект на вкладке "Формы" и откроем форму документа (Рисунок 11).
Теперь необходимо в правой части окна раскрыть список "Объект" и там найти реквизит "Договор" (Договор 12).
Проверим изменения в пользовательском режиме (Рисунок 13).
Все так и работает: как только создаете какую-то форму, так сразу платформа перестает сама добавлять реквизиты на форму, но если вы до создания формы создали все реквизиты и потом создали форму, то автоматически все реквизиты появятся на форме.
Мало того, что реквизит появился на форме, так и отбор работает - показываются только те договоры, которые относятся к определенному контрагенту!
Теперь проверим изменения в пользователе и убедимся в том, что она не появилась на форме документа - значит, нужно переместить ее сначала на форму в режиме разработчика (Рисунок 15).
Теперь проверим пользователя и будет выглядеть вот так (Рисунок 16).
Как видим по рисунку 16, табличка появилась выше первых двух таблиц, а не стала после таблички "Услуги" как на рисунке 17.
Так, как на рисунке 16, программа тоже будет работать, но не удобно будет, слишком много места занимает одна таблица, а нужно так, как на рисунке 17 - для экономии места и удобности.
Для этого перейдем на форму в режиме разработчика и сделаем следующее:
3. Рисунок 20 - Переименовать новую группу (Имя и Синоним)
4. Рисунок 21 - Переместить в папку "Дополнительно" таблицу "Дополнительно"
5. Рисунок 22 - Запустить пользователя и проверить изменения .
Рисунок 22 - Отображение таблицы в пользовательском режиме Рисунок 22 - Отображение таблицы в пользовательском режимеТеперь место сэкономлено, стало более удобнее работать!
При добавлении таблички в нужно место мы познакомились побольше с формой, а именно с созданием группировки (папки), которая помогает правильно отобразить элемент на форме. Более подробно с созданием группировки мы поработаем на следующем занятии и разберемся со всем.
На этом статья урока подходит к концу. Попробуйте выполнить все действия, которые описаны в этом уроке. Если что-то не получается, то вы всегда сможете написать вопрос о том. что вам непонятно или вернуться к предыдущим урокам и посмотреть их - ссылки внизу!
Настройка и доработка 1С:Документооборот для борьбы с ошибками. Гарантия на все результаты работ.
Оперативные консультации по 1С:Документооборот без предоплаты. Первая консультация бесплатно.
Типовой функционал, встроенный в прикладные решения 1С
Идеально подходит для средних, крупных компаний и холдингов со сложной организационной структурой и сложным документооборотом.
В офисной рутине сотрудники часто имеют дело с формированием каких-либо однотипных, повторяющихся документов, которые они зачастую просто копируют и чуть-чуть редактируют по своему усмотрению. Создание шаблона в 1С Документооборот позволяет существенно сократить время, регулярно затрачиваемое пользователем на создание и подготовку печатных форм типовых документов, при этом установив корпоративные форматы документов, не позволяя обычному пользователю вносить изменения в основной текст.
В формируемый пользователем файл документа данные подставляются автоматически из настроенной карточки документа. Помимо этого, работа с шаблонами позволяет ускорить согласование таких документов по сокращенной схеме обработки.
Чтобы программа имела возможность работать с автозаполняемыми шаблонами, нужна соответствующая настройка шаблонов. Перейдем по пути «Настройка и администрирование-Настройка программы-Работа с файлами».
Для возможности работы с автозаполнением шаблонов документов должна быть включена функция «Использовать автозаполнение шаблонов файлов».
Подготовить шаблон документов в 1С
Далее перейдем к созданию файла шаблона. Для этого нам нужен пустой файл документа MS Word, который в дальнейшем мы закрепим в настройках. Перейдем в раздел «Документы и файлы-Файлы».
В открывшемся окне, выделив папку «Шаблоны файлов», загрузим нашу новую заготовку для шаблона по кнопке «Создать файл». В диалоговом окне выберем команду «Загрузить с диска».
В открывшемся окне выберем заранее подготовленный пустой файл документа MS Word. Для примера назовем его «Пример шаблона договора». В дальнейшем в нем будет разработан шаблон документа для заполнения.
Сохраняем по нажатию «Записать и закрыть».
Мы видим наш шаблон файла в списке.
Чтобы открыть карточку нашего шаблона, нужно щелкнуть на нем правой кнопкой мышки и выбрать команду «Открыть карточку».
Создаем шаблоны в 1С Документооборот
Далее, для примера, создадим новый вид документа, который будет заполняться из шаблона. Откроем раздел «Нормативно-справочная информация» - «Виды документов».
С помощью кнопки «Создать» создадим новый вид документа.
Назовем его «Пример шаблона договора» и в настройках установим галочки «Использовать срок исполнения», «Является договором». При необходимости документ можно включить в какую-либо группу, задать индекс нумератора (префикс или суффикс документа) и установить другие настройки. Если каких-либо реквизитов не хватает, их можно задать, перейдя по гиперссылке «Набор дополнительных свойств документов данного вида».
В открывшемся окне мы можем задать дополнительные реквизиты по кнопке «Добавить».
При создании нового реквизита указывается его наименование и задается тип значения из предложенного списка. Если тип значения задан как «Дополнительное значение», то их список можно задать на закладке «Значения».
На закладке «Нумерация» задается порядок нумерации документа.
Перейдем на закладку «Шаблон документа», дополнительная закладка «Настройка». Здесь можно:
- Запретить редактировать реквизиты;
- Запретить редактировать файлы;
- Запретить удалять присоединенные файлы.
Здесь же можно ограничить круг пользователей, для которых будет доступен шаблон.
На закладке «Реквизиты документа» можно заполнить значения по умолчанию, которые будут заполнены при сохранении документа.
На закладке «Файл» мы добавляем файл шаблона. Нажав гиперссылку, можно выполнить настройку заполнения шаблона, выбрав реквизиты для заполнения текстовых полей в документе.
В открывшемся окне отметим галочками реквизиты и их количество. В шаблоне мы можем эти реквизиты вставлять в нужные места текста (используя команды «Копировать», «Вставить»).
Все указанные реквизиты будут перенесены в наш пустой документ. Далее подготовим текст документа и вставим их в текст в нужные места.
Доброго времени суток, уважаемый читатель! В данной публикации я хочу рассмотреть такой аспект работы программиста 1С как создание печатных форм 1С. Статья может помочь начинающим разработчикам лучше понять основные принципы и механизмы, используемые при создании печатных форм.
В первую очередь стоит сказать, что самый простой способ начать делать печатную форму для документа 1С – воспользоваться конструктором печатных форм. Сделать это можно, зайдя в палитру свойств нужного документа (Рисунок 1).
Следующий шаг при создании печатных форм в 1С 8.3 — выбор названия процедуры для печати. Назовём её «Печать акта об оказании услуг» (Рисунок 2).
Далее конструктор предложит выбрать реквизиты, которые будут находиться в шапке, табличной части и подвале печатной формы 1С. Выбирать какие-либо реквизиты не обязательно, но я советую выбрать реквизиты для шапки и табличной части, так как в таком случае будет немного проще писать код.
Пример созданного макета печатной формы в 1С 8.3 представлен Рисунком 3.
2. Работа с макетом печатных форм 1С
С макетами печатных форм 1С программный код работает при помощи областей. По умолчанию создается от 0 до 5 областей в зависимости от того, что выбиралось в конструкторе. Обратите внимание, что при разработке сложных форм может потребоваться и больше областей. Для управления областями используются кнопки, выделенные на рисунке 4.
Чтобы добавить область печатной формы документа, необходимо выбрать нужные строки и нажать «Назначить имя». Если имя новой области будет совпадать с именем другой области, то система предложит удалить старую область или не создавать новую.
Перейдем к ячейкам. Они могут содержать:
• простой текст, не содержащий в себе значений, которые нужно выводить из документа (не меняется);
• параметр, который выводятся из документа (меняются каждый раз в зависимости от данных документа и обозначаются треугольными скобками <>);
• шаблон, содержащий в себе и текст, и параметры; параметры при использовании шаблона обозначаются в квадратных скобках [].
После изменения макет будет выглядеть так, как показано на Рисунке 5.
По завершении работы с макетом печатной формы необходимо отредактировать программный код 1С, созданный конструктором печатных форм.
3. Алгоритм создания печатных форм
1. Сперва делается запрос, получающий необходимые данные:
2. Получаем области которые ранее создавали в макете:
3. Обходим выборку и заполняем параметры печатной формы 1С удобным способом. Если параметры совпадают с результатом запроса 1С 8.3 по имени, можно воспользоваться функцией Параметры.Заполнить(Выборка). Можно также и прямо указать, чему равен тот или иной параметр печатной формы 1С через ИмяОбласти.Параметры.ИмяПараметра = Значение
4. После заполнения параметров в области ее необходимо вывести с помощью ТабДок.Вывести(ИмяОбласти).
В нашем случае необходимо лишь отредактировать запрос, добавив в него необходимые поля, после чего заполнить параметры полученными значениями и вывести все в табличный документ 1С 8.
Читайте также: