BEST logo логотип компании БЭСТ - программы для бизнеса ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
ПОДДЕРЖКА
+7 (495) 775-66-76
consult@bestnet.ru
СКАЧАТЬ
Обновления
Дистрибутивы
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Удаленная работа филиалов в БЭСТ
 
Цитата
Андрей Гаркин пишет:
Сервер с БЭСТ виртуальная машина в каком-нибудь ДЦ
Аргументы в пользу ДЦ принял. Разумно. Спасибо.
Удаленная работа филиалов в БЭСТ
 
Цитата
Андрей Гаркин пишет:
Тут проще всего виртуализацию и тот же RDP или remote app.
Не понял, где здесь применить виртуализацию. Не могли бы пояснить?
Удаленная работа филиалов в БЭСТ
 
Цитата
Фирма Еврокаскад пишет:
Извините я конечно не автор. Мы такие же клиенты как и вы.
Как раз таких же клиентов я и спрашивал. Спасибо за отклик.

А сколько у Вас магазинов и какой канал Интернет?
А что делаете, когда Интернет пропал, а магазину нужно сделать в БЭСТе очень важную операцию? Или нет таких операций?

Про remote app почитал. Кажется, удобная вещь. Спасибо.
Удаленная работа филиалов в БЭСТ
 
Здравствуйте.
Предположу, что обычная схема работы филиалов в БЭСТ такова: главная база в центральном офисе плюс установленные БЭСТы в филиалах, которые общаются с центром через xml-обмен. Неудобство здесь в том, что в каждом филиале есть БЭСТ и база, которые надо обслуживать.

А работают ли у кого-нибудь филиалы с центральной базой удаленно через удаленный рабочий стол или как-нибудь иначе? Так, чтобы не было БЭСТов в филиалах. Поделитесь впечатлениями. Нет ли проблем со связью, безопасностью, других проблем? Есть ли рекомендации, советы?

Помню, даже было объявление про БЭСТ в облаке. В чем заключалось это техническое решение? Буду очень рад, если автор откликнется.
Тип данных hash в harbour
 
Ясно. Спасибо.
Тип данных hash в harbour
 
Цитата
nordk пишет:
Сам то массив работает
То есть hash? Вот именно, что работает. Но функции для работы с ним, что описаны в руководстве к harbour, кажется, отсутствуют. Нет ли у кого сведений на этот счет?
Как завершить спецфункцию из глубины?
 
Цитата
nordk пишет:
FUNC2 может вернуть .F. (RETURN .F.)
И в FUNC1() это возвращенное значение тоже обработать

То есть лучший способ решить мою проблему в harbour - цепочка проверок возвращаемых значений процедур. Спасибо за ответы.

А случайно не знаете, как стандартный обработчик ошибок БЭСТ отображает стек вызовов? Могу ли я в спецфункции сделать то же?
Тип данных hash в harbour
 
В случае, если функций для работы с hash нет, допустимо ли пользоваться этим типом данных?
Как завершить спецфункцию из глубины?
 
Цитата
nordk пишет:
еще есть RETURN

Пример:
Управление находится в main() -> func1() -> func2() модуля спецфункции. Происходит ошибка. Нужно вывести сообщение и завершить спецфункцию. RETURN выйдет из func2, QUIT закроет весь модуль. А как завершить спецфункцию из func2? (Можно бросить исключение в func2 и поймать на верхнем уровне, как показано в первом посте, но тогда возникает проблема с фильтрацией исключений, там же описанная.)
Как завершить спецфункцию из глубины?
 
Не совсем понял, почему тема продублировалась. Извиняюсь за неудобство.
Как завершить спецфункцию из глубины?
 
Вопрос к знатокам harbour.

Как завершить спецфункцию из глубоко вложенной в нее процедуры, если в
той произошла ошибка, которая делает дальнейшее выполнение
невозможным?

Обычные варианты:

* Цепочка проверок кодов возврата процедур. Проблемы: лишний код,
возможный конфликт возвращаемого значения и кода ошибки.

* exit() или аналог, который завершит процесс. Пробовал QUIT, но
завершается весь модуль.

* Выброс исключения внизу с перехватом наверху. Выбрал этот вариант,
но возникла следующая проблема.

Я так понял, что в harbour в блоке try...catch нельзя отловить только
конкретные исключения, а остальные пропустить наверх. Если исключение
не то, что мне нужно, я делаю повторный throw. Проблема в том, что
traceback, который отобразит стандартный обработчик ошибок в этом
случае, будет указывать на место повторного выброса, а не на исходное
место ошибки.

Примерный код спецфункции:

Код
local err
try
    // основная процедура, которая вызывает много других; некоторые из них
    // могут привести к завершению программы (например, не удалось
    // прочитать файл, создать папку и т.п.)
    main()
catch err
    // не делать throw в catch, чтобы избежать проблем со
    // стандартным обработчиком (он почему-то не отрабатывает)
end
if isstring(err) // это мои ошибки (просто строки), выдать сообщение пользователю
    errormsg(err)
elseif err != nil // а это системные, их нужно пропустить дальше
    throw err // на эту строку укажет traceback в системном диалоге об ошибке
end

Несколько Вопрос ов:

1. Может, все-таки можно как-то перехватить одно исключение, но
пропустить другое без повторного выброса (как это делается в C++, Java
и проч.)?

2. Как стандартный обработчик выводит traceback? Можно ли этим
функционалом воспользоваться?

3. Есть еще способы завершить программу из глубины?
Как завершить спецфункцию из глубины?
 
Вопрос к знатокам harbour.

Как завершить спецфункцию из глубоко вложенной в нее процедуры, если в
той произошла ошибка, которая делает дальнейшее выполнение
невозможным?

Обычные варианты:

* Цепочка проверок кодов возврата процедур. Проблемы: лишний код,
возможный конфликт возвращаемого значения и кода ошибки.

* exit() или аналог, который завершит процесс. Пробовал QUIT, но
завершается весь модуль.

* Выброс исключения внизу с перехватом наверху. Выбрал этот вариант,
но возникла следующая проблема.

Я так понял, что в harbour в блоке try...catch нельзя отловить только
конкретные исключения, а остальные пропустить наверх. Если исключение
не то, что мне нужно, я делаю повторный throw. Проблема в том, что
traceback, который отобразит стандартный обработчик ошибок в этом
случае, будет указывать на место повторного выброса, а не на исходное
место ошибки.

Примерный код спецфункции:

Код
local err
try
    // основная процедура, которая вызывает много других; некоторые из них
    // могут привести к завершению программы (например, не удалось
    // прочитать файл, создать папку и т.п.)
    main()
catch err
    // не делать throw в catch, чтобы избежать проблем со
    // стандартным обработчиком (он почему-то не отрабатывает)
end
if isstring(err) // это мои ошибки (просто строки), выдать сообщение пользователю
    errormsg(err)
elseif err != nil // а это системные, их нужно пропустить дальше
    throw err // на эту строку укажет traceback в системном диалоге об ошибке
end

Несколько Вопрос ов:

1. Может, все-таки можно как-то перехватить одно исключение, но
пропустить другое без повторного выброса (как это делается в C++, Java
и проч.)?

2. Как стандартный обработчик выводит traceback? Можно ли этим
функционалом воспользоваться?

3. Есть еще способы завершить программу из глубины?
Тип данных hash в harbour
 
Тип данных hash в руководстве БЭСТ не упомянут, но фактически имеется. Это работает:

Код
hash := {5 => 'ok', 'foo' => 3, stod('20000101') => {1}}
messagebox(valtype(hash)) // H
messagebox(hash[5]) // ok

Однако функции для работы с hash (например, hb_HHasKey и проч.), что описаны в руководстве к Harbour (https://harbour.github.io/doc/index.html) не работают в БЭСТ:

Код
messagebox(str(hb_hhaskey(hash, 'foo'))) // ошибка, функция hb_hhaskey не найдена

Вопрос Eсть ли вообще функции для работы с hash в harbour от БЭСТ?
Страницы: 1