|
NetObjectToIDispatch45 и язык для неюникод приложений | ☑ | ||
---|---|---|---|---|
0
Shamandafil
27.10.21
✎
22:48
|
Здравствуйте. При использовании .Net компоненты NetObjectToIDispatch45 если в качестве системного языка установлен нерусский, то русскоязычные свойства компоненты (например, Объект) превращаются в крякозябры. Может ли кто подсказать как в net принудительно использовать русские региональные настройки или избежать перекодирования через ansi. Serginio1 подскажете?
|
|||
1
vde69
27.10.21
✎
22:54
|
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1250"="c_1251.nls" "1251"="c_1251.nls" "1252"="c_1251.nls" и перезагрузка зы кодовая левый параметр должен соответствовать системной странице |
|||
2
Shamandafil
27.10.21
✎
23:11
|
Разве это изменение будет локальным для 1С и её компонент или изменит все настройки системы? Простой, официальный путь изменить язык для неюникод программ на Россия, потребует перезагрузки и региональные настройки обычно меняю. Вы предлагаете неполную версию такого же изменения? Хотелось бы чтобы нет-объект сам знал на каком он языке написан, не сбивая общесистемные настройки.
|
|||
3
Shamandafil
28.10.21
✎
07:33
|
Нет ведь по задумке весь юникодный на него не должна влиять эта настройка.
|
|||
4
Shamandafil
29.10.21
✎
08:43
|
Ну как же традиции мисты, закидать гуаном написавшего, а потом подсказать ответ.
|
|||
5
Garykom
гуру
29.10.21
✎
09:06
|
(4) Понимаешь все офигели что кто то юзает это
|
|||
6
Shamandafil
03.11.21
✎
12:31
|
Я понимаю микросервисы и тд., но иногда нужно слать события в клиентский процесс 1С и всё это локально на рабочем месте.
|
|||
7
Кирпич
03.11.21
✎
13:49
|
(6) А чо стандартными методами нельзя слать чтоли? Надо обязательно через Ъ и linq?
|
|||
8
Shamandafil
04.11.21
✎
09:06
|
Компонента классическая без Ъ, а LINQ в 1С не используешь. Ну расскажите как стандартными средствами сделать http-сервер внутри клиентского процесса, чтобы без ВК.
|
|||
9
Serginio1
04.11.21
✎
10:36
|
||||
10
acht
04.11.21
✎
10:38
|
Вот она, вся мощь поддержки решения NetObjectToIDispatch45
|
|||
11
Garykom
гуру
04.11.21
✎
11:07
|
(8) без ВК только через обработку ожидания постоянно нечто внешнее изображающее http-сервер дергать
ну или с ПолеHTML извращаться на JS это если для клиента 1С для сервера там проще ибо опубликовал и все |
|||
12
Serginio1
04.11.21
✎
12:08
|
(11) Угу и кучу соединений из разных потоках обслуживать!
Суть то NetObjectToIDispatch45, что не надо заморачиваться с COM бери готовый компонент или создаешь свой на .Net Но используешь в 1С как обычный COM объект. Это удобно. Кроме того есть подписка на события https://infostart.ru/1c/articles/417830/ |
|||
13
Garykom
гуру
04.11.21
✎
12:18
|
(12) Твоя NetObjectToIDispatch45 это ВК по сути а просили без ВК
|
|||
14
Serginio1
04.11.21
✎
12:23
|
(13) Нееее. Она может быть и ВК, но на самом то деле это Com объект. ВК это набор интерфейсов. Так, что по сути это не ВК
|
|||
15
acht
04.11.21
✎
13:20
|
(14) > Она может быть и ВК, но на самом то деле это
Дядь Сереж, тебя в (0) о чем спрашивали? |
|||
16
Garykom
гуру
04.11.21
✎
13:56
|
(14) Если умеет внешнее событие 1С значит ВК ))
|
|||
17
Serginio1
04.11.21
✎
15:17
|
(16) Моя компонента ничего не знает о вызывающем компоненте. Внешнее событие это для 7 ки. А так это обычное Com подписка на событие.
Еще смысл моей компоненты в подключении .Net библиотек. (15) Я уже дал ответ в (9) |
|||
18
Shamandafil
12.11.21
✎
10:31
|
Переключение CurrentCulture и CurrentUICulture на локаль ru-RU не помогло. CurrentInputLanguage не стал проверять, так как выглядит из другой области.
|
|||
19
Serginio1
12.11.21
✎
10:57
|
Надо для текущего потока установить
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("ru-RU"); System.Threading.Thread.CurrentThread.CurrentCulture = ci; https://stackoverflow.com/questions/19378345/net-cultureinfo-difference-between-ru-and-ru-ru |
|||
20
Serginio1
12.11.21
✎
11:00
|
А вообще культура нужна для каких то не юникодных компонентов.
Нужно смотреть где это происходит. |
|||
21
Shamandafil
12.11.21
✎
11:04
|
В (18) так и написал, что сделал не только (19) но и для CurrentUICulture. Полностью:
Культура = СоздатьОбъект("System.Globalization.CultureInfo", "ru-RU"); ОсновнойПоток = ПолучитьТип("System.Threading.Thread"); ОсновнойПоток.CurrentThread.CurrentCulture = Культура; //ТипВВода = ПолучитьТип("System.Windows.Forms.InputLanguage"); //ТипВВода.CurrentInputLanguage = ТипВВода.FromCulture(Культура); |
|||
22
Serginio1
12.11.21
✎
12:16
|
Я про то, где ты смотришь? Куда выводишь
|
|||
23
Shamandafil
12.11.21
✎
12:19
|
В частности в отладчике 1С, но и вызов из кода 1С не латинских свойств/функций выдаёт ошибку, нет такого реквизита/метода. Способ исправить изменить язык для неюникод программ на русский, но это как минимум перезагрузка ОС.
|
|||
24
Serginio1
12.11.21
✎
12:24
|
То есть 1С не понимает юникода? Не 7.7 случайно?
|
|||
25
Shamandafil
12.11.21
✎
12:27
|
Проверялось на 8.3.10. Вот самого удивляет и 1С, и .NET юникодные, но закорючки как во времена 7.7. Сборка dll ваша. А вы проверяли на чисто американских ОС NetObjectToIDispatch45?
|
|||
26
Serginio1
12.11.21
✎
18:02
|
(25) Нет. Попробуй https://infostart.ru/1c/articles/779726/#Part3
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |