[Logo] Форум ПАРУС
Как передать в скрипт пользовательского приложения значение параметра с формы ?  XML
Индекс форума » 8.хх Системные средства
Автор Сообщение
ERM300
Новичок

Зарегистрирован: 01.02.2013 14:11:45
Сообщений: 17
Оффлайн

Добрый день всем.
У кого-нибудь есть успешный опыт использования в пользовательском приложении параметров для действий ? Поделитесь пожалуйста.
Проблема в том, что не удается в пользовательском приложении (VBScript) передать в параметр пользовательской процедуры скрипта значение параметра установленного в диалоговой форме.
[Email]
TIRED_NICK
Пользователь

Зарегистрирован: 04.03.2013 15:47:18
Сообщений: 365
Оффлайн

Приведите кусок кода вашего приложения - так проще будет.

Это сообщение было изменено 2 раз. Последнее изменение было в 01.10.2013 10:59:26

ERM300
Новичок

Зарегистрирован: 01.02.2013 14:11:45
Сообщений: 17
Оффлайн

Скрипт тупой и приведен ниже, но для тестирования я использую простую визуализацию параметра,
где DWORK_DATE - это мнемокод параметра пользовательского приложения (совпадает с именем параметра процедуры)
попытки использовать для указания того, что нужно взять значение параметра ПП заключением его имени в угловые скобки или
установкой перед его именем двоеточия (по аналогии с неименованными блоками) не увенчались успехом, появляется сообщение
о синтаксической ошибке

sub ShowParam()
Msgbox("Hello - " & DWORK_DATE)
end sub


sub UpdateWorkDay()
if GetDocumentCount = 1 then
' Msgbox("Hello - ")
StoredProc.StoredProcName = "P_UDOT_PRORDSPPFMPRS_UPDATE"
StoredProc.ParamByName("NCOMPANY").Value = COMPANY
StoredProc.ParamByName("NPRN").Value = GetDocument(0)
StoredProc.ParamByName("NWORK_RECTYPE").Value = NWORK_RECTYPE 'WorkControl.Checked
StoredProc.ParamByName("DWORK_DATE").Value = DWORK_DATE 'WorkControl.Text

StoredProc.ExecProc

else
Msgbox("Помечено более одной записи или ни одной. Исправления НЕ будет.")
end if
end sub
[Email]
TIRED_NICK
Пользователь

Зарегистрирован: 04.03.2013 15:47:18
Сообщений: 365
Оффлайн

Два вопроса:
1. Где объявление переменных?
2. Что в итоге это приложение делает? Смею предположить, что вносит исправление в разделе "Приказы (пункты, параметры исполнения)". Тогда не совсем ясно, почему нельзя сделать то же самое с использованием пользовательской процедуры?
ERM300
Новичок

Зарегистрирован: 01.02.2013 14:11:45
Сообщений: 17
Оффлайн

1. А как нужно объявлять переменные для параметров ?
Попытка ввести в скрипт объявление переменных способом приведенным ниже , не увенчалась успехом
т.е. визуализации добиться не удалось

Dim NWORK_RECTYPE, DWORK_DATE

2. Именно в приказах, а первым заходом и была попытка использовать пользовательскую процедуру. Как видно
из наименования процедуры запуска, действие это исправление, а для исправления нужно сначала визуализировать
исправляемые значения, а для этого их нужно получить.
а) вариант использовать для инициализации полей пользовательской формы процедуру для "пересчета"
(устанавливается через валидатор пользовательской формы) провалился по причине ошибки при инициализации
входных параметров процедуры пересчета регистрационным номером записи и идентификатором организации через контекстные переменные
(обе стабильно инициализируются "1")
б) вариант использования скрипта срабатывающего после открытия формы, тоже провалился по причине некорректной инициализации
переменной DOCUMENT (регистрационный номер записи - стабильно инициализируется "1")

Вариант с пользовательскими приложениями, судя по вашим словам, пока не безнадежен.
[Email]
ZAKHARKIN_I_V
Пользователь
[Avatar]
Зарегистрирован: 06.11.2012 13:40:35
Сообщений: 309
От: Иван Захаркин
Оффлайн

А почему бы не использовать параметры пользовательских приложений?
[Email]
ERM300
Новичок

Зарегистрирован: 01.02.2013 14:11:45
Сообщений: 17
Оффлайн

Так я как раз и спрашиваю каким образом эти параметры пользовательских приложений и можно передать
в качестве параметров основных процедур в скрипте (VBScript) ?

Может пример написан неправильно, может другие неявные условности не соблюдены ?
Я с этими параметрами никогда до этого не работал.
[Email]
REDKNIGHT
Пользователь

Зарегистрирован: 24.01.2013 11:49:17
Сообщений: 391
От: Андрей Захаров
Оффлайн

Есть стандартная функция GetParamValue (описана в справке польз.приложений). Её пробовали использовать?
В вашем примере это должно быть так:
[Email]
ERM300
Новичок

Зарегистрирован: 01.02.2013 14:11:45
Сообщений: 17
Оффлайн

Спасибо. Проблема закрыта.
[Email]
SARGEANT
Опытный пользователь

Зарегистрирован: 01.02.2013 14:12:25
Сообщений: 1981
Оффлайн

вообще справку родную читать не вредно. Она очень недалеко лежит, на клавише F1


там про GetParamValue,
и еще про много чего интересного
написано
 
Индекс форума » 8.хх Системные средства
Перейти: