Страница 1 из 2

Интерфейс Vschet

Добавлено: 11 окт 2004, 23:15
sol
Есть стандартный интерфейс Vschet,
который запускает табличную форму выбора документов-оснований на закупку и позиционируется на нужном документе:
RunInterFace('Vschet',nrec). А вот как сделать, чтобы этот документ еще и открыть, чтобы перейти в анкетную форму редактирования?

Re: Интерфейс Vschet

Добавлено: 13 окт 2004, 15:51
ecasoft
вообще с этим в Галактике единообразия нет. :) Иногда попадаешь в анкетную..иногда в табличную

Не пробывали написать так:

PutCommand(cmDefault);
RunInterface('VSchet');

Я не пробывал сам..кроме этого ничего придумать не могу :) вообще если интерфейс не имеет параметра, управляющего переходом, то ничего видимо не сделаешь :(

Re: Интерфейс Vschet

Добавлено: 14 окт 2004, 09:02
Maverick
никак не получится, ибо этот интерфейс имеет только параметр позиционирования на запись. чтобы еще и открывать на редактирование необходимо модифицировать VSchet, добавив еще один параметр н-р bEdit : boolean, а в cmDefault этого интерфейса добавить вызов события cmEdit, если bEdit=1 иначе просто позиционироваться на запись.

Кстати, Косякин Игорь не прав в том коде который привел ))) команда PutCommand если она используется в обработчике события, должна всегда стоять последней, т.к. все команды после нее не выполняются...

и еще VSchet - стал объектным интерфейсом - вызов через RunInterface - не оптимален ))

Re: Интерфейс Vschet

Добавлено: 14 окт 2004, 11:19
ecasoft
Ничего подобного. Команда putCommand ставит событие в очередь, но выполнение продолжается до конца обработчика. Это в отличие от команды ProcessCommand, при которой вызывается обработчик указанного события.

Re: Интерфейс Vschet

Добавлено: 14 окт 2004, 11:52
Maverick
Хехе.. это так в теории написано )))
А как оно на практике? Проверяли?
Я вот проверял ))) - мало похоже...

Re: Интерфейс Vschet

Добавлено: 14 окт 2004, 20:25
ecasoft
На практике сегодня проверил ту комбинацию, что написано выше - все работает...открывается все отлично...могу и перейти еще в создание новой записи..или вызвать горячее меню (тоже пробывал)..вообщем вызвать любое множество команд внктри интерфейса путем предварительной их записи в стек. Так что "никак не получится" сказано слишком круто :)

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

Re: Интерфейс Vschet

Добавлено: 15 окт 2004, 12:55
Maverick
хе.. очень интересные выводы. версию атлантиса можно узнать? до 3.03.19 включительно 100% у меня подобного не наблюдалось. до PutCommand доходило и усе - передавалась обработка этому событию для текущего окна (если оно в этом окне описано), иначе - аналогичному событию, стоящему по иерархии на ступеньку выше

Re: Интерфейс Vschet

Добавлено: 15 окт 2004, 13:31
ecasoft
Мы начинаем какой-то теоретический диспут. Главное не в том, что получалось когда-то или нет..а главное, что это ДОЛЖНО ТАК РАБОТАТЬ и в текущей версии это действительно так работает :) Давайте не играть в игру, кто кого победит, а просто конструктивно решать проблемы. Я думаю это выгодно обоим :)


Я проверял по-моему на 585 первый релиз. Но вообще, что алгоритм идет после Putcommand - это было с момента создания Атлантиса. Для этого и делалсь эта команда в принципе то. Дело может быть в другом...помнится были команды (они сожет и остались), которые портят очередь событий..и это вызывало глюки при такой работе (я правда, с таким не разу не сталкивался, но слышал от разработчиков). Может Вы тоже на это напоролись и не получилось. Но я не сталкивался..может повезло.

Я тут стал эксперементировать..вызывал меню ...и даже получается можно отчеты сформировать путем вызова интерфейса..т.е. записать в стек все события последовательно и вызвать интерфейс, то сразу ему предложат распечатать. СПАСИБО ЗА ВОПРОС АВТОРУ ТЕМЫ..навел на интересные мысли :) Получается, к примеру, я формирую счет сам, а затем хочу его просто распечатать...так я могу вызвать этой фейс и сразу перейти в окно и там в печать и появится список присоединеных форм для печати - здорово :)

Я понимаю, что с появлением объектов все это делать глупо будет, но пока их мало вполне можно все документа (не только счета) таким образом обрабатывать.

С уважением, Игорь

Re: Интерфейс Vschet

Добавлено: 18 окт 2004, 02:42
sol
А у меня почему-то не получилось.
Дело в том, что я написал для своих пользователей фейс: автоматическое формирование накладных на закупку,продажу, актов на услуги по счету. Очень удобно, не нужно бегать по меню. Своебразный интерфейс пользователя, ускоряющий работу в Галактике.
Так вот: счет создается автоматически, но чтобы войти в него все-таки приходится жать на Enter. Затем пользователь заполняет счет, жмет 2 раза на Esc и попадает в анкетную форму уже заполненой по этому счету накладной. Кому интересно, могу выслать исходник. Но это было написано для 5.2.

Re: Интерфейс Vschet

Добавлено: 18 окт 2004, 12:38
ecasoft
На 520, к сожалению, проверить не могу,т.к. нет этой версии. Может и правда на старых версиях глючило..не знаю.

Re: Интерфейс Vschet

Добавлено: 18 окт 2004, 19:39
JackVn
Дело в том, что в версии 5.85 этот интерфейс по умолчанию вызывает анкетную форму :-) сам по себе, поэтому и получилось с PutCommand.

Re: Интерфейс Vschet

Добавлено: 18 окт 2004, 21:09
Galpro_
На 582 ТОЖЕ не работает :))

Re: Интерфейс Vschet

Добавлено: 19 окт 2004, 11:56
Maverick
Ребят, в общем - не спорьте )))
Устроили мы тут мозговой штурм этой проблемы. В общем этот случай из ряда, когда баг Атлантис оказался во благо в конкретном случае.
Поясняю почему.

PutCommand () действительно помещает в очередь на стек выполнение определенного события. Но - для ТЕКУЩЕГО ОКНА (см. документацию по функциям ВИП). При нахождении в коде текущего окна этого события, оно выполняется, стек очищается.
А если не находит и встречается переход на другое окно/интерфейс (модально) то стек не чистится и запись там как бы "подвисает" и после инициализации его начинается вызов помещенных в стек событий )))

собсно все... в общем - не мудрствуйте лукаво ))) Об этом баге уже отписано по назначению - обещались проверить и если что - исправить...

Re: Интерфейс Vschet

Добавлено: 19 окт 2004, 13:02
ecasoft
JackVen

А также по умолчанию он вызывает горячее меню и все, что я написал.. :)

Напишите так:

Putcommand(cmDefault);
Putcommand(cmHotKeys);
Runinterface('Vschet',BaseDoc.Nrec);

Re: Интерфейс Vschet

Добавлено: 19 окт 2004, 17:12
JackVn
2 Косякин Игорь

Я просто факт привел, который реально проверил, что версии 5.85 без разницы стоит Putcommand(cmDefault) или нет, все равно вызывается анкетная форма(две недели назад я писал одну штуку и не знал как от этого избавиться) :)