1с сохранить в unicode

Обновлено: 07.07.2024

Вот собственно говоря само решение:

ЗТ = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.ANSI);
ЗТ.Закрыть();
ЗТ = Новый ЗаписьТекста(ИмяФайла. Истина, Символы.ПС);
ЗТ.Записать(Данные);
ЗТ.Закрыть();

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

(2) WKBAPKA,
Не нравится оформление публикации не смотри.

Ты точно utf с ansi не попутал? минус заслуженный, лучше бы решение с base64 привел.

p.s.: Пользователи любых других национальных языков просто в восторге, от такого фигового решения.

Для совсем непонятливых: ВОМ это 3 символа, которые добавляются в начало файла для автоматического определения кодировки.

P.S. "Тыкать" можете своим друзьям, а здесь этого не надо делать.

p.s.: это интернет, могут и послать.

(6) pumbaE, 1. В моем алгоритме НЕТ вообще нет преобразований кодировок! Прочитайте документацию по языку программирования 1С. Суть алгоритма в том, что сначала создается пустой файл в кодировке ANSI, который не содержит ВОМ, а затем к нему дописываются данные в кодировке UTF-8. Это происходит без каких-либо преобразований. Естественно, при дописывании данных ВОМ не пишется.

2. Это реально работает, сам давно использую. Прежде чем писать всякую чушь, надо было хотя бы разобраться или проверить.

3. Алгоритм с отрезанием ВОМ однозначно является более громоздким и ресурсоемким.

Ох уж эти вечные проблемы с кодировкой…
Долго искал в инете как преобразователь Unicod. Потом все таки сам написал функцию.

Параметры:
(обязательный)
Тип: Строка.
Исходная строка.

Возвращаемое значение:
Тип: Строка.
Строка обработанных символов.

Описание:
Возвращает преобразованную строку из формата Unicod.

Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

Ох уж эти вечные проблемы с кодировкой…
Долго искал в инете как преобразователь Unicod. Потом все таки сам написал функцию.

А можно было так?
Записать текстовый документ в кодировке Юникод, а потом его прочитать в кодировке Анси? Мне кажется, что следующий код будет работать побыстрее спасибо, хороший пример, только жалко с русскими символами нет

Вот вариант с русскими буквами. Вдруг кому-то понадобиться :)

Danil174; creatermc; KatrinNight; AKZARD; PASAHAKA; AskezaMax; itc_Geo; + 7 – Ответить

Во народ жжот ))))
Удаление зубов через противоположный проход - это круто (наверно)!

Если "напрямую", можно так:

(10) Buben-128, Статья писалась когда в платформе не было полноценной реализации JSON. Если ваш код рабочий, он намного эффективней и проще.

А как наоброт получить строку с символами юникода такого типа:

\u0421\u043a\u0438\u0434\u043a\u0430 \u043e\u0442 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430 \u041f\u041f

Просмотры 24243

Загрузки 0

Рейтинг 25

Создание 03.07.12 13:23

Обновление 03.07.12 13:23

№ Публикации 142092

Тип файла Нет файла

Конфигурация Конфигурации 1cv8

Операционная система Не имеет значения

Страна Россия

Вид учета Не имеет значения

Доступ к файлу Бесплатно (free)

Код открыт Не указано

Курс представляет собой отработанные и проверенные личным опытом основателей Школы инструменты решения вопросов с подчиненными, коллегами, заказчиком и руководством.

См. также

Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо

В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.

12.12.2020 4561 Eugen-S 23

СКД: 5 советов, как сделать лучше

Несколько примеров решения задач с использованием разных подходов

27.10.2021 4479 Neti 19

Что за ? в коде, или Секретный оператор в 1С

Инкремент, модуль и прочая магия, которая скрыта под символом "?"

21.10.2021 8371 SeiOkami 41

Полезные примеры СКД, ч.2

Еще несколько примеров решения задач в СКД.

06.04.2021 10876 Neti 8

27.01.2016 85840 Serginio 116

Обзор полезных методов БСП 3.1.4

Библиотека стандартных подсистем (далее - БСП) является частью любой типовой конфигурации, поэтому умение применять готовые процедуры и функции повышает качество разработки и избавляет от написания лишнего кода. К сожалению, не у всех есть время и упорство овладеть всей документацией, поэтому я собрал воедино наиболее популярный функционал.

25.03.2021 41424 rayastar 51

Звуковое управление в 1С 8.3

В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.

16.03.2021 7228 velemir 33

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020 8963 comol 31

Использование программных перечислений, ч.1: строковые константы Промо

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016 41158 unichkin 74

Базовые вещи БСП, которые облегчат жизнь программисту 1С

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

30.08.2020 20393 quazare 34

[Общий модуль] Динамическое формирование интерфейса

Версия 2.0.0.1 + добавил GitHub

28.08.2020 13073 rpgshnik 74

Форма выбора (подбор) в управляемых формах

Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

08.05.2020 79487 user5300 19

Вспомогательные инструкции в коде 1С Промо

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018 36203 tormozit 106

Программная работа с настройками СКД

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020 66212 ids79 26

[СКД] Программное создание схемы компоновки данных

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020 43929 John_d 22

Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения

30.12.2019 35639 kuzyara 38

Оформление и рефакторинг сложных логических выражений Промо

В сложных логических выражениях нередко самому автору спустя какое-то время тяжело разобраться, не говоря уже о других программистах. Предлагаемая методика позволяет повысить наглядность таких выражений путем оформления в виде И-ИЛИ дерева и одновременно выполнять их рефакторинг.

20.09.2012 82911 tormozit 131

Сходство Джаро - Винклера. Нечеткое сравнение строк

В области информатики и статистики сходство Джаро - Винклера представляет собой меру схожести строк для измерения расстояния между двумя последовательностями символов. В публикации рассмотрены некоторые особенности алгоритма, и представлен вариант его реализации на языке 1С.

25.12.2019 8466 brooho 19

22.11.2019 12435 Sibars 19

Полезные процедуры и функции для программиста

Все мы пишем программный код и часто используем процедуры, облегчающие его написание. Ниже приведена выборка таких полезных процедур и функций.

07.10.2019 39861 HostHost 41

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.

11.07.2007 54515 tormozit 51

Таблица значений. Нюансы

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019 53340 Yashazz 56

[Шпаргалка] Программное создание элементов формы

Программное создание практически всех популярных элементов формы.

06.09.2019 103330 rpgshnik 75

Агрегатные функции СКД, о которых мало кто знает

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019 78174 ids79 56

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017 51286 tormozit 74

Регистры бухгалтерии. Общая информация

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019 46879 YPermitin 25

Три костыля. Сказ про фокусы в коде

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019 30254 YPermitin 81

Иерархия без "В ИЕРАРХИИ"

22.08.2019 15104 ildarovich 24

Выгрузка документа по условию Промо

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий. А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019 18048 m-rv 3

Отслеживание выполнения фонового задания

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019 45367 ids79 22

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019 153393 ids79 75

Фоновое выполнение кода в 1С - это просто

Как легко запускать выполнение в фоне, не прибегая к долгому описанию фоновых процедур.

02.08.2019 61140 avalakh 27

Как прикрутить ГУИД к регистру сведений Промо

. и немного теории обмена данными. В частности, разберем боль всех, кто пишет небанальные обмены данными: как набору записей регистра сведений назначить гуид и далее использовать его в обмене для идентификации этого набора.

16.04.2019 23373 m-rv 18

Разбираемся с параметрами редактирования СКД

Связь по типу, Параметры выбора, Связи параметров выбора

31.07.2019 42107 json 17

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019 106325 ids79 17

Обработчики событий при записи объектов. Зачем и что за чем?

Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта. Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.


ЮниКод = КодСимвола ( ТекСимв );
Если ЮниКод < 128 Тогда
Результат = Результат + "%" + Dec_to_Hex ( ЮниКод , ПредставлениеHex );
Иначе
ИндексЮникод = 32 ;
Байт = 8 ;
ХексКод = "" ;
Пока ИндексЮникод > 4 Цикл
// установка следующих за первым байтов
ТекБайт = ЮниКод % 64 ;
ХексКод = "%" + Dec_to_Hex ( 128 + ТекБайт , ПредставлениеHex ) + ХексКод ;

ЮниКод = Цел ( ЮниКод / 64 );
// проверка на закрывающий байт
Если ЮниКод < ИндексЮникод Тогда
ХексКод = "%" + Dec_to_Hex (( Байт - 2 ) * ИндексЮникод + ЮниКод , ПредставлениеHex ) + ХексКод ;
Прервать;
КонецЕсли;
// переход к следующему уровню закрытия
ИндексЮникод = ИндексЮникод / 2 ;
Байт = Байт * 2 ;
КонецЦикла;
Результат = Результат + ХексКод ;
КонецЕсли;
КонецЦикла;

Возврат Результат ;
КонецФункции

Пример №2 Конвертация строки из Unicode в UTF-8 (от пользователя Ruffer1C) в 1С 8.3:

пHex = "0123456789ABCDEF" ;
Результат = "" ;

Для СимвЧисло = 1 По Разрядность Цикл
ТекЧисло = пDec % 16 ;
пDec = Цел ( пDec / 16 );
Результат = Сред ( пHex , ТекЧисло + 1 , 1 ) + Результат ;
КонецЦикла;


Функция ПереводТекстаUnicodeToUTF8 ( СтрокаДляКодировки )

Для а = 1 По СтрДлина ( СтрокаДляКодировки ) Цикл
ТекСимв = Сред ( СтрокаДляКодировки , а , 1 );

Если ТекСимв = " " Тогда
Результат = Результат + "+" ;
Продолжить;
КонецЕсли;
Если Найти ( СимволыДляИсключения , ТекСимв ) > 0 Тогда
Результат = Результат + ТекСимв ;
Продолжить;
КонецЕсли;

ЮниКод = КодСимвола ( ТекСимв );
Если ЮниКод < 128 Тогда
Результат = Результат + "%" + Dec_to_Hex ( ЮниКод );
Иначе
ИндексЮникод = 32 ;
Байт = 8 ;
ХексКод = "" ;
Пока ИндексЮникод > 4 Цикл
// установка следующих за первым байтов
ТекБайт = ЮниКод % 64 ;
ХексКод = "%" + Dec_to_Hex ( 128 + ТекБайт ) + ХексКод ;

ЮниКод = Цел ( ЮниКод / 64 );
// проверка на закрывающий байт
Если ЮниКод < ИндексЮникод Тогда
ХексКод = "%" + Dec_to_Hex (( Байт - 2 ) * ИндексЮникод + ЮниКод ) + ХексКод ;
Прервать;
КонецЕсли;
// переход к следующему уровню закрытия
ИндексЮникод = ИндексЮникод / 2 ;
Байт = Байт * 2 ;
КонецЦикла;
Результат = Результат + ХексКод ;
КонецЕсли;
КонецЦикла;

Текстовый файл сохраняемый как UTF-8 с сигнатуры BOM в начале имеет 3 байта с значениями: EF, BB, BF. Сигнатура BOM - метка порядка байтов (Byte Order Mark, BOM). Часто, BOM называют сигнатурой (соответственно, UTF-8 и UTF-8 with Signature). Признак BOM определяет, является ли файл закодированным в UTF-8. Не все программы могут корректно работать с файлами с сигнатуры BOM.

Разместил: E_Migachev  Версии: | 8.x |  Дата: 19.04.2013   Прочитано: 17511

Распечатать

Похожие FAQ

1C и Google Maps  20
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш Google maps : вывод точек на карту и режим панорамы  7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора Быстрый перенос списка баз с одного компьютера на другой  0
Для 8.1 : 1. Список баз 8.1 можно сохранять в файл.Для этого правой кнопкой мыши по корневому элементу " Информационные базы " , далее " Сохранить ссылку в файл " . 2. Получаем файл с расширением v8i , это текстовый файл в кодировке UTF-8. Ес Внешние источники данных  0
Почему данная возможность вызывает такой интерес? Любой человек, который программировал в 1С при этом достаточно неплохо знаком с SQL и хотя бы в общих чертах знаком с архитектурой и принципами разработки других технологических платформ для бизнес пр Выгрузка / Загрузка данных посредством текстовых (TXT) файлов  5
Для работы с текстовыми документами существуют три типа данных – ТекстовыйДокумент, ЗаписьТекста и ЧтениеТекста . Разница двух подходов состоит в способе загрузки документа: ТекстовыйДокумент загружает файл целиком и далее построчно обрабатывает е Посмотреть все результаты поиска похожих

Еще в этой же категории

Читайте также: