Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в самой 1C выполнить ее же выражение ?


Страницы:   1 2

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). Пока не решен вопрос выше - решили сделать обмен через временные локальные таблицы.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо