Список форумов Акцент Акцент
официальный форум разработчика программы Акцент
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Проблема с app.CreateForm

 
Начать новую тему   Ответить на тему    Список форумов Акцент -> Акцент 7.0
Предыдущая тема :: Следующая тема  
Автор Сообщение
AllexL



Зарегистрирован: 10.03.2005
Сообщения: 434
Откуда: Donetsk

СообщениеДобавлено: Пт Мар 01, 2013 11:03 am    Заголовок сообщения: Проблема с app.CreateForm Ответить с цитатой

Код:

Sub ReCalc_operations
Dim.....
......
For i = 1 To ops.Count
   Set op = ops.item(i)
   m.stepIt
   If Not (op Is Nothing) Then
         Set frm = app.CreateForm( CLng(op.FormId), CLng(op.Id))
         Pause
         Pause
         If Not frm Is Nothing Then
            gi = frm.guid
            frm.readonly = False
            frm.visible = True
            frm.FireUserEvent "alx_RFC_Calc"
            Pause:Pause
            frm.close
            DoEvent:DoEvent:DoEvent
            app.waitForCloseForm gi
            Pause
            frm = Empty
         End If
   End If
Next
m.close
End Sub
Sub Pause
Dim i
For i =1 To 5000
   DoEvent
Next
End Sub


Проблема в том, что уже на второй итерации, во время выполнения команды app.CreateForm, вылетает ошибка "Failed to create empty document".
Документ с указанным Doc_ID и FRM_ID - существует

Какие идеи?

p.s. A-SQL 7.0496[/code]
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Oleksandr
Гость





СообщениеДобавлено: Пт Мар 01, 2013 11:16 am    Заголовок сообщения: Ответить с цитатой

Зачем нужно приведение типов CLng?
Зачем нужно это? :
Код:

Sub Pause
Dim i
For i =1 To 5000
   DoEvent
Next
End Sub

Поставьте вместо frm = Empty: Set frm = Nothing
Вернуться к началу
AllexL



Зарегистрирован: 10.03.2005
Сообщения: 434
Откуда: Donetsk

СообщениеДобавлено: Пт Мар 01, 2013 11:51 am    Заголовок сообщения: Ответить с цитатой

Oleksandr писал(а):
Зачем нужно приведение типов CLng?
Зачем нужно это? :
Поставьте вместо frm = Empty: Set frm = Nothing


я бы поспорил, что правильней, но не буду: поставил nothing и убрал clng. Результат - тот же
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Oleksandr
Гость





СообщениеДобавлено: Пт Мар 01, 2013 12:20 pm    Заголовок сообщения: Ответить с цитатой

AllexL писал(а):
Результат - тот же

А если сделать так:

Код:
         
        If Not frm Is Nothing Then
            gi = frm.guid
            frm.readonly = False
            frm.visible = True
            frm.FireUserEvent "alx_RFC_Calc"
            Pause:Pause
            frm.close
            set frm = Nothing
            app.waitForCloseForm gi
         End If

Тут вот еще кое что написано, может поможет: http://www.accent6.com/forum/viewtopic.php?t=613&highlight=failed+++create+empty+document
Вернуться к началу
kris



Зарегистрирован: 12.01.2006
Сообщения: 371

СообщениеДобавлено: Пн Мар 04, 2013 10:28 am    Заголовок сообщения: Ответить с цитатой

Что-то смутно помнится про файловую систему, одновременные коннекты к серверу и т.д... Лень искать.
Хотя ИМХО запускать форму и FireUserEvent для пакетной обработки операций - плохой тон. Я выношу код из FireUserEvent в отдельный модуль и запускаю его, при чем модуль по возможности инклудю. Зачем вам лишние разы открывать/закрывать форму, гонять ее по сети, нагружать все? Случается иногда перепроводить сотни и тысячи документов, если бы делал это через CreateForm - повесился бы в ожидании результата.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
AllexL



Зарегистрирован: 10.03.2005
Сообщения: 434
Откуда: Donetsk

СообщениеДобавлено: Пн Мар 04, 2013 2:36 pm    Заголовок сообщения: Ответить с цитатой

kris писал(а):
Что-то смутно помнится про файловую систему, одновременные коннекты к серверу и т.д... Лень искать.
Хотя ИМХО запускать форму и FireUserEvent для пакетной обработки операций - плохой тон. Я выношу код из FireUserEvent в отдельный модуль и запускаю его, при чем модуль по возможности инклудю. Зачем вам лишние разы открывать/закрывать форму, гонять ее по сети, нагружать все? Случается иногда перепроводить сотни и тысячи документов, если бы делал это через CreateForm - повесился бы в ожидании результата.


Вопрос "почему", конечно, самый интересный.
Основная форма входит в настройку, которая обновляется с периодичностью 1-2 раза в месяц. Если бы не это обстоятельство, я бы давно уже перенес все внутрь, к примеру, шаблона или формы. Я свою часть кода добавляю в форму с помощью Form.AddScriptFragment (сразу скажу, что перенос всех модулей программ в код формы ситуацию не изменил, ошибка все-равно появляется). Думаю, ошибка не в правах, доступах, и т.д.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
olimp
Site Admin


Зарегистрирован: 10.03.2005
Сообщения: 2661

СообщениеДобавлено: Пн Мар 04, 2013 4:16 pm    Заголовок сообщения: Ответить с цитатой

kris писал(а):
Что-то смутно помнится про файловую систему, одновременные коннекты к серверу и т.д... Лень искать.
Хотя ИМХО запускать форму и FireUserEvent для пакетной обработки операций - плохой тон. Я выношу код из FireUserEvent в отдельный модуль и запускаю его, при чем модуль по возможности инклудю. Зачем вам лишние разы открывать/закрывать форму, гонять ее по сети, нагружать все? Случается иногда перепроводить сотни и тысячи документов, если бы делал это через CreateForm - повесился бы в ожидании результата.


Вычисления, связанные с проводками, нужно выносить в шаблон. А в форме оставлять только сервис, связанный с вводом информации.

Все остальное от лукавого Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
nikman



Зарегистрирован: 10.03.2005
Сообщения: 786
Откуда: Украина, Донецк

СообщениеДобавлено: Пн Мар 04, 2013 7:31 pm    Заголовок сообщения: Ответить с цитатой

AllexL писал(а):
...ошибка все-равно появляется). Думаю, ошибка не в правах, доступах, и т.д.

Ошибки нет. Все работает без единого DoEvent.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail AIM Address MSN Messenger
olimp
Site Admin


Зарегистрирован: 10.03.2005
Сообщения: 2661

СообщениеДобавлено: Вт Мар 05, 2013 6:59 am    Заголовок сообщения: Ответить с цитатой

nikman писал(а):
AllexL писал(а):
...ошибка все-равно появляется). Думаю, ошибка не в правах, доступах, и т.д.

Ошибки нет. Все работает без единого DoEvent.


если бы было все так просто ...
ты тестируешь на той же базе и том же прикладном решении ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
AllexL



Зарегистрирован: 10.03.2005
Сообщения: 434
Откуда: Donetsk

СообщениеДобавлено: Вт Мар 05, 2013 9:37 am    Заголовок сообщения: Ответить с цитатой

olimp писал(а):
nikman писал(а):
AllexL писал(а):
...ошибка все-равно появляется). Думаю, ошибка не в правах, доступах, и т.д.

Ошибки нет. Все работает без единого DoEvent.


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

Нет, на разных. Результат - одинаков Sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
nikman



Зарегистрирован: 10.03.2005
Сообщения: 786
Откуда: Украина, Донецк

СообщениеДобавлено: Вт Мар 05, 2013 12:53 pm    Заголовок сообщения: Ответить с цитатой

AllexL писал(а):
olimp писал(а):
nikman писал(а):
AllexL писал(а):
...ошибка все-равно появляется). Думаю, ошибка не в правах, доступах, и т.д.

Ошибки нет. Все работает без единого DoEvent.


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

Нет, на разных. Результат - одинаков Sad

Да, на разных. Результат - одинаков. Все работает. :)

Вот например база 7.0 дао вообще без решения.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail AIM Address MSN Messenger
Oleksandr
Гость





СообщениеДобавлено: Вт Мар 05, 2013 4:04 pm    Заголовок сообщения: Ответить с цитатой

nikman писал(а):
AllexL писал(а):

Нет, на разных. Результат - одинаков Sad

Да, на разных. Результат - одинаков. Все работает. Smile

Very Happy
Вернуться к началу
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Акцент -> Акцент 7.0 Часовой пояс: GMT + 2
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group