Имя: Пароль:
1C
1C 7.7
v7: Загрузка иероглифов из Excel
,
0 jyupiter
 
02.08.16
05:14
Есть файл Excel, присланный китайской стороной, в нём список туристической группы. В этом файле столбец "пол", в каждой строчке иероглиф, один из двух, с кодами Юникод 22899 и 30007 соответственно.
Но при попытке считать текст из Экселя в 1С 7.7 (самописная конфига) стандартной схемой

КитПол = Лист.Cells(мНом, 4).Value

вместо кракозябры с длинным кодом в 1С вгружается только вопросительный знак "?" с кодом 63.
Попробовал такое

КитПол = ?(Лист.Cells(мНом, 4).Value = Лист.CHRW(22899), "Ж", "М");

"Лист" - это первая страница СОМ-объекта Excel.Application.
В этом случае выдаёт ошибку "Поле агрегатного объекта не обнаружено (CHRW)"

Что в этом случае можно сделать, чтобы в 1С отличить китайскую бабу от мужика?..
1 Это_mike
 
02.08.16
06:38
А Йокселем почитать не пробовал ?
2 jyupiter
 
02.08.16
06:49
(1) Не понял вопроса. Почитать Йокселем из Йокселя?
3 Лодырь
 
02.08.16
06:55
4 jyupiter
 
02.08.16
07:24
(3) Попробовал. Видит те же вопросики вместо иероглифов
5 Лодырь
 
02.08.16
07:37
А самый простой вариант с предварительной заменой внутри Экселя на F/M не канает?
6 jyupiter
 
02.08.16
07:40
(5) Это резервный вариант, потому что он не слишком удобный. Хочется загружать файлы в 1С "as is", а не после предварительной ручной обработки каждого макросом.
7 Это_mike
 
02.08.16
07:43
(4) что использовал - .Текст, или .Значение? Устанавливал ли .НаборСимволов=2 ?
8 jyupiter
 
02.08.16
07:47
(7) Использовал и .Текст, и .Значение -- результат один.
.НаборСимволов не устанавливал. Сейчас попробую поискать про это.
9 mehfk
 
02.08.16
08:07
(0) В 7.7 нет юникода.
10 Это_mike
 
02.08.16
08:08
(9) юникода нет, а почему бы код не получить?
11 jyupiter
 
02.08.16
08:09
(7) Всё-таки я не смог понять про .НаборСимволов.
Ни .CharSet, ни .CharacterSet не удалось найти применение.

(8) Мне не надо Юникода в 1С 7.7. Мне надо получить инфу из Экселя, достаточную для различения двух разных иероглифов.
12 Это_mike
 
02.08.16
08:11
НаборСимволов
Синтаксис:
НаборСимволов
Назначение:
Набор символов, который следует использовать системе для отображения текста. Чтение и запись. Возможные значения:
0 – ANSI,
1 – Прибалтийский,
2 – Китайский (традиционное письмо),
3 – По умолчанию для системы,
4 – Центральная Европа,
5 – Китайский (упрощенное письмо),
6 – Греческий,
7 – Корейский,
8 – Mac,
9 – OEM,
10 – Кириллица,
11 – Японский,
12 – Символьный,
13 – Турецкий,
14 – Вьетнамский,
15 – JOHAB,
16 – Арабский,
17 – Иврит,
18 – Тайский.
13 Это_mike
 
02.08.16
08:12
+(12) Это свойство объекта ОбластьТабличногоДокумента
14 Это_mike
 
02.08.16
08:16
Вообще, кинь пример файла на обменник какой-нить...
15 Tatitutu
 
02.08.16
08:18
16 Зая Бусечка
 
02.08.16
08:19
А что, 77 уже научилась уникоду? Я что-то пропустила?
17 jyupiter
 
02.08.16
08:30
(14) Пример https://cloud.mail.ru/public/GnT4/hzq9iVYPg

ОбластьТабличногоДокумента -- это точно объект 1С 7.7?..
18 Это_mike
 
02.08.16
09:26
(17) ОбластьТабличногоДокумента - это объект Йокселя.
19 Это_mike
 
02.08.16
09:44
хм. не получается
20 jyupiter
 
02.08.16
10:08
(15) Там очень много материала, изучать его целиком (со всеми ссылками) нет возможности. Есть какая-то функция в Экселе, обратная к ChrW? Чтобы на входе символ Юникода, а на выходе его код?

Я пробовал применять стандартную КодСимв(), но она выдаёт только тот же код 63 для обоих символов.
21 jyupiter
 
03.08.16
11:54
Значит перейдём на резервный вариант
22 Mr_Rm
 
03.08.16
12:12
23 Mr_Rm
 
03.08.16
12:28
Поправка: (22) - к (20). Но тоже не вызовется, как и ChrW().
Есть вариант создать и вызвать функцию через Excel.Application.VBE.ActiveVBProject.VBComponents. Вот тут есть пример:
v8: Как создать и запустить макрос Excel в 1С
24 jyupiter
 
04.08.16
07:47
(23) Этот вариант по неудобству (и небезопасности) не уступает тому, что просто добавить макрос в настройки Экселя и обрабатывать каждый эксель-файл перед загрузкой.

Решилось всё иначе -- китайцы прислали ещё один вариант, в котором через слэш записаны и китайский, и английский варианты пола, а это в 1С различить легко.

Социально-инженерные навыки менеджеров зарулили мои программистские в минуса.