|
Константы (в смысле С++) как сделать в 1с? | ☑ | ||
---|---|---|---|---|
0
ERWINS
19.05.14
✎
11:15
|
собственно использую компоненту в 1с
Там много констант ошибок, как определить их в 1с? |
|||
1
Ненавижу 1С
гуру
19.05.14
✎
11:17
|
(0) зачем?
|
|||
2
Ненавижу 1С
гуру
19.05.14
✎
11:18
|
констант таких нет, можешь использовать параметр сеанса (фиксированная структура) и не менять его
|
|||
3
ERWINS
19.05.14
✎
11:18
|
(1) есть внешняя компонента в ней определены константы
для чего? что бы не писать магические числа. |
|||
4
ERWINS
19.05.14
✎
11:19
|
(2) параметр сеанса причем?
это нужно в модуле. писать не 0x70000006, а ERROR_NOBLOCKS |
|||
5
Чайник Рассела
19.05.14
✎
11:21
|
(4)
Если КонстантаСиПласПлас = "0x70000006" Тогда ХреньСобачья = "ERROR_NOBLOCKS"; КонецЕсли; |
|||
6
ERWINS
19.05.14
✎
11:23
|
рез =Инициализация (...)
Если рез=0x70000006 тогда .... конецЕсли; а хочется по нормальному рез =Инициализация (...) Если рез=ERROR_NOBLOCKS тогда .... конецЕсли; |
|||
7
Ненавижу 1С
гуру
19.05.14
✎
11:25
|
(4)(6) ну заведи их локальными переменными тогда
|
|||
8
ptiz
19.05.14
✎
11:26
|
Функция МояКонстанта(Стр)
Если Стр = "ERROR_NOBLOCKS" Тогда Возврат "0x70000006" ... |
|||
9
ERWINS
19.05.14
✎
11:28
|
(8) причем тут строки?
|
|||
10
spectre1978
19.05.14
✎
11:29
|
Я не пробовал, но что если просто создать модулек, объявить в нем переменные экспортные и проинициализировать. Если обозвать модулек МояВК, то будет что-то типа
Если рез=МояВК.ERROR_NOBLOCKS тогда .... конецЕсли; не так уж плохо имхо |
|||
11
ERWINS
19.05.14
✎
11:30
|
(10) в модуле нельзя определить переменные
|
|||
12
Fish
19.05.14
✎
11:31
|
(11) Используй константы. Чем они тебе не нравятся?
|
|||
13
spectre1978
19.05.14
✎
11:32
|
ну объяви функции
Функция ERROR_NOBLOCKS() Экспорт Возврат 0x70000006; КонецФункции |
|||
14
Лефмихалыч
19.05.14
✎
11:32
|
(0) а нельзя заставить ВК генерить человеческое исключение, в котором человеческое же ОписаниеОшибки()?
|
|||
15
Defender aka LINN
19.05.14
✎
11:43
|
(14) Так неинтересно
|
|||
16
ERWINS
19.05.14
✎
11:55
|
(14) например ошибка - "длительная операция".
надо просто подождать, но в твоем варианте мне пришлось бы разбираться с текстом Ошибки. Не есть Гуд. |
|||
17
vhl
19.05.14
✎
11:56
|
Функция ПолучитьОписаниеОшибки(КодОшибки) Экспорт
Если КодОшибки = "0x70000006" Тогда Возврат "ERROR_NOBLOCKS"; ИначеЕсли КодОшибки = "0x70000007" Тогда Возврат "ERROR_YESBLOCKS"; Иначе Возврат "Неизвестный код:"+КодОшибки; КонецЕсли; КонецФункции |
|||
18
ERWINS
19.05.14
✎
12:02
|
0x70000006 - это число!!!!
|
|||
19
Лефмихалыч
19.05.14
✎
12:02
|
(16) а зачем с ним разбираться? Ты собираешься вне ВК хэндлить ошибки, которые произошли внутри ВК?
Чорт! Это ведь логично и правильно - сложить на клиента геморрой по отработки своих исключений |
|||
20
Лефмихалыч
19.05.14
✎
12:03
|
'отработкЕ
|
|||
21
ERWINS
19.05.14
✎
12:06
|
(19) это как?
Есть длл которая делает, что мне надо, мне просто надо сделать проброс ее функций в 1с ДЛЛ и так высокоуровневая. |
|||
22
Fish
19.05.14
✎
12:06
|
(18) Ты удивишься, но для 1С это таки строка.
|
|||
23
Fish
19.05.14
✎
12:07
|
(21) Что ты понимаешь под "сделать проброс ее функций в 1с"?
|
|||
24
Лефмихалыч
19.05.14
✎
12:08
|
я к тому, что, если результатом "разбираться" будет сообщение пользователю, что он неудачник, то это может сделать сама ВК. А если "разбираться" - это программно что-то предпринять и продолжить работу, то это ОБЯЗАНА делать ВК.
(21) что за проброс? |
|||
25
ERWINS
19.05.14
✎
12:27
|
Есть библиотека на С++
надо дать возможность вызывать из нее функции. А ваша позиция смешна. Представь, что я принес к кому нить компоненту и она не работает (так бывает) Если код реализован в 1с я могу оперативно поправить или понять в чем дело, а если код внутри компоненты пиши пропало, пока поставишь Вижуал студио и т д. А 1с там есть по определению |
|||
26
hhhh
19.05.14
✎
12:32
|
(25) ну ведь 0x70000006 - это нормальный результат, по нему если погуглить, сразу миллион советов, что и как поправить.
а ваше "ERROR_NOBLOCKS" - это ведь вы правильно заметили, хрень собачья. Зачем этот бред может кому-то понадобиться? |
|||
27
spectre1978
19.05.14
✎
12:34
|
(26) погуглить по всем возможным кодам ошибок всех внешних компонент, в том числе и тех которые написаны программистом для узких нужд и никогда в инет не выкладывались?
|
|||
28
ERWINS
19.05.14
✎
12:36
|
(27) это данный случай.
|
|||
29
Fish
19.05.14
✎
12:38
|
(25) Тогда не используй ВК, а пиши всё в 1С.
|
|||
30
spectre1978
19.05.14
✎
12:38
|
(28) мне кажется, что вариант (13) может, не идеальный, но во всяком случае рабочий
|
|||
31
ERWINS
19.05.14
✎
12:40
|
(29) внешняя библиотека закрытая.
|
|||
32
ERWINS
19.05.14
✎
12:40
|
(30) спасибо, так и сделал
|
|||
33
МойКодУныл
19.05.14
✎
12:41
|
Перем ОпознавалкаОшибок;
//{Нетленка Описание = ОпознавалкаОшибок.Получить(КодОшибки); Если ОписаниеОшибки <> Неопределено Тогда Сообщить("Ашипка: "+ Описание); КонецЕсли; //Нетленка} ОпознавалкаОшибок = Новый Соответствие; ОпознавалкаОшибок.Вставить("0x7000000","ERROR_NOBLOCKS"); |
|||
34
МойКодУныл
19.05.14
✎
12:42
|
(33) *Если Описание <> Неопределено
|
|||
35
spectre1978
19.05.14
✎
12:45
|
(34) ребят, вы все не о том. Человеку надо не расшифровку ошибок пользователю показывать, а сделать читаемый код для себя. Чтобы он, посмотрев через год на код, не думал что это такое за хрень 0x7000000.
|
|||
36
spectre1978
19.05.14
✎
12:46
|
+ (34) т.е. он хочет избавиться от так называемых "мэджик намберс" в коде
|
|||
37
vhl
19.05.14
✎
16:25
|
(35) Изи:
//0x70000006 = ERROR_NOBLOCKS() //0x70000007 = ERROR_YESBLOCKS() //... |
|||
38
YF
19.05.14
✎
16:42
|
ниче не понял, что хочет автор ... чтобы все сделалось само в 1С телепатируя ошибки некой закрытой длл
|
|||
39
spectre1978
19.05.14
✎
18:35
|
(38) вот тут написано понятнее, если знаешь английский:
http://lurkmore.so/images/e/ec/Pro_desu.gif |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |