ПЕЧАТЬ ИЕРОГЛИФОВ из 1С

20.06.11

Интеграция - Загрузка и выгрузка в Excel

Если Вам нужно печатать из 1С иероглифы, а Вы не знаете как - предлагаю один из вариантов решения. А если Вы знаете - предложите свой, буду премного благодарен.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
china.zip
.zip 25,10Kb
42
42 Скачать (1 SM) Купить за 1 850 руб.

Недавно на форуме был задан вопрос:

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 

См. также

Банковские операции Загрузка и выгрузка в Excel Бухгалтер Пользователь Платформа 1С v7.7 Конфигурации 1cv7 Россия Бухгалтерский учет Платные (руб)

Решение предоставляет комплексную загрузку банковской выписки из CSV, XLS, TXT файла в 1С 7.7 любой конфигурации. Позволяет создавать документы выбранного вида, например "Строка выписки банка (приход/расход)", или многострочный табличный документ, например Выписка, для каждой операции из загружаемого файла банковской выписки. Загружает реквизиты документа, а также создаёт контрагентов и другие необходимые элементы справочников.

3588 руб.

29.07.2021    22687    15    22    

16

Универсальные функции Программист Платформа 1С v7.7 Конфигурации 1cv7 1С:Комплексная 7.7 Абонемент ($m)

Предлагается набор функций 1с 7.7 для формирования строки json стандартными средствами.

1 стартмани

10.12.2018    10766    malovandrey    7    

19

Загрузка и выгрузка в Excel ККМ Системный администратор Платформа 1С v7.7 1С:Торговля и склад 7.7 Управленческий учет Платные (руб)

Выгрузка из 1C версии 7.7 ТиС (Торговля и Склад) в EXCEL для дальнейшей загрузки в кассы ЭВОТОР, с помощью обработки обмен через EXCEL ( которая выбирается на сайте ЭВОТОР в магазине приложений). Полная версия без ограничений. Демоверсия позволяет выгружать только 5 строк номенклатуры(группы товаров). Демоверсия обладает такими же характеристиками что и полная за исключением того, что выгружает 5 строк неважно чего группы или номенклатуры (текст обработки зашифрован). Если у вас одна позиция номенклатуры или 5 позиций без групп, тогда Демоверсия для Вас. Если вдруг выскакивает ошибка по запуску обработки попробуйте запустить 1с с правами администратора

3000 руб.

19.06.2017    50418    9    26    

14

Загрузка и выгрузка в Excel Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Импорт данных в 1С:Предприятие 7.7 из Excel через JET.OLEDB или ACE.OLEDB. Данный метод позволяет загружать данные из файлов на ПК, на которых не установлен MS Office.

1 стартмани

20.09.2016    30972    12    aserg    4    

15

Файловый обмен (TXT, XML, DBF), FTP Внешние источники данных Загрузка и выгрузка в Excel Системный администратор Программист Бухгалтер Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Абонемент ($m)

Позволяет выгружать данные справочников, документов, сальдо по счетам из 1С 7.7 (компонента «Бухгалтерский учет» в файлы формата MXL, XLS, DBF. Полученные файлы удобно использовать для переноса в другие программы. В разработке применено несколько оригинальных решений.

1 стартмани

10.06.2016    51265    212    gubanoff    13    

12

Информационная безопасность Универсальные функции Программист Платформа 1С v7.7 Бесплатно (free)

При использовании терминалок для удаленных баз, иногда при входе в базу данных необходимо исключить возможность входа пользователей с компьютеров с другим часовым поясом. Например, работают в Новосибирской базе с временем UTC +6 и пытаются зайти в базу с UTC +3.

16.05.2016    13083    kudenzov    3    

10

Загрузка и выгрузка в Excel Математика и алгоритмы Программист Платформа 1С v7.7 Платформа 1С v8.3 Бесплатно (free)

Статья посвящена распространённому вопросу - как сохранить несколько таблиц (отчетов) в формате MXL, с которым работает 1С, на отдельные листы одного Excel файла. Освещается простой алгоритм решения проблемы штатными средствами, без использования внешних модулей и библиотек (не относящихся к 1С и Excel).

23.11.2015    19280    etmarket    14    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Tatitutu 3847 04.02.10 12:17 Сейчас в теме
ну шо китай, япония - бойтесь...1С идет к вам ))))
3. venger 2124 04.02.10 12:41 Сейчас в теме
(1) Н-да, и так для каждого пользователя на каждом компе?

А так? Ну понятно, что вместо макроса "MyTest" создаем то, что нам нужно, и выводим реальные данные и т.п. А галку в реестре, после можно и снимать, тоже программно, если уж так не нравится разрешенный доступ к VBA из других приложений для пользователя.... Зато никакого гемарроя с внешними файлами, настройками для каждого пользователя, версиями офисов и т.п. Никаких вопросов пользователю не задается, ничего настраивать не надо...

Перем Excel, РабочаяКнига, РабочийЛист;

Попытка
	// Устанавливаем для пользователя галку программного доступа к VBA
	// Подветки 11.0, 10.0 - зависят от версии Office...
	WScriptShell = СоздатьОбъект("WScript.Shell");
	ВерсияОфиса = СокрЛП(WScriptShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Application\CurVer\"));	
ВерсияОфиса=Прав(ВерсияОфиса,СтрДлина(ВерсияОфиса)-Найти(ВерсияОфиса,"."));
ВерсияОфиса=Прав(ВерсияОфиса,СтрДлина(ВерсияОфиса)-Найти(ВерсияОфиса,"."));
	ВерсияОфиса=ВерсияОфиса+".0";
	WScriptShell.RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Office\"+ВерсияОфиса+"­\Excel\Security\AccessVBOM",1, "REG_DWORD");
    WScriptShell = 0;
Исключение
КонецПопытки;

// Создаем все…
Excel = СоздатьОбъект("Excel.Application");
Excel.Visible = 1;   
РабочаяКнига = Excel.Workbooks.Add();
РабочаяКнига.Activate();
РабочийЛист =РабочаяКнига.WorkSheets(1);
РабочийЛист.Select();

// Текст процедуры с передаваемым параметром
ТекстПроцедуры = "Sub MyTest(V)" + РазделительСтрок +  " MsgBox(V)" + РазделительСтрок + "End sub";

Попытка
// Вставляем процедуру в рабочую книгу
РабочаяКнига.VBProject.VBComponents.Item(""+РабочаяКнига.CodeName).CodeModule.AddFromString(ТекстПроцедуры);	
Исключение
	Сообщить("Экспорт в Excel не удался.","i");
	Сообщить(""+ОписаниеОшибки()+". Обратитесь к администратору.","i");
	Возврат;
КонецПопытки;

// Вызываем процедуру с передаваемым ей параметром, если их несколько, то через запятую указываем остальные параметры
Excel.Application.Run(""+РабочаяКнига.CodeName+".MyTest","Hi,Venger!");

РабочийЛист.Cells(1,1).Value = "'Что-то выводим…";

// Ну и типа финиш
Сообщить("Экспорт в Excel успешно завершен."); 
Показать
7. Styvi 6 04.02.10 12:52 Сейчас в теме
(3)
Александр, Ваши труды тоже были замечены на форуме...
(аналогичные благодарности)...
Только плюсануть нечгде было...
;)
9. venger 2124 04.02.10 12:57 Сейчас в теме
(7) Чувствую придется писать статью о поддержке Unicode и иероглифов на форме 1С (вставке, редактировании, хранении и отображении в 1С), как тут;-) Это с помощью АктивИкса Internet Explorer на форме, с некоторыми хитростями, конечно;-) Как же без этого;-)
Прикрепленные файлы:
8. Tatitutu 3847 04.02.10 12:56 Сейчас в теме
(3) Сань не трогай реестр - горе это....будет , такая дыра - если ты оставишь офис хоть на минуту не прикрытым от других макросов и дашь доверенный доступ к VBA - это просто мечта вирусолога.

я тебе давал ссылку как обойти запрос на макросы.
что мешает:
при запуске обработки
создаем (пересохраняем) персонал.xls с нужными формулами
создаем лист EXCEL новый ,форматируем переводим, сохраняем
удаляем персонал.
Работы написать на полчаса. и ничего спрашивать не будет и пользователь и знать не будет.
10. venger 2124 04.02.10 13:01 Сейчас в теме
(8) > создаем (пересохраняем) персонал.xls с нужными формулами

Создать personal.xls и положить куда надо не проблема, но как в personal.xls записать программно макрос и потом его вызвать из 1С? Можно просто кусок кода простого, типа как в 3-м посте, т.е. чтобы MyTest запустился без вопросов прямо из 1С, без всяких дополнительных телодвижений пользователя или админа?
13. Tatitutu 3847 04.02.10 13:06 Сейчас в теме
(10)ты не внимательный ))))



Запусти коня )))

внедряешь объект как в пятнашках, в нем уже заранее пишешь макрос
при запуске этот объект сохраняешь как personal.xls
потом создаешь новую книгу и вот в ней уже будут доступны все твои макросы и функции
сохраняешь книгу , убиваешь personal.xls
все. финиш.
14. venger 2124 04.02.10 13:29 Сейчас в теме
(13) Во-первых, даже если файла PERSONAL.XLS нет, то все равно не хочет его сохранять:

//*******************************************
Функция Лист(Объект)
	Скрипт=СоздатьОбъект("WScript.Network");
	ИмяПапки="С:\Documents and Settings\"+Скрипт.UserName+"\Application Data\Microsoft\EXCEL\XLSTART\";
	ИмяФайла=ИмяПапки+"PERSONAL.XLS";
	Объект.SaveAs(ИмяФайла);
КонецФункции	// Лист
Показать



Доступ к файлу невозможен. Проверьте следующее:

• имеется ли указанная папка;
• папка, содержащая этот файл, доступна для записи;
• в имени файла не содержатся знак
15. Tatitutu 3847 04.02.10 13:34 Сейчас в теме
(14) какая версия офиса у тебя ?
сообщить(ИмяФайла) что возвращает ?
16. venger 2124 04.02.10 13:37 Сейчас в теме
(13) И как теперь из personal.xls вызвать функцию в 1С (допустим она лежит в книге, не листе или модуле, а в книге personal.xls) при создании второй книги?
17. Tatitutu 3847 04.02.10 13:41 Сейчас в теме
(16) как обыкновенную формулы в ячейке
получаешь результат, копируешь и оставляешь как значение (текст)
что и требовалось доказать
P/s перед функцией если в книге напиши Public
18. venger 2124 04.02.10 13:49 Сейчас в теме
(17) Удалить personal.xls старый не могу, если он уже есть, то до свидания, обратиться к функции из personal.xls из 1С нормально в создаваемой книге новой тоже не могу, не видит он pesonal.xls, даже если он лежит в нужном месте при создании новой книги программно.... И т.д. и т.п. Фиг знает что, в общем, кусочка кода или малюхонькой обработочки, я так понимаю не будет с конкретным примером... Ходим вокруг да около.... Ладно, поиграюсь сам...
11. venger 2124 04.02.10 13:02 Сейчас в теме
(8) +10, ну и сразу с созданием personal.xls, конечно, простенько, но чтобы смысл был понятен....
12. venger 2124 04.02.10 13:04 Сейчас в теме
(8) +11, уж извини, если напрягаю;-)
2. Трактор 1254 04.02.10 12:34 Сейчас в теме
Сурово! Боюсь что таким способом делать печатные формы весьма затруднительно :|
Китай может остаться не завоёванным.
Кстати, товарищ недавно размышлял на тему написания международной конфигурации для разных вьетнамов и африк. Говорит рынок пустоват и САП с Ораклом не счастье в жизни, а нечто менее удобное чем 1С.
4. tango 545 04.02.10 12:41 Сейчас в теме
на Китае настоящий БГ обломился, а уж 1С...
ну не было в Китае Луки Пачолли. не нужен он им
5. Tatitutu 3847 04.02.10 12:43 Сейчас в теме
Сурово! Боюсь что таким способом делать печатные формы весьма затруднительно


да ладно...в статье описаны три разных способа.
а третий вообще готовая "рыба" засунь в нее список значений , отредактируй макет и все
6. Styvi 6 04.02.10 12:46 Сейчас в теме
"Кофигурации: 1С: Предприятие 7.7, 1С:Бюджет муниципального образования 7.7, 1С:Бухгалтерия 7.7, 1С:Зарплата и кадры 7.7, 1С:Комплексная 7.7, 1С:Торговля и склад 7.7, 1С:Производство+Услуги+Бухгалтерия
Внешний отчет, обработка для 1С: Бухгалтерский учет 7.7; 1С: Оперативный учет 7.7; 1С: Расчет 7.7; 1C: OpenConf 7.7"

Ну, Юрий, - за широту мысли... ПЛЮС ... ;)
... и за полезное чтиво - разумеется...
19. Tatitutu 3847 04.02.10 14:28 Сейчас в теме
в общем, кусочка кода или малюхонькой обработочки, я так понимаю не будет с конкретным примером...

а чем тебя обработка приложенная к статье смущает ? Она же полностью рабочая (вместо одной строки запихай туда ТЗ и играйся как тебе нужно
20. venger 2124 04.02.10 15:37 Сейчас в теме
(19) Да это я из вредности ворчу просто;-)
21. Свой 164 04.02.10 16:44 Сейчас в теме
интересно, как выглядит иероглиф "внедрение ERP" ? :)
mctsimco; +1 Ответить
22. Tatitutu 3847 04.02.10 16:50 Сейчас в теме
(21) "И мальчик Хуан объяснил на пальцах , как его зовут" (с) :D :D :D
23. Myti 86 10.02.10 12:39 Сейчас в теме
:D Хороший Замутик Tatitutu
24. tanbohu 10.02.10 16:13 Сейчас в теме
你们好
Смотрю я на это и удивляюсь!
а что просто установить в компе китайскую раскладку не вариант?
25. Tatitutu 3847 10.02.10 17:06 Сейчас в теме
(24) вариант для чего ?Поясни пожалуйста, будь так любезен
26. tanbohu 10.02.10 18:31 Сейчас в теме
вариант для писания иероглифов в винде где бы то нибыло. хотя, конечно, в 1с с этом проблема.
27. Tatitutu 3847 10.02.10 19:06 Сейчас в теме
(26) Так это понятно. тут вопрос в другом ...
в екселе есть иероглифы читаются , печатаются....
но нужно их сохранить в 1С
а 1С такая сякая их не понимает (ну не хочет она китайский изучать)
разложили иероглифы на коды символов в юникоде и сохранили в строке с разделителями
отлично. Отлично , а как распечатать ?
Вот вариант печати здесь и предложен.
28. venger 2124 16.04.10 20:37 Сейчас в теме
(27), (26) А вот и предистория с которой все началось ;)

Отображение и редактирование на формах, и хранение в базе, Unicode-строк в 1С 7.7

З.Ы. Только сейчас дошли руки оформить :oops:
Оставьте свое сообщение