OLE Обмен между базами #440140


#0 by gun200
Напи шите кто как решал проблема с таймаутом OLE 1C. Кто нить пытался через DLL решить ? Пока методом проб, только определил, что таймаут возникает в приложении 1С которое иницилизирует OLE и если нет ответа от базы которая иницилизирована в течении 2-х минут, то выходит сообщени о том что сервер не отвечает. Если обмен делать с помощью внешнего приложения, то ни каких сообщений не возникает, но такой гимор получаеться сначала открыть одну базу выгрузить, затем открыть вторую загрузить и выгрузить потом снова зайти в первую и загрузить и ещё и все ошибки отследить. Интересует можно ли через внешнию dll сделать обмен причём обращение к dll шло бы по циклу и если ответ 0 тогда продолжать а в этот момент dll бы совершала обмен и когда завершила его послала в клиента 1 и тем самым цикл бы завершился ? :)
#1 by ТелепатБот
#2 by Rie
Тебя смущает сообщение?
#3 by gun200
Да ! У нас обмен с базами по таймеру раз в 10 минут (Две базы Мобильная торговля туда приходят предзаказы и наша торговля и склад туда предзаказы проводяться и обновляються остатки )! и если сообщение не нажать "продолжить" дело не пойдёт. А нам надо что бы оператор ушёл на часик, а обмен в это время делался. На одном форуме видел что если свернуть окно 1С, то сообщений не будет - проверил оказалось "баян".
#4 by Mikeware
Тетя Оля и так тормознутая, а ты ее по таймеру... Поставь УРБД. А вообще, нафига _две_ _отдельных_ базы под мобильную торговлю?
#5 by skunk
коекакизпадсталавылез ... жги дальше ...
#6 by Mikeware
?????
#7 by Шахид
Поппробуй реализовать через ОбработкаОжидания в одной базе создаешь файл выгрузки в другой соответственно его обрабатываешь
#8 by Rie
Разбей обмен на части. Или обменивайся через файлы.
#9 by Шахид
или даже через 1 в мобильной торговле при записи предзаказа формируй сразу выгрузку а в торговле и склад или через ОбработкаОжидания или сделай пользователя робота. ну это если сильно ковырять торговлю и склад
#10 by Шахид
не хочешь
#11 by skunk
смешно сказал
#12 by dk
а почему 2 минуты не хватает? Большая выгрузка? Может подумать как ускорить 1С?
#13 by Mikeware
Автора назначили "Дежурным по кнопке"... В принципе, верное решение...
#14 by Mikeware
Эй, "дежурный по кнопке", на ответь...
#15 by gun200
Так получилось, там очень много документов у нас и так перегруженая торговля не хотелось ещё больше засорять. В итоге получился отдельный инструмент для контроля торговых. Да наверное легче будет мобильную в нашей базе сделать :) А почему дежурный по кнопке ?
#16 by gun200
Да так и было реализовано обработкой ожидания - это тот же таймер. Но очень часто не срабатывает обработка ожидания и проблему с Ole не решает.
#17 by Mikeware
А что значит "очень много"? Что значит "перегруженая торговля"? зы. "дежурный по кнопке" - потому, что в ниписино: "если сообщение не нажать "продолжить" дело не пойдёт". ВОт и подумал, что тебя назначили дежурить возле кнопки...
#18 by Serginio1
Можешь либо ВК либо внешнее приложение. Ищи окно и жми на кнопку procedure findButtonEndPress(wnd:Integer;NameButton:string); Var    if  Nm=NameButton then Соответственно для англоязычной версии немного другие названия кнопок. У модальных окон как правило GetClassName = #32770
#19 by gun200
А УРБД конкретно быстро работает каждые десять минут обмениваться :) OLE номально иницилизируеться, я бы не сказал что тормозит темболее нужно только иницилизировать а дальше пусть себе висит обмен происходи через XML так что там только команды На открытия формы.
#20 by Serginio1
CloseServerBasy вызывай из EnumWindows (@CloseServerBasy, 0);
#21 by gun200
Serginio1 да такое я делал, только мне кажетьяс это примитивно, почему бы этот обмен не реализовать через внешнее приложени без всех этих окон ?
#22 by gun200
На да точно "Дежурный ... :)" Насчёт того что две базы так очень много документов у нас в Торговле и как бы в сетре всё что в Мобильной торговле нам не нужно А на счёт ттого что сразу проводить накладную в нашей торговле, то очень долго КПК будет ждать ответа от мобильной торговли.
#23 by gun200
Serginio1  Спасибо забыл сказать :) Спасибо !
#24 by Serginio1
Примитивно согласен, но побороть тайм маут не нашел. Кроме того нужно отслеживать зависание приложение. Это в комплексе. Используй вместо оле пайпы или сокеты
#25 by gun200
Serginio1 А через внешнее приложение не пробывал ? Тогда сразу таймаут пропадает, но столько лишних глобальных переменных появляеться :) И по скорости особенно интересно ?
#26 by Valery
Незняю какая у вас архитектура, но может попробывать через XML  менятся, тем более если структуры баз одинаковые, то правила обмена  слепить недолго
#27 by gun200
Valery XML и используем :)
#28 by Serginio1
У прости себе работы и сделай через соккеты или пайпы. Скорость по ОЛЕ не самый быстрый вариант. Я использую либо прямые запросы, либо сокеты с ТСД, либо вызов глобальной функции С разбитием на небольшие куски либо с ВК контролирующее модальные окна.
#29 by gun200
Ок. Ещё раз спасибо буду пробывать !
#30 by Serginio1
Удачи
#31 by gun200
На а если я буду только запускать сохранять какието переменные за пускать обработку в 1С которая будет ложить в xml а через ole в другой базе буду это подгружать из XML ? Как думайте всёравно долго будет ?
#32 by gun200
Ладно как допишу покажу что хочу, а то кажеться не понимаете мои бредовые фантации :)
#33 by Шахид
уважаемый зачем тебе и Оле и Xml ? Я так думаю если ты используешь Оле то работаешь,так сказать, из одной конфигурации напрямую с данными второй конфигурации ну можешь док создать, справочник и т.д. зачем тебе  тогда xml?    Если ты формируешь XML файлы загрузки-выгрузки зачем тебе Оле. Можно ведь создать в 1с пользователя "Робот" которому при начале работы системы запускают отчет кторый делает загрузку данных в том случае если находит файл. тогда не понятно зачем нужно Оле?
#34 by gun200
А как я с одним роботом выгружусь и загружусь снова выгружусь и снова загружусь ? Уменя не в одну сторону обмен ! Принцип такой я с МТ выгружаю предзаказы запускаю через OLE ТОрговлю (отчёт) и в она у меня при запуске загружает предзаказы и выгружает мне ту информацию которую я запросил с МТ. Потом закрывается и обработка в МТ автоматом подгружает выгрузку с торговли. Вот так примерно. Вот я и спрашиваю можно для этого использовать внешнее приложение, не повлияет ли оно на скорость работы. Запросы через Ole точно много времени займут. Там штук 5 переменных и может пару масивов для сохраненния сообщений от баз
#35 by Шахид
делай 2 робота
#36 by Шахид
1 в одной базе 2 во второй
#37 by gun200
Да не неоптимально будет думаю лучше через внешнее приложени
#38 by gun200
но за совет спасибо :)
#39 by Шахид
работа в Оле очень сильно отличается от обычной нет ТекущийДокумент ТекущийЭлемент трудно сравнивать элементы 1 базы и элементы 2
#40 by Шахид
еще тот гемор
#41 by Шахид
ну дело твое
#42 by Табуретко
Автар не ищет легких путей... :))
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С