Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1C-Конфигурирование и администрирование.doc
Скачиваний:
6
Добавлен:
01.03.2025
Размер:
2 Мб
Скачать
☆

Ввод документов «на основании»

Одним из режимов ввода новых документов в процессе работы пользователя с системой 1С:Предприятие является режим ввода «на основании». С точки зрения пользователя, режим ввода «на основа­нии» позволяет вводить документы, заполняя их реквизиты путем копирования информации из выбранного документа-образца. В от­личие от простого копирования документов, в результате которого создается документ того же вида, что и документ-образец, режим ввода «на основании» позволяет создавать и переносить информа­цию в документ другого вида.

Организация ввода документов «на основании»

Для организации ввода документа «на основании» необходимо в модуле формы документа создать процедуру с зарезервированным именем ВводНаОсновании(). Эта процедура выполняется после выбора команды «Ввести на основании» из меню «Действия» глав­ного меню системы 1С:Предприятие и последующего выбора из спи­ска нужного вида документов, либо после выбора пункта пользова­тельского меню, выполняющего команду «Ввод на основании». При вызове процедуры в качестве параметра ей передастся доку­мент-образец.

Текст этой процедуры должен быть разработан специалистом, осуществляющим конфигурирование системы. В тексте процедуры следует предусмотреть выполнение тех или иных операций по пере­носу информации — в зависимости от вида документа-образца, а также любые другие необходимые действия.

Если при работе пользователей с системой 1С:Предприятие пред­полагается частое применение режима ввода «на основании» (при большом документообороте), можно ввести в пользовательский ин­терфейс пункты меню или кнопки панелей инструментов, выпол­няющие команду «Ввод на основании» для конкретных документов. Использование таких пунктов меню (кнопок) позволит при вводе документа «на основании» исключить этап выбора вида документа из выдаваемого на экран списка и, таким образом, ускорить работу.

Конструктор ввода на основании

Конструктор ввода на основании облегчает задачу разработки процедуры ВводНаОсновании().

Конструктор можно вызвать, выбрав пункт «Ввод на основа­нии...» из меню «Конструкторы» главного меню программы или нажав кнопку на панели инструментов «Конструкторы». При этом должна быть открыта форма документа.

При запуске открывается диалог «Конструктор ввода на основа­нии». Он содержит список документов-оснований, список реквизи­тов документа и список (в виде дерева) реквизитов документа-основания, выбранного в первом списке.

В список документов-оснований входят:

  • документы, отмеченные в правом списке в окне «Ввод на ос­новании». (Это окно открывается при нажатии соответствую­щей кнопки в окне свойств данного документа);

  • документы, никак не отмеченные в свойствах данного доку­мента, если для самих этих документов в том же окне «Ввод на основании» установлен флажок «Может являться основа­нием для документов любого вида».

Кнопки «Назад» и «Далее» перемещают курсор вверх и вниз по списку реквизитов документа. При достижении конца списка появ­ляется запрос «Перейти к следующему документу-основанию?», и при выборе «Да», курсор в списке документов-оснований смещается на следующую строку. Такой порядок обеспечивает перебор всех реквизитов документов для каждого документа-основания. Можно также для выделения строки в любом списке пользоваться мытью.

В список реквизитов документа нужно поместить формулы, опре­деляющие, как заполнять реквизиты документа по выбранным рек­визитам документа-основания.

Эти формулы можно создавать «вручную» следующим образом. Формула определяется в поле ввода «Формула заполнения реквизи­та» для реквизита документа, выделенного в списке. Можно вручную набрать ее в этом поле (а также вручную редактировать в нем соз­данную ранее формулу). Правильность написания формул Конст­руктор не проверяет.

Можно также двойным щелчком в списке реквизитов документа-основания помещать данные соответствующего реквизита в поле «Формула заполнения реквизита», причем сразу в правильной запи­си, например, реквизит документа-основания «Товар» — в записи «ДокОснование.Товар». Конструктор не проверяет соответствия ти­пов выбранных реквизитов.

Возможна и комбинация двух описанных способов: данные из списка реквизитов документов-оснований при помещении в поле ввода замещают не всю имеющуюся там информацию, а только вы­деленные символы.

По кнопке «Заполнить формулы автоматически», после запроса и подтверждения, программа сама создаст формулы для заполнения по реквизитам документа-основания. Ранее заполненные формулы при автоматическом заполнении не изменяются. Подбор среди рек­визитов документа-основания соответствий реквизитам документа осуществляется с учетом имен реквизитов, их идентификаторов и типов.

По кнопке «Очистить формулы», после запроса и подтверждения, очищаются все формулы, созданные как автоматически, так и вруч­ную.

Формулы, созданные для документа-основания, выбранного в списке документов-оснований, запоминаются при переходе к друго­му документу-основанию этого списка. Поэтому можно, не прекра­щая работы Конструктора, создать процедуры ввода на основании для нескольких документов-оснований. Можно также возвращаться к редактированию процедуры для какого-либо документа-основания, снопа выбирая его в списке.

Для прекращения работы Конструктора служат кнопки «ОК» и «Отмена» (соответственно, с сохранением и без сохранения сделан­ных изменений).

Кнопка «Обновить» позволяет отразить в модуле формы сделан­ные изменения без выхода из окна Конструктора.

В результате работы Конструктора в модуле формы документа создается процедура ВводНаОсновании(ДокОснование). В начало процедуры Конструктор помещает предупреждение: «Данный фраг­мент построен Конструктором. При повторном использовании Кон­структора внесенные вручную изменения будут потеряны!».

При повторном использовании Конструктора все формулы, сформированные ранее для какого-либо документа-основания, будут появляться в списке реквизитов документа при выделении соответ­ствующего документа-основания в списке документов-оснований. Конструктор предъявит для просмотра и редактирования формулы, сформированные при предыдущем его запуске, как с помощью кноп­ки «Заполнить формулы автоматически», так и вручную. Более того, он учтет и формулы, вручную внесенные в модуль документа, если они помещены в формируемую им процедуру. Правильность этих формул Конструктор не проверяет. Например, если для какого-то реквизита документа указано заполнение двумя различными рекви­зитами документа-основания, Конструктор для показа выберет один из них (но алфавиту). Именно он останется в модуле после обновле­ния результатов работы Конструктора, вторая строка, соответствую­щая тому же реквизиту, будет удалена.