PROCESSCOMMAND — различия между версиями

Материал из GB wiki
Перейти к: навигация, поиск
Строка 15: Строка 15:
 
  |Пояснение=Строка, которая содержит через "," список параметров команды.
 
  |Пояснение=Строка, которая содержит через "," список параметров команды.
  
{{Внимание|Если значение любого из параметров содержит пробелы, запятые или кавычки, следует всю строку Имя=Значение взять в дводные кавычки. Например, '''SET:Heap.@Note=Это комментарий''' - неправильно. Правильно '''"SET:Heap.@Note=Это комментарий"'''}}
+
{{Внимание|1=Если значение любого из параметров содержит пробелы, запятые или кавычки, следует всю строку Имя=Значение взять в двойные кавычки. Например, '''SET:Heap.@Note=Это комментарий''' - неправильно. Правильно '''"SET:Heap.@Note=Это комментарий"'''
 +
}}
  
 
Вот полный список параметров, которые можно передать в объект при создании и открытии существующего через ProcessCommand:
 
Вот полный список параметров, которые можно передать в объект при создании и открытии существующего через ProcessCommand:

Версия 08:23, 20 января 2012

Функция позволяет выполнить любую команду ГБ - открыть электронную форму, запустить отчет, создать объект, удалить его, сменить состояние, напечатать и т.д.

Синтаксис

PROCESSCOMMAND (Тип объекта,Строка параметров,Команда)
или
PROCESSCOMMAND ('CURRENT',Строка параметров,Команда)
или
PROCESSCOMMAND (тип:коды,Строка параметров,Команда)

Аргументы

Тип объекта
Целое число, являющееся кодом типа объекта (см. Объектная модель данных ГБ). Если указано слово 'CURRENT' - берется тип активного в данный момент объекта. Если указано тип:коды, берется множество объектов заданного типа с указанными кодами.
Строка параметров
Строка, которая содержит через "," список параметров команды.


Important yellow.png Внимание!
Если значение любого из параметров содержит пробелы, запятые или кавычки, следует всю строку Имя=Значение взять в двойные кавычки. Например, SET:Heap.@Note=Это комментарий - неправильно. Правильно "SET:Heap.@Note=Это комментарий"

Вот полный список параметров, которые можно передать в объект при создании и открытии существующего через ProcessCommand:

  • То, что работает в любой форме свойств:
    • DuplicateId - ид объекта, копию которого мы хотим создать. Причем установка поля Node является обязательным.
    • DoOnOpen - скрипт, выполняемый сразу после открытия
    • DoOnSave - скрипт, выполняемый непосредственно перед сохранением
    • ActivePage - имя закладки по умолчанию
    • SaveImmediate=Y - сохранить изменения сразу, не показывая форму пользователю
    • SendSaveMessage=1 - ожидать успешного завершения сохранения объекта
    • CloseOnError=1 - при ошибке закрывать форму (иначе форма будет показана пользователю)
  • установка любых полей ПРИ СОЗДАНИИ НОВОГО ОБЪЕКТА (но в документах этого лучше не делать, т.к. там с большинством полей связана специфическая функциональность - используйте параметры, описанные ниже):
    • SET:FIeld=
    • SET:Heap.Field=
  • в документах основные поля через SET ставить нельзя, надо использовать стандартные параметры:
    • Partner - заполняет соотв. поле
    • Agent - заполняет соотв. поле
    • Kind - заполняет соотв. поле
    • OpDate - заполняет сразу и OperationDate и DocDate
    • NOTE - заполняет поле HeapSet.@Note
    • DOCNUMBER - заполняет соотв. поле
    • WWWORDER - заполняет поле Imported_Id
    • CURRENCY - заполняет поле DocCurrency
    • PRICELIST - заполняет поле HeapSet.@PriceList
    • ActiveLinkPage - открывает документ на закладке "связи", на подзакладке с заданным номером.
    • Link - список кодов документов, с которыми нужно связать создаваемый
    • LinkSide - направление связи - LinkSide=С означает что новый документ будет записан в связях в поле CreditDoc, иначе - в DebetDoc
    • LinkType - тип связи
    • Update=True - при создании не имеет значения, а при открытии существующего документа означает, что товарные **строки необходимо заполнить заново, а не дописывать к существующим
    • PosOnly=True - означает что из списка товарных строк нужно выбрать только положительные количества
    • NegOnly=True - означает что из списка товарных строк нужно выбрать только отрицательные количества
    • DontCreateEmpty - не создавать пустой документ (без тов. строк)
    • GoodiesDs=имя - имя датасета, который содержит список товарных строк
    • GoodiesDs==выражение - запрос, который вернет нам список товарных строк
    • GoodiesArt
    • GoodiesCert
    • GoodiesQty
    • GoodiesNote
    • GoodiesHeap.XXXX - запись в хиповое поле ХХХХ
    • GoodiesField.AutoSaveXXXX - запись в поле вида AutoSaveCert@Apt
    • GoodiesPrice
    • GoodiesPriceList - выражения, вычисляемые на GoodieDs, заполняют соотв. поля
    • ExpensesDs - имя датасета со списком затрат
    • ExpensesDs.Field
    • ExpensesDs.Heap.Field - выражения, вычисляемые на ExpensesDs, заполняют соотв. поля
  • ДЛЯ ИЗМЕНЕНИЯ ЗНАЧЕНИЙ ПОЛЕЙ В СУЩЕСТВУЮЩЕМ ОБЪЕКТЕ НУЖНО ИСПОЛЬЗОВАТЬ СКРИПТ DoOnOpen
Команда
Строка, описывающая команду. Возможные варианты:
  • "EXPLORE" - открыть справочник. Возможные параметры:
    • Id=X - открыть справочник на объекте с кодом X
  • "PROPERTIES" - открыть свойства объекта. Возможные параметры:
    • Id=X - открыть свойства объекта с кодом X.
    • Id=-1 - создать новый объект, при этом:
    • DuplicateId=Y - создать копию объекта с кодом Y.
    • SubType=Y - создать объект с подтипом Y.
    • ItemType=0 - создать новую папку.
    • ItemType=1 - создать новую запись.
    • Node=Y - создать объект в папке с кодом Y.
    • KeepPack=1 - принудительная простановка типа упаковки (без него, например, при количестве < целой коробки упаковка приводится к минимальной).
    • GoodiesDsMaxLines=100 - ограничение количества товарных строк в документе (в примере ограничение равно ста строкам).
    • CheckPostConds=1 - перед открытием свойств электронной формы создаваемого документа проверить постусловия. Осуществится выполнение только постусловий с вызовом Exception. В случае срабатывания исключения текст ошибки поместится в переменную :LastError.
    • ActivePage=Имя закладки - установить активную закладку.
    • SaveImmediate=Y - сохранить изменения сразу по открытии.
    • DoOnOpen=скрипт - выполнить скрипт после открытия.
    • DoOnSave=скрипт - выполнить скрипт после сохранения.
    • Кроме того, для документов:
      • Имя поля=значение - присвоить данному полю датасета DataSet данное значение.
  • "PRINT" - напечатать объект. Возможные параметры:
    • ReportId=X или CmdParams=X -печатать форму с кодом X (ReportId=X).
    • ShowForm=Y - вывести окно для выбора печатной формы.
    • Target=файл - печатать в файл (для текстовых, Word и Excel форм).
    • Template=файл - шаблон для Word и Excel форм.
  • "SETFLAG" - изменить состояние документа. Возможные параметры:
    • SetState=X -Установить флаг=X.
  • "IDXXX" - выполнить команду с кодом XXX (см. Справочник команд).
    • Если XXX - код отчета, то возможны параметры:
      • Param:Поле=Значение - изменить параметр.
      • Immediate=Y - сразу вывести результаты.
      • ParamsSettings=X - код предустановки параметров.
      • GridSettings=X - код предустановки результатов.

Тип результата

Нет

Примеры

PROCESSCOMMAND(11,'Id=-1,SubType=17','properties') создать новый заказ
PROCESSCOMMAND('CURRENT','CmdParams=1007','print') напечатать выделенные объекты