![]() |
Модераторы: stron |
![]() ![]() ![]() |
|
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
Здравствуйте! Я программист (Delphi). Столкнулся со следующей проблемой:
в "1С:Предприятие" была сконфигурирована база данных, и там была написана некая функция, стоит задача вызывать эту функцию из внешней программы, т.е. как должен выглядеть код в частности на Delphi (можно на С++), который позволял бы вызывать эту функцию. -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
AkelaSQL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 14.9.2007 Где: Москва Репутация: 6 Всего: 7 |
О какой платформе идёт речь? Где расположена функция (какой модуль)? Как соединяетесь с 1С?
|
|||
|
||||
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
Меня интересует и для v7.7 и для v8.1 Соединяюсь, ну например для v8.1
Я особенно не шарю в 1С, знаю лишь то, что есть собственная конфигурация в 1С:Предприятие, ну и функция написанная 1С программистами. Знаю лишь то, что они ее разместят в то место, чтобы ее можно было вызвать из внешней программы -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
AkelaSQL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 14.9.2007 Где: Москва Репутация: 6 Всего: 7 |
Для 8.1
Тогда они должны поместить её в модуль внешнего соединения (желательно). Далее, после установки ком-соединения, выполняем: КомОбъект.ИмяФункции(); ИЛИ КомОбъект.EvalExpr("ИмяФункции()"); Для выполнения куска 1С - ного кода можно использовать: КомОбъект.ExecuteBatch("ОтветСервера = КаталогПользователя() + "01.tmp"; ТекстЗагружаемыеДанные = СоздатьОбъект("AddIn.V7TextFile"); ИнтернетОбъект = СоздатьОбъект("AddIn.V7HttpReader"); ИнтернетОбъект.КоличествоПопытокАвторизации = 0;") Для 7.7 аналогично, только процедуру нужно расположить в глобальном модуле. |
|||
|
||||
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
Спасибки. Тут еще одна проблема, чтобы протестить все это дело, мне нужно написать функцию в 1С, которую я бы вызывал. В 1С я не великий спец ![]() И еще а как я через EvalExpr узнаю результат, который вернула SaveToDBF? -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
AkelaSQL |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 14.9.2007 Где: Москва Репутация: 6 Всего: 7 |
Ф
Далее если вызвать
тогда Результат будет равен -1 Только я не рекомендую работать с интерактивными объектами и методами на стороне КомОбъекта. В качестве передаваемых параметров могут использоваться только переменные примитивных типов (строка, число, булево). Так что окошки диалога с пользователем лучше выводи в дельфях. |
||||
|
|||||
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
Спасибо!!!Вообщем создал я новую конфигурацию, затем создал в нем справочник, теперь хочу в 1С сделать форму с одной кпопкой при клике на которую должна вызываться SaveToDBF. Ток вот не фига не получается. AkelaSQL у меня к тебе огромная просьба, добавить, пожалуйста, в мою конфигурацию, которую я прикрепил, форму с кнопокой вызывающая SaveToDBF. А то я до кузькиной зимы в этом конструкторе буду ковыряться Это сообщение отредактировал(а) Delphist - 25.2.2009, 11:03 Присоединённый файл ( Кол-во скачиваний: 3 ) ![]() -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
AkelaSQL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 14.9.2007 Где: Москва Репутация: 6 Всего: 7 |
Размещение кнопки в форме справочника в твоём случае - это плохой подход. Создал тебе обработку и общий модуль, вызывай её.
У тебя релиз платформы какой-то старый, так что конфа может не открыться, обновляй платформу 1С Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() |
|||
|
||||
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
Поставил 8.1, все ок, твоя конфигурация открывается, спасибки - увидел твою формочку Но возникла следующая проблема, при коннекте к 1С через v81.COMConnector из под Delphi выдается ошибка {ОбщийМодуль.МодульВнешнегоСоединения(3,2)}: Процедура или функция с указанным именем не определена {Предупреждение} Может нужно добавлять эту функцию в модуль внешнего соединения, который не вручную создается, а вызывается через контекстное меню (правой кнопкой мыши) на слове Конфигуратор? ![]() Это сообщение отредактировал(а) Delphist - 25.2.2009, 14:34 Присоединённый файл ( Кол-во скачиваний: 5 ) ![]() -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
AkelaSQL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 14.9.2007 Где: Москва Репутация: 6 Всего: 7 |
1. В свойствах внешнего модуля должны быть установленны галочки: Глобальный, Клиент, Внешнее соединение.
2. Пользователь, под которым конектишься к 1С должен иметь право: Дополнительное право внешнего подключения (соединения), устанавливается на закладке "Прочее" в "Меню-Администрирование-Пользователи" Добавлено через 2 минуты и 49 секунд
можно и так, это монопенисуально... Добавлено через 4 минуты и 33 секунды Воронеж - хер догонишь.... Я кстати родом из Борисоглебска |
|||
|
||||
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
Так у меня этот список вообще пустой, я без пользователя подключаюсь - скорее всего по умолчанию как админ -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
AkelaSQL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 14.9.2007 Где: Москва Репутация: 6 Всего: 7 |
Заведи пользователя.
|
|||
|
||||
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
1. Да нет, дело не в этом. Я тут начал разбираться выясняется, что если мы работаем через v81.COMConnector (через com), то внешней функции 1С запрещено использовать функции интерфейса (т.е. вызывать диалоговые окна и прочее) 2. Результат = КомОбъект.EvalExpr("SaveToDBF("25.02.09") ") вызаывать так нельзя, потому что нужно передавать параметр даты в котором указано не только дата, но и время 25.02.09 00:00:00 (где в качестве нулей может стоять реальные часы:минуты:секунды), а иначе выдается ошибка невозможно провести преобразование даты. -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
AkelaSQL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 14.9.2007 Где: Москва Репутация: 6 Всего: 7 |
Я частично тебя об этом предупреждал:
Добавлено через 34 секунды Но это уже детали... |
|||
|
||||
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
А что нужно подправить в SaveToDBF чтобы ее можно было вызывать именно так SaveToDBF("25.02.09") а не SaveToDBF("25.02.09 00:00:00") -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "1C: Предприятие, SAP, ERP и учётные системы" | |
|
Запрещается! 1. Обсуждение крэков, кейгенов и других подобных программ Пробуйте искать сами или обращайтесь в приват к участникам форума. Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения. Также запрещается обсуждение проблем работы этих программ (что куда вписать, куда что скопировать и т.п...) 2. Давать ссылки на взломанные продукты
|
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | 1C: Предприятие, SAP, ERP и учётные системы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |