Недавно на форуме был задан вопрос:
1С->Excel (Преобразовать из кодов в символы Unicode)
Я попытаюсь на него ответить (предложить свой вариант решения задачи)
Задача: Как преобразовать
из кодов (2 столбец 1 строчка)
в символы (2 столбец 2 строчка)
(см. рисунок)
Давайте попробуем пошагово решить задачку с помощью замечательной функции MS EXCEL (VBA) — ChrW()
Создадим новую книгу MS EXCEL
Перейдем в редактор VBA (Alt+F11) или меню Сервис->Макрос->Редактор VBA
Откроется редактор
Так выглядит «пустая» книга. Нам нужно в меню Insert (Вставка)->Module
«Нам нужен холст, чтобы написать картину»(с)
Вот здесь мы и напишем нашу первую функцию
В принципе, код очень простой — получаем строковой параметр, удаляем из него все ненужные символы и преобразуем в символ. Как этим пользоваться ?
Переходим обратно на лист. Выбираем в меню Вставка — Функция
и видим что в категориях добавился пункт «Определенные пользователем» , где мы можем выбрать функцию «ПереводВКитайский(Ind)» .
Сделаем это и укажем ячейку с нашими символами (или можно их прямо тут и ввести и сразу увидим результат.
Итог: мы только что с вами внедрили в книгу нашу функцию. В этой книге будет все работать на ура.
Минус — а что делать в других книгах?
При открытии будет вылезать окно «Отключить макросы или нет ?»»
Пойдем дальше….
Для этого сохраним нашу книгу, на как книгу (*.xls) а как надстройку (*.xla)
Меню Файл -> Сохранить как…
Сохранили, закрываем все открытые книги. Снова заходим в MS EXCEL (создадим новую книгу)
В меню Сервис->Надстройки-> Обзор выберем нашу надстройку TranslChina.xla
Должно появится окошко:
Ставим галочку, закрываем. Теперь нашу функция «ПереводВКитайский(Ind)» будет доступна в любых документах …. но только на этом компьютере.
Но мы же с вами тут за 1С говорим …
Дальше вам понадобится прочитать статью:
«Троянский конь» или «скрытые» возможности таблиц 1С
Не буду про нее повторятся, но !!!
При выводе на экран в 1С
мы увидим кракозяблы… они нам НЕ НУЖНЫ, а вот если кликнуть на внедренный объект, то получим то, что хотели.
В прикрепленной обработке я немного дописал алгоритм, но это шаблон рыба (только направление)
Смысл : во внедренном объекте формируем «наш перевод» сохраняем на диске как файл и уже потом открываем (или печатаем) нужный нам файл.
Во вложении:
— внешняя обработка с внедренным объектом MS EXCEL
— книга1.xls с нашей функцией
— готовая надстройка TranslChina.xla
ну шо китай, япония — бойтесь…1С идет к вам ))))
Сурово! Боюсь что таким способом делать печатные формы весьма затруднительно 😐
Китай может остаться не завоёванным.
Кстати, товарищ недавно размышлял на тему написания международной конфигурации для разных вьетнамов и африк. Говорит рынок пустоват и САП с Ораклом не счастье в жизни, а нечто менее удобное чем 1С.
(1) Н-да, и так для каждого пользователя на каждом компе?
А так? Ну понятно, что вместо макроса «MyTest» создаем то, что нам нужно, и выводим реальные данные и т.п. А галку в реестре, после можно и снимать, тоже программно, если уж так не нравится разрешенный доступ к VBA из других приложений для пользователя…. Зато никакого гемарроя с внешними файлами, настройками для каждого пользователя, версиями офисов и т.п. Никаких вопросов пользователю не задается, ничего настраивать не надо…
Показать
на Китае настоящий БГ обломился, а уж 1С…
ну не было в Китае Луки Пачолли. не нужен он им
да ладно…в статье описаны три разных способа.
а третий вообще готовая «рыба» засунь в нее список значений , отредактируй макет и все
Внешний отчет, обработка для 1С: Бухгалтерский учет 7.7; 1С: Оперативный учет 7.7; 1С: Расчет 7.7; 1C: OpenConf 7.7″
Ну, Юрий, — за широту мысли… ПЛЮС … 😉
… и за полезное чтиво — разумеется…
(3)
Александр, Ваши труды тоже были замечены на форуме…
(аналогичные благодарности)…
Только плюсануть нечгде было…
😉
(3) Сань не трогай реестр — горе это….будет , такая дыра — если ты оставишь офис хоть на минуту не прикрытым от других макросов и дашь доверенный доступ к VBA — это просто мечта вирусолога.
я тебе давал ссылку как обойти запрос на макросы.
что мешает:
при запуске обработки
создаем (пересохраняем) персонал.xls с нужными формулами
создаем лист EXCEL новый ,форматируем переводим, сохраняем
удаляем персонал.
Работы написать на полчаса. и ничего спрашивать не будет и пользователь и знать не будет.
(7) Чувствую придется писать статью о поддержке Unicode и иероглифов на форме 1С (вставке, редактировании, хранении и отображении в 1С), как тут;-) Это с помощью АктивИкса Internet Explorer на форме, с некоторыми хитростями, конечно;-) Как же без этого;-)
(8) > создаем (пересохраняем) персонал.xls с нужными формулами
Создать personal.xls и положить куда надо не проблема, но как в personal.xls записать программно макрос и потом его вызвать из 1С? Можно просто кусок кода простого, типа как в 3-м посте, т.е. чтобы MyTest запустился без вопросов прямо из 1С, без всяких дополнительных телодвижений пользователя или админа?
(8) +10, ну и сразу с созданием personal.xls, конечно, простенько, но чтобы смысл был понятен….
(8) +11, уж извини, если напрягаю;-)
(10)ты не внимательный ))))
внедряешь объект как в пятнашках, в нем уже заранее пишешь макрос
при запуске этот объект сохраняешь как personal.xls
потом создаешь новую книгу и вот в ней уже будут доступны все твои макросы и функции
сохраняешь книгу , убиваешь personal.xls
все. финиш.
(13) Во-первых, даже если файла PERSONAL.XLS нет, то все равно не хочет его сохранять:
Показать
Доступ к файлу невозможен. Проверьте следующее:
• имеется ли указанная папка;
• папка, содержащая этот файл, доступна для записи;
• в имени файла не содержатся знак
(14) какая версия офиса у тебя ?
сообщить(ИмяФайла) что возвращает ?
(13) И как теперь из personal.xls вызвать функцию в 1С (допустим она лежит в книге, не листе или модуле, а в книге personal.xls) при создании второй книги?
(16) как обыкновенную формулы в ячейке
получаешь результат, копируешь и оставляешь как значение (текст)
что и требовалось доказать
P/s перед функцией если в книге напиши Public
(17) Удалить personal.xls старый не могу, если он уже есть, то до свидания, обратиться к функции из personal.xls из 1С нормально в создаваемой книге новой тоже не могу, не видит он pesonal.xls, даже если он лежит в нужном месте при создании новой книги программно…. И т.д. и т.п. Фиг знает что, в общем, кусочка кода или малюхонькой обработочки, я так понимаю не будет с конкретным примером… Ходим вокруг да около…. Ладно, поиграюсь сам…
а чем тебя обработка приложенная к статье смущает ? Она же полностью рабочая (вместо одной строки запихай туда ТЗ и играйся как тебе нужно
(19) Да это я из вредности ворчу просто;-)
интересно, как выглядит иероглиф «внедрение ERP» ? 🙂
(21) «И мальчик Хуан объяснил на пальцах , как его зовут» (с) 😀 😀 😀
😀 Хороший Замутик Tatitutu
你们好
Смотрю я на это и удивляюсь!
а что просто установить в компе китайскую раскладку не вариант?
(24) вариант для чего ?Поясни пожалуйста, будь так любезен
вариант для писания иероглифов в винде где бы то нибыло. хотя, конечно, в 1с с этом проблема.
(26) Так это понятно. тут вопрос в другом …
в екселе есть иероглифы читаются , печатаются….
но нужно их сохранить в 1С
а 1С такая сякая их не понимает (ну не хочет она китайский изучать)
разложили иероглифы на коды символов в юникоде и сохранили в строке с разделителями
отлично. Отлично , а как распечатать ?
Вот вариант печати здесь и предложен.
(27), (26) А вот и предистория с которой все началось 😉
З.Ы. Только сейчас дошли руки оформить 😳