Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 11:16

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

Автор SDW, 11 июл 2008, 10:49

BuhRust, gulnyr и 6 гостей просматривают эту тему.

SDW

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


SDW

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

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

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


SDW

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск