Еще раз добрый день!
Выполняю одни и те же действия в Б5-33 и Б5-34. В Б5-33 проходит, а в Б5-34 нет.
Результат компиляции. W000:Не указаны библиотеки, с которыми нужно линковаться!
В документации (той, что есть) ничего по этому поводу не нашел.
:
Где и что надо указывать для линковки?
"Опции" - "Настройки IDE" - "Вызывать линковщик после компиляции". Снимите галку.
Или укажите библиотеки для линковки в свойствах проекта ("LIBRARIES") :-)
Алексей Новиков пишет:
"Опции" - "Настройки IDE" - "Вызывать линковщик после компиляции". Снимите галку.
Или укажите библиотеки для линковки в свойствах проекта ("LIBRARIES") :-)
Галку снимал и снова ставил, ничего не меняется.
Прошу уточнить какие библиотеки надо указать для линковки. Пробую пока пример из Быстрого старта.
Алексей Новиков пишет:
"Опции" - "Настройки IDE" - "Вызывать линковщик после компиляции". Снимите галку.
Или укажите библиотеки для линковки в свойствах проекта ("LIBRARIES") :-)
Подключил все файлы с расширением lib версии 34. Результат не изменелся.
Алексей Новиков пишет:
Надо не lib, а bdll.
Достаточно для начала pll.bdll
Там все основные функции скомпилированы.
Алексей!
Подставил pll.bdll и свой bdll. Результат тот же. Где еще искать.
Привожу полный текст: Результата компиляции.
Библиотека: C:/PROGRAM FILES/BEST/BEST5_34/SERVER/DATA/PRO/USERLIBS/userlibpro.bdll размер 251.
Проверка внешних функций, библиотеки: C:/PROGRAM FILES/BEST/BEST5_34/SERVER/DATA/PRO/USERLIBS/userlibpro.dt_
Load symbols from C:/PROGRAM FILES/BEST/BEST5_34/SERVER/DATA/PRO/USERLIBS/userlibpro.bdll
W0000 :Не указаны библиотеки, с которыми надо линковаться!
Error: Нет реализации функции SAYANDWAIT
Алексей!
Благодаря Вашей помощи, после нескольких переустановок БЭСТ-5-34-6 и многократного повторения одних и тех же действий линковка прошла.
Эмпирически вышел на следующую последовательность действий:
1. Установить БЭСТ-5-34-6. Развернуть БД.
2. Запустить BestIde.exe. Снять галку Опции – Настройки – Соединение c SourceSafe. Выйти.
3. Запустить BestIde.exe. Выбрать предприятие. Создать пользовательский проект. Открыть окно редактора. Написать процедуру.
4. Настроить Свойства проекта – Общее и Переменные среды как у Вас.
5. Нажать F7.
После этого дальнейшие компиляции и линковки идут.
Возможно, кто-то скажет, что все это бред. Спорить не буду. Но, увы, по другому убрать сообщение W0000 :Не указаны библиотеки, с которыми надо линковаться! у меня не получалось. Проверял на двух машинах.
Компиляция прошла, но продолжить пример из Быстрого старта в Б-5-34-6 все равно не получилось.
Сделал все как написано в Быстром старте:
1. Запустил Best.exe –d. По Alt-Tab перешел в БЭСТ. В АРМе по Ctrl-F5 написал:
Имя файла: @MyTest
Параметры:
Вызов: по требованию
Горячая клашиша: K_ALT_1
2. Запускаю процедуру по Alt-1 в ответ получаю сообщение:
Ошибка при выполнении функции MyTest
Ровно то же самое в БЭСТ-5-33 работает. Открывается окно отладчика и можно пройти с помощью клавиши F10 по строкам.
Похоже, что в БЭСТ-5-34-6, где-то что-то опять не подключено.
:
Что не так? Что делаете Вы?
Заранее благодарю, за ответ. Если можно в картинках.
Видимо, в БЭСТ 3.4 что-то переделали.
Можно сделать так.
В каталоге client\bin создаёте каталог userlibs. В этот каталог копируете скомпилированную библиотеку (userlibs.bdll). Библиотека автоматически не копируется из каталога server\Data\Pro\userlibs\ при запуске БЭСТ-5 3.4, так как это было в БЭСТ-5 3.3. Но загрузку библиотек из client\bin\userlibs не отключили, поэтому после того, как Вы скопируете туда свою библиотеку, Ваш плагин начнёт запускаться.
Да, конечно переделали и очень серъезно.
Виктор отказывайтесь плз от технологий 3.3 и лучше не надо ничего по
аналогу делать.(в плане запуска отладчика и т.п.)
Посмотрите для начала на УРОК 3 пункт 2 и на описание ко второму пакету версии 3.4.
Отладчик стартует по ALTD() и для этого БЭСТ ни с какими ключами запускать не надо. Теперь можно делать спокойно на hrb кстати для
подключения по CTRL-F5.
Поддержку библиотек не отключали 3.3, но сама организация поддержки пользовательских решений теперь упорядочена и полагаю Вам необходимо с ней ознакомиться.
Не торопитесь Виктор, вот выйдет версия 3.5, там разработчик опять упорядочит поддержку пользовательских решений и опять будем переписывать свои плагины под новый стандарт, потому что старый отключат. :-)
Алексей Новиков пишет:
Видимо, в БЭСТ 3.4 что-то переделали.
Можно сделать так.
В каталоге client\bin создаёте каталог userlibs. В этот каталог копируете скомпилированную библиотеку (userlibs.bdll). Библиотека автоматически не копируется из каталога server\Data\Pro\userlibs\ при запуске БЭСТ-5 3.4, так как это было в БЭСТ-5 3.3. Но загрузку библиотек из client\bin\userlibs не отключили, поэтому после того, как Вы скопируете туда свою библиотеку, Ваш плагин начнёт запускаться.
Спасибо. Заработало.
Цитата
nordk пишет:
Посмотрите для начала на УРОК 3 пункт 2 и на описание ко второму пакету версии 3.4.
Уже читаю.
Цитата
Алексей Новиков пишет:
Не торопитесь Виктор, вот выйдет версия 3.5, там разработчик опять упорядочит поддержку пользовательских решений и опять будем переписывать свои плагины под новый стандарт, потому что старый отключат. :-)
Ну Алексей зачем так то ?
На самом деле в 3.3 было сделано совершенно нелогично и не увязывалось с наследованием из БЭСТ-4+.
Теперь все стало на свои места и врядли этот стиль уже менять будут,
скорее улучшать.
Если бы наличествовала объективная (технологическая) необходимость для разработчика отказаться от поддержки пользовательских bdll и перейти на поддержку hrb, я бы понял. Но зачем отключать работающий механизм если нет объективных предпосылок. Переписал я в своё время с БЭСТ-4 на БЭСТ-5 3.3 массу доработок. А теперь, при переходе на 3.4, я должен свои bdll разобрать на файлики? Нет, я понимаю, работа не сложная. Но необходимая-ли?
Скорее ошибка была в том, что перегонять заставили наработки в 3.3 в такой вид bdll. (Наверно это одна из причин почему мы на 3.3 не переводили наших клиентов.) Ну был, к сожалению, период, когда для разработки плагинов платформа разрабатывалась и был дан некий инструментарий как есть.
Речь даже не об отказе от BDLL, а от принципов работы с ней, принятых в 3.3.
Сейчас пользовательская bdll поддерживаться будет все равно. Одно то, что
новый интерфейс именно в bdll рисуем говорит об этом.
И разбирать на файлики не надо. Речь про то, что новые решения можно
теперь и через hrb делать, а пользовательская bdll в варианте от 3.3
будет одна с одним конкретным именем. А новые уже принимайте решение как будете делать, если пункт меню - то пожалуйста и я об этом написал, чтобы Ваши индексы и базы поддерживать кладите их в соответствующее место. Если на события, то новые можете на hrb делать.
nordk пишет:
А новые уже принимайте решение как будете делать, если пункт меню - то пожалуйста и я об этом написал, чтобы Ваши индексы и базы поддерживать кладите их в соответствующее место. Если на события, то новые можете на hrb делать.
Подскажите, пожалуйста, а какие конструкции прочтения плагинов понимают шаблоны типовых операций в версии Б-5_34 (речь идет о полях Шифр анал.учета и Алгоритм прочтения суммы)?
У меня проходит ТОЛЬКО старый вариант: FileEval("имя плагина",{список параметров}).
Можно ли сразу восспользоваться резултатами компиляции?
Во-первых, можно написать заглушку в виде файла 'prg', который будет содержать строку вида "hfileeval('001.hrb')".
Во-вторых, можно прописать нужное выражение непосредственно в поле algoritm.
Проблема, возможно, кроется в процедуре проверки валидности введённой формулы. Проверка не знает о существовании функции hfileeval().
nordk пишет:
А новые уже принимайте решение как будете делать, если пункт меню - то пожалуйста и я об этом написал, чтобы Ваши индексы и базы поддерживать кладите их в соответствующее место. Если на события, то новые можете на hrb делать.
Подскажите, пожалуйста, а какие конструкции прочтения плагинов понимают шаблоны типовых операций в версии Б-5_34 (речь идет о полях Шифр анал.учета и Алгоритм прочтения суммы)?
У меня проходит ТОЛЬКО старый вариант: FileEval("имя плагина",{список параметров}).
Можно ли сразу восспользоваться резултатами компиляции?
Да можно. Вы через FileEval можете прописать hrb файл
Он прекрасно стартует.
Я еще в БЭСТ-4 изучая исходник FileEval изучая его исходник что он
по расширению прекрасно понимает что за файл и стартует его как
надо.
И дальше можете применять как в поле формулы, так и в поле аналитика
nordk пишет:
Я еще в БЭСТ-4 изучая исходник FileEval изучая его исходник что онпо расширению прекрасно понимает что за файл и стартует его какнадо.
К сожалению, это не так. Сама по себе функция fileeval() не занимается определением типа содержимого файла. За одним исключением, но оно не относится к предмету разговора.
Возможно, что Вы имеете в виду запуск из реестра по ctrl-F5.
Алексей Новиков пишет:
Во-первых, можно написать заглушку в виде файла 'prg', который будет содержать строку вида "hfileeval('001.hrb')".
Воспользовался первым вариантом. После чего вышел еще на одну проблему перехода.
Конструкция FileEval("namefile.prg",{список параметров})позволяла "экономить" на плагинах, в случае однородных задач, путем задания разных значений параметров. Запускать, аналогичным образом, с параметрами hrb до сих пор как-то нужды не было.
.
Возможно ли это? Если да, то как это прописать в заглушке?
Уточняю, в проводках запускаем конструкцию FileEval("namefl2.prg",{список параметров}), а заглушка имеет вид:
HFileEval("namefl1.hrb")
Return Nil
Заранее спасибо за ответ