![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в самой 1C выполнить ее же выражение ?
ANB_Temp © (2006-04-10 12:21:00)Имеем строку с выражением. У 1С есть метод OLE EvalExpr, который позволяет посчитать выражение в виде строки. Но через OLE работать с 1С не могу, т.к. не могу передать свой контекст в вызваемую программу на делфи.
Есть ли в 1С встроенная функция языка, которая позволяет считать выражения динамически ?
Парсер на 1С писать не хочется, т.к. явно будет тормозить.
ANB (2006-04-11 18:03:00) [1]
> tesseract © (11.04.06 17:45) [22]
Да хрен с ними. И через метод отработает.
А геморр точно только начинается.
tesseract (2006-04-11 17:45:00) [2]
> Кстати, не смог передать в метод параметры - клинит его
Да не не клинит. Не забываем про SafeArray и методы работы с ними.
Гемор только начинается......
ANB (2006-04-11 17:03:00) [3]Фух. Пример с клипами завелся, я его уже почикал, засунул свои методы - работает.
> Неужели использование встроенного отладчика такая уж сложно-
> непостижимая штука ?!
Это мне не хотелось 1С грузить. У меня пустая база, а грузится все равно не быстро. Лог, кстати, уже и не понадобился.
Кстати, не смог передать в метод параметры - клинит его. Пришлось завести свойство и через него передавать.
Сергей М. (2006-04-11 13:48:00) [4]
> Воткнул пока везде запись в лог-файл
Неужели использование встроенного отладчика такая уж сложно-непостижимая штука ?!
tesseract (2006-04-11 13:47:00) [5]
> Но в лог ничего не пишется,
В какой лог?
Пример с клипами рабочий (D7).
> Запуск хоста - штука медленная.
Делаешь пустую базу. У меня 3 справочника и документ - стартует пулей.
Настоятельно не рекомендуется пользоваться SQL базами - тормоза при старте ощутимые.
ANB (2006-04-11 13:41:00) [6]Воткнул пока везде запись в лог-файл. Запуск хоста - штука медленная. Но в лог ничего не пишется, даже в разделах инициализации и в теле DLL.
Странно. Видимо я совсем кривой пример раздобыл.
tesseract (2006-04-11 13:34:00) [7]
> Раздобыл примерчик для делфи 4. Ничего не работает. :(((
Согласен. Кривой он. Хотя и реально работает.
лучше пример от восьмёрки - больше шансов понять процесс.
настройки :
Project-> options-> directory/conditionals ->
output directory: D:\1c_bases\BaseDir
Run -> parametrs ->
host application "D:\program files\1cv77\BIN\1cv7s.exe"
Parametrs "enterprise /nUserName /pUserPass /dd:\1c_bases\BaseDir"
Workin directory -> "D:\1c_bases\BaseDir"
Всё ок
Сергей М. (2006-04-11 13:21:00) [8]
> как я в качестве хоста 1С то запишу ?
Так и запиши - "C:\Program Files\1Cv77\BIN\1cv7s.exe"
Только не забудь и параметр хоста указать - enterprise
ANB (2006-04-11 13:13:00) [9]
> Сергей М. © (11.04.06 12:33) [14]
Упф. И как я в качестве хоста 1С то запишу ?
Странно, не работают готовые примеры, которые дала сама 1С.
Сергей М. (2006-04-11 12:33:00) [10]
> Ничего не работает
Встроенный отладчик тебе в руки.
ANB (2006-04-11 12:27:00) [11]
> tesseract © (11.04.06 11:07) [12]
Раздобыл примерчик для делфи 4. Ничего не работает. :(((
tesseract (2006-04-11 11:07:00) [12]Есть класс для создания 1с Addin.
Создан для избавления от ТХ кода при их создании.
минус - слабавато документирован. Зато поддерживает "перегрузку" методов и свойств :-)
ANB (2006-04-11 10:42:00) [13]
> Сергей М. © (11.04.06 10:38) [8]
Спасибо !
Сергей М. (2006-04-11 10:42:00) [14]
> ANB © (11.04.06 10:38) [9]
http://www.google.ru/search?hl=ru&q=1C%3A+%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F+%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F+%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D1%85+%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%BE%D0%B2&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=
ANB (2006-04-11 10:38:00) [15]
> Сергей М. © (11.04.06 10:37) [7]
А где почитать про Add-In 1С ?
Сергей М. (2006-04-11 10:38:00) [16]http://www.dinform.ru/kuban/htmls/public_htmls/9-103523.html
Сергей М. (2006-04-11 10:37:00) [17]
> ANB © (11.04.06 10:10) [4]
Неужели так сложно выговорить слово "1C Add-In", чтобы сразу стало понятно, о чем идет речь ?
Когда 1С загружает твой плагин, он получает управление в методе Init(), параметром которого тебе передается диспинтерфейс того Application-объекта, который обращается к плагину.
ANB (2006-04-11 10:26:00) [18]
> Когда ты грузишь Addin на 1с ты получаешь сылку на экземпляр
> 1с.
> Вызывая init тебе передаётся интерфейс запущенной 1с
А поподробнее, плз . . .
Чего сделать в 1С и откуда достать потом ссылку на экземпляр OLE 1С в делфи ?
tesseract (2006-04-11 10:20:00) [19]
> Вопрос - как в делфовой DLL подключится именно к тому экземпляру
> 1С, из которой ее вызвали ?
Когда ты грузишь Addin на 1с ты получаешь сылку на экземпляр 1с.
Вызывая init тебе передаётся интерфейс запущенной 1с.
ANB (2006-04-11 10:10:00) [20]
> Сергей М. © (11.04.06 09:54) [3]
Значится - исходное условие. На одном компе стоит несколько 1С. Штук 5 может быть запущено одновременно. Юзер жмет кнопку в 1С - должна подгрузится моя DLL на делфи и сделать полезные вещи (создать отчет), доставая инфу из той 1С, в которой нажали кнопку.
Вопрос - как в делфовой DLL подключится именно к тому экземпляру 1С, из которой ее вызвали ?
> tesseract © (11.04.06 09:27) [2]
evalExpr - это для выполнения выражения снаружи (через OLE). Пока не решен вопрос выше - решили сделать обмен через временные локальные таблицы.