BEST logo логотип компании БЭСТ - программы для бизнеса ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
ПОДДЕРЖКА
+7 (495) 775-66-76
consult@bestnet.ru
СКАЧАТЬ
Обновления
Дистрибутивы
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Главная  / Поддержка  / Форум  / Публичные форумы  / Программирование приложений  / Ещё одно событие для запуска плагинов

Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Ещё одно событие для запуска плагинов, "Выход из документа"
 
Добрый день.

Испытываю потребность в ещё одной точке вызова плагинов. Ситуация такова. В событии "Вход в документ" производится некая подготовительная работа, плодами которой пользуется документ. При сохранении документа происходит откат подготовительной работы. А выход из документа по ESC не отслеживается. Получается что результаты подготовительной работы остаются в базе, мешая впоследствии.
Попытаюсь, конечно, придумать что-то через "работа в реестре". Но было бы удобней иметь событие "Выход из документа", запускаемое независимо от того, как был осуществлён выход из документа.
Изменено: Алексей Новиков - 23.12.2008 08:45:37
С уважением, Новиков Алексей.
 
Цитата
Алексей Новиков пишет:
Добрый день.

Испытываю потребность в ещё одной точке вызова плагинов. Ситуация такова. В событии "Вход в документ" производится некая подготовительная работа, плодами которой пользуется документ. При сохранении документа происходит откат подготовительной работы. А выход из документа по ESC не отслеживается. Получается что результаты подготовительной работы остаются в базе, мешая впоследствии.
Попытаюсь, конечно, придумать что-то через "работа в реестре". Но было бы удобней иметь событие "Выход из документа", запускаемое независимо от того, как был осуществлён выход из документа.


А какой документ, собственно? Тут на многие "документы" есть исходный код, которым можно воспользоваться и самому вызывать ввод нового документа....
О чем речь конретно?
Изменено: Саак Шахламджян - 23.12.2008 12:21:11
 
Алексей я обычно до записи или контроля храню в переменных или в массиве....
Так совсем нельзя решить Вопрос ?
 
И еще просьба - про какой БЭСТ идет речь ?
 
Пример, когда не помогут массивы и переменные.
При открытии существующего заказа требуется включить в прайс-лист складские карточки, использованные в заказе. После корректировки заказа открытые карточки необходимо закрыть. Чтобы они не мешались при выписке другого заказа.

Пока мне это необходимо в БЭСТ-5.
С уважением, Новиков Алексей.
 
Цитата
Алексей Новиков пишет:
Пример, когда не помогут массивы и переменные.
При открытии существующего заказа требуется включить в прайс-лист складские карточки, использованные в заказе. После корректировки заказа открытые карточки необходимо закрыть. Чтобы они не мешались при выписке другого заказа.

Пока мне это необходимо в БЭСТ-5.

Там есть событие вход в прайс-лист. Правда в СП11 или 12 так и не заработало...
Можно было бы на это событие подвесить все что Вам требуется!!!! (Если Вас правильно понял все будет в одной спецфункции)
А Ваша спецфункция возвращала бы 0 по окончанию и реальный прайс никогда бы не открывался...
Изменено: Саак Шахламджян - 24.12.2008 10:39:11
 
Цитата
Саак Шахламджян пишет:
Можно было бы на это событие подвесить все что Вам требуется!

Можно. Но зачем ради такой ерунды переписывать работу с картотекой?

Я ведь не прошу чего-то такого хитро вывернутого и срочно. Событие "выход из документа" симметрично событию "вход в документ" и является обязательным для обеспечения логической совершенности системы.
Изменено: Алексей Новиков - 24.12.2008 10:48:04
С уважением, Новиков Алексей.
 
Цитата
Алексей Новиков пишет:
Цитата Саак Шахламджян пишет:
Можно было бы на это событие подвесить все что Вам требуется!
Можно. Но зачем ради такой ерунды переписывать работу с картотекой?

Зачем же переписывать!!!!!
Делаем временную таблицу. Открываем ее тем же алиасом, которым д.б. прайс-лист(естесственно закрыв реальный) и вместо обычного прайса откроется Ваша....

(Правда было бы неплохо знать в какой же момент должен запускаться плагин по "Вход в прайс". Если после этого входа, тогда это вариант, если же до, тогда не получиться... И придется переписывать работу в картотеке.[там и делать-то не особо много. Initlist и выбор]. Но все равно неясно как оно должно работать. Как передается "выбор" в заказ в этом случае...)

P.S. У нас для работы "своего прайса" вообще пришлось даже отказаться от стандартной формы редактирования/создания заказа...
Изменено: Саак Шахламджян - 24.12.2008 10:55:50
 
А вообще по поводу исходников, о которых я говорил выше:
Код
 PRIVATE oZakaz
 PRIVATE aResult
 PRIVATE ll

 oZakaz := ZakazDoc():New()
 oZakaz:DopCode := "    13"
 aResult := oZakaz:Edit()
 ll := aResult[1]
 IF ll
    SayAndWait("Заказ был открыт на редактирование.")
 ELSE
    SayAndWait("Произошли ошибки!")
    IF LEN(aResult)>2
       SayError(aResult[3])
    ENDIF
 ENDIF


Можно легко отследить начало редактирования и его окончание. Так что если Вас интересует только редактирование заказа, то можно повесить плагин на работу в реестре:
Код
....
SETKEY(13,{||n2Ex:=MyPlugin(MDOC->DOPCODE),n2Ex})
.....


который бы полностью отслеживал редактирование документа и результат редактирования... (Я только однажды пробовал работу с этими объектами, но ни разу не использовал.)
Изменено: Саак Шахламджян - 24.12.2008 11:10:24
 
При определённом количестве свободного рабочего времени и готовности заказчика его оплачивать, можно переписать весь БЭСТ почти с нуля. Как говорила мне когда-то знакомый бухгалтер, "Алексей, мы ведь работаем не для того, чтобы наработаться".
С уважением, Новиков Алексей.
 
Цитата
Алексей Новиков пишет:
При определённом количестве свободного рабочего времени и готовности заказчика его оплачивать, можно переписать весь БЭСТ почти с нуля. Как говорила мне когда-то знакомый бухгалтер, "Алексей, мы ведь работаем не для того, чтобы наработаться".

Описанные действия с исходниками только что опробовал...[Специально Для Вас и из чистого любопытства]
Прошло 8 минут со времени моего последнего сообщения. 8 минут так много?
Вот код:
Код
#include "hbclass.ch"
#include "BO_Const.ch"
TestF()
procedure TestF()
Memvar n2Ex
Private n2Ex
SETKEY(13,{||n2Ex:=MyPlugin(MDOC->DOPCODE),n2Ex})
return
STATIC Function MyPlugin(sDopCode)
Memvar oZakaz,aResult,ll
PRIVATE oZakaz
 PRIVATE aResult
 PRIVATE ll
SayAndWait("Редактирование началось")//момент ДО

 oZakaz := ZakazDoc():New()
 oZakaz:DopCode := sDopCode
 aResult := oZakaz:Edit()
 ll := aResult[1]
 IF ll
    SayAndWait("Заказ был открыт на редактирование.")
//редактирование закончилось. Момент после...
 ELSE
    SayAndWait("Произошли ошибки!")
//редактирование закончилось с ошибками!!!. Момент после...
    IF LEN(aResult)>2
       SayError(aResult[3])
//можно и не выводить ошибки
    ENDIF
 ENDIF
RETURN 1
Изменено: Саак Шахламджян - 24.12.2008 11:26:34
 
Ну да, посрамили в научном споре. Но событие всё равно хочу. :-)
С уважением, Новиков Алексей.
 
Цитата
Алексей Новиков пишет:
Ну да, посрамили в научном споре. Но событие всё равно хочу. :-)

Да это тут ни при чем.
К стати, было бы много удобнее вместо событий дать возможность "ковырять" внутри этих самых форм редактирования. Добывить еще кое-какие события/свойства...(дать возможность вешать плагины внутри этой формы редактирования).
Там бы собственно и было бы Ваше "Закрытие документа"...
Да вообще дало бы миЛьён возможностей (мне бы не пришлось писать создание заказов и пр...)
 
"Ковырять внутри форм" не соответствует парадигме программы, которая не задумывалась и не позиционируется как средство разработки. При добавлении точки вызова события требуется, чтобы в этой точке состояние системы было каким-то образом зафиксировано. Иначе, в перспективе, устанавливаемые обновления могут запросто разрушить логику работы плагина.
С уважением, Новиков Алексей.
 
Цитата
Алексей Новиков пишет:
"Ковырять внутри форм" не соответствует парадигме программы, которая не задумывалась и не позиционируется как средство разработки. При добавлении точки вызова события требуется, чтобы в этой точке состояние системы было каким-то образом зафиксировано. Иначе, в перспективе, устанавливаемые обновления могут запросто разрушить логику работы плагина.

А спецфункции - это разве не ковыряние внутри форм...?
Обновления выходят и ничего...
Тем более событие "Вход в прайс-лист" собственно происходит внутри формы...
(А вот повесить событие по нажатию F4-добавление внутри создания заказа нельзя... Или по F8)
Я имел ввиду не изменение работы самой формы, а лишь "добавление доп точек разрыва" куда можно втиснуться...
 
Алексей Вашу просьбу зафиксирую для разработчика.
Страницы: 1
Читают тему (гостей: 1)