Версия для печати Поиск Главная Для начинающих разработчиков Учимся программировать

как записать документ открыв его форму Простые примеры разработки / Форма

Рассмотрим такую задачу. Есть сложная форма, с большим количеством реквизитов. Для многих из них в конфигураторе установлено свойство ЗаполнятьИзДанныхЗаполнения. В результате при открытии этой формы для нового объекта ее реквизиты могут быть заполнены различными начальными значениями. Это зависит и от точки навигации, в которой расположена команда создания нового объекта, и от программного алгоритма, описанного в модуле самого объекта.

Теперь предположим, что в процессе выполнения некоторого программного кода требуется открыть эту форму. Но не "пустую", а так, чтобы ее реквизиты были заполнены теми значениями, которые должны получиться в результате работы всех алгоритмов, заложенных в форму.

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

Поэтому существует другой, более удобный и простой способ решения такой задачи.

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

Например, программно нужно открыть форму новой накладной точно так, как если бы она открывалась интерактивной командой из списка накладных, отобранного по поставщику и складу. Предположим, что в переменных СсылкаНаПоставщика и СсылкаНаСклад у нас имеются необходимые ссылки. Тогда можно использовать следующий код:

ЭлементыОтбора = Новый Структура("Поставщик, Склад", СсылкаНаПоставщика, СсылкаНаСклад); ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", ЭлементыОтбора); ОткрытьФорму("Документ.Накладная.ФормаОбъекта", ПараметрыФормы);

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

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

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

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

ЭлементыОтбора = Новый Структура("Поставщик, Склад", СсылкаНаПоставщика, СсылкаНаСклад); ОбъектНакладной = Документы.Накладная.СоздатьДокумент(); ОбъектНакладной.Заполнить(ЭлементыОтбора); // Действия, имитирующие интерактивный ввод данных пользователем... ОбъектНакладной.Дата = ТекущаяДатаСеанса();... ОбъектНакладной.Записать();

Последнее обновление: 25.06.2012

Обсудить статью на форуме

Задать другой вопрос / Закрыть


Источник: http://v8.1c.ru/metod/faq2/answer.jsp?id=651


Закрыть ... [X]

Выполнение ПриОткрытии не открывая формы - Украинский 1С форум Концовка сценария на юбилей

Как записать документ открыв его форму Как обновить открытую форму документа программно?: внешние
Как записать документ открыв его форму Как программно при открытии формы передать в нее нужные
Как записать документ открыв его форму Как предоставить доступ к файлам и папкам на Google Диске
Как записать документ открыв его форму «Энциклопедия коллективных творческих дел»
Как записать документ открыв его форму Будьте проще и люди к вам потянутся ВЕДОМОСТИ
Как записать документ открыв его форму ВНУКУ - поздравления с днем рождения для внука - в
Как записать документ открыв его форму Вручаем клиентам бонусный товар: учет и
Как записать документ открыв его форму Голосовые поздравления от Путина с Днем Рождения по именам на
Конкурс-игра по пропаганде правил дорожного движения среди МИСС СССР - 89 - Мастерок. жж.рф Подарки и сувениры. Интернет-магазин Пожелания на проводы в армию своими словами » Поржать. ру Поздравления с Днем Рождения снохе в стихах Проводы в армию поздравления, стихи, смс - Поздравок Рифматор стихи и поздравления с днем рождения Театр им. В. Ф. Комиссаржевской - театр в центре