Добрый день!
СП31 ХФ1
На вход в документ (заказы продаж) стоит hrb плагин, при нажатии в реестре документов F6 - вылетает большой банер с ошибкой "неверный аргумент" на мой плагин. - причём тут фильтр, если вызов на вход в документ, это в БЭСТе ошибка или я чего-то недопонял с вызовом?
Вызов с параметром:
000060,частное лицо
Код
altd()
PRIVATE A1,A2
A2:=VALTYPE(APARS)
IF VALTYPE(APARS)='A'.OR.LEN(APARS)<1
A1:=.F.
ELSE
A1:=.T.
ENDIF
IF LEN(ALLTRIM(PPART_CODE))=0 .and. PPART_TYPE="1"
PPART_CODE:=SUBSTR(aPars,1,6)
PPAYER:=SUBSTR(aPars,1,6)
PGRYZPLAT:=SUBSTR(aPars,1,6)
PGRYZPERE:=SUBSTR(aPars,1,6)
PAGENTNAME:=SUBSTR(aPars,AT(',',aPars)+1,250)
END
причём, если в документ войти/выйти - ошибки не происходит
Если посмотрите внимательно описание функции Initlist, то обнаружите. что кнопки F4,Enter,F6 обрабатываются одним и тем же механизмом.
Я давно сталкиваюсь с такими вопросами при работе по событию "вход в документ" и всегда анализирую какой вариант входа используется.
В классике это переменная nApp, но в initlist она есть а в плагине может быть не видна. Но как правило в привате есть переменная-аналог с нужным признаком. Посмотрите в отладчике - думаю Вы ее найдете и опираясь на ее значение - при фильтре она будет иметь значение 0 обойдете эту проблемку
что-то не соображу, по F6 она называется NAPP, а по входу в документ её вообще нет, вернее она NAPPINPUT
теперь конструкция на F6 нормально работает, а на вход даёт ошибку
Константин, Добрый день!
я в плагине "по требованию" из реестра заказов брал переменные STATUS+STATUS1 и если ="11", то работаем (статус черновик)
но вот пошли отгрузки, и выяснилось, что если сначала отгрузить заказ (или просто зайти/выйти из отгруженного заказа), то эти переменные при любом запуске плагина, хоть вход в документ, хоть создание нового (даже в момент его записи) равны "13" - отгружен
Вопрос - это ошибка СП31ХФ2? или так и должно быть?
Никогда не пользовался этими переменными.
если это переменные памяти значит разрабочик их обновляет только там , где ему это надо.
Лично я считаю надо анализировать nAppinput или nApp как и в случае с фильтром
если ввод документа - то 100% черновик
если редактирование - читаем статус в БАЗЕ
Программирование состоит элементарно из этапов: описывается структурная схема (постановка задачи), затем функциональная схема, затем алгоритм (математика и логическая схема процедуры) и позже программирование на языке. При условии, что на стадии постановки задачи решены ы с базой данных т. е. информационным обеспечением. Этот ликбез надо усвоить или вообще не браться за создание даже таких маленьких плагинов. Кроме того надо научиться вести отладку, тестирование отдельно, прежде чем подсоединяться к БЭСТ. Толка не будет от того, что кто-то Вам поможет и найдёт ошибку в цикле или условно, или без условном переходе, или порядке обнуления, или своевременного присвоения значений переменным. Удачи.