|   |   | 
| 
 | Однобайтовая кодировка в ЭДО | ☑ | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0
    
        ssalikoff 04.04.24✎ 11:49 | 
        Добрый день! Получил жалобу от клиентов, что при просмотре представления электронного документа УПД некоторые символы не отображаются корректно, будучи заменены на символ «?». Стал разбираться. Оказывается, 1С (в частности УТ 11) формирует xml-документы в кодировке windows-1251! Кто-нибудь в курсе, что это за хрень — однобайтовые кодировки в 21 веке? И, если кто сталкивался, как это можно исправить/настроить с минимальным вмешательством в конфигурацию?     | |||||||||||||||||
| 1
    
        asady 04.04.24✎ 13:19 | 
        (0) вообще-то 1с 8 кодировка везде по умолчанию utf8     | |||||||||||||||||
| 2
    
        Chai Nic 04.04.24✎ 13:22 | 
        (1) Может у них самописная выгрузка. Или обработка от оператора.     | |||||||||||||||||
| 3
    
        ssalikoff 04.04.24✎ 13:25 | 
        (2) У кого самописная? Это стандартный модуль ЭДО. Провайдер КалугаАстрал. Никаких внешних обработок, это стандартные функции БСП     | |||||||||||||||||
| 4
    
        ssalikoff 04.04.24✎ 13:26 | 
        (1) Я бы не делал таких заявлений без проверки. Предлагаю зайти в конфигуратор, Правка - Глобальный поиск и ввести текст "windows-1251". Изучите результаты     | |||||||||||||||||
| 5
    
        Chai Nic 04.04.24✎ 13:33 | 
        Хм. Действительно. Попробовал из БП выгрузить УПД - тоже <?xml version="1.0" encoding="WINDOWS-1251"?>. И что-то нигде нет никаких опций на эту тему.     | |||||||||||||||||
| 6
    
        ssalikoff 04.04.24✎ 14:01 | 
        Сделал экперимент. Извлёк запись из регистра ДвоичныеДанныеФайлов, в котором хранится xml-файл, закодированный в Base64. Изменил кодировку текста, изменил строку <?xml version="1.0" encoding="WINDOWS-1251"?> на <?xml version="1.0" encoding="utf-8"?>, всё запаковал и засунул обратно в регистр. В результате в форме просмотра представления электронного документа вместо табличного документа с нарисованным УПД лишь ссылка на xml-файл. То есть представление перестало формироваться.     | |||||||||||||||||
| 7
    
        Garykom гуру 04.04.24✎ 14:07 | 
        (6) смотри сюда
 https://www.consultant.ru/document/cons_doc_LAW_152657/c774f9aebea0ae7b1dbdde5b30a8525aee678b08/ Параметры первой строки файла обмена
 Первая строка XML файла должна иметь следующий вид: <?xml version ="1.0" encoding ="windows-1251"?> | |||||||||||||||||
| 8
    
        ssalikoff 04.04.24✎ 14:09 | 
        (7) Спасибо, теперь всё понятно!
 Значит, одинэсники не виноваты, это закон такой дурацкий | |||||||||||||||||
| 9
    
        ssalikoff 04.04.24✎ 14:11 | 
        Таким образом этот приказ ФНС неявно запрещает использовать в наименовании номенклатуры символы, отличные от базовой кириллицы и латиницы. Но это же бред     | |||||||||||||||||
| 10
    
        Chai Nic 04.04.24✎ 14:13 | 
        (9) Наверное это они для совместимости с древним софтом на клиппере, который до сих пор где-то крутится.     | |||||||||||||||||
| 11
    
        Garykom гуру 04.04.24✎ 14:17 | 
        (10) clipper'у глубоко пофиг на кодировку, ибо оно один хрен не умеет xml из коробки
 а банально как текст там можно в любой кодировке писать | |||||||||||||||||
| 12
    
        Chai Nic 04.04.24✎ 14:36 | 
        (11) Ну, формировать в досовской программе текст в UTF - не очень простая задача.     | |||||||||||||||||
| 13
    
        Garykom гуру 04.04.24✎ 14:44 | 
        (12) iconv.exe -f cp1251 -t utf-8 source.txt > result.txt     | |||||||||||||||||
| 14
    
        Chai Nic 04.04.24✎ 14:46 | 
        (13) iconv под DOS вообще есть с поддержкой юникода? Не консольный под винду..     | |||||||||||||||||
| 15
    
        Garykom гуру 04.04.24✎ 14:46 | 
        (14) скомпилить можно но смысл?     | |||||||||||||||||
| 16
    
        ssalikoff 04.04.24✎ 14:49 | 
        (11) То есть вы предлагаете писать в заголовке xml кодировку windows-1251, при этом сам файл будет в utf-8
 Надо экспериментировать, но кажется, работать не будет | |||||||||||||||||
| 17
    
        Garykom гуру 04.04.24✎ 14:51 | 
        (16) нет я такого не предлагаю
 речь шла про совместимость со старым софтом как на нем писать в utf-8 | |||||||||||||||||
| 18
    
        DrZombi гуру 04.04.24✎ 15:00 | 
        (9) Добро пожаловать в зазеркалье. :)     | |||||||||||||||||
| 19
    
        Chai Nic 04.04.24✎ 15:05 | 
        Как вариант, можно с контрагентом договориться и нужные юникодные строки запихивать в инфополя.     | |||||||||||||||||
| 20
    
        ssalikoff 04.04.24✎ 15:35 | 
        (19) у нас уникодные символы в наименовании номенклатуры. Придётся со всеми контрагентами на свете договариваться. Это не вариант     | |||||||||||||||||
| 21
    
        Chai Nic 04.04.24✎ 15:52 | 
        (20) А по другому никак, если не вносить изменений в НПА.     | |||||||||||||||||
| 22
    
        Garykom гуру 04.04.24✎ 17:02 | 
        (20) Транслитерацию делайте     | |||||||||||||||||
| 23
    
        ssalikoff 04.04.24✎ 18:34 | 
        (22) Для примера:
 Отвод для внутренней канализации RTP, полипропилен, ППР, PP-R, ⌀50×87° Стержень 100 мм ± 2 мм Вот вам ещё немного полезных символов, которые никак через windows-1251 не передать: ‰ промилле →←↑↓ стрелочки ≈ приблизительно 15⁄28 дроби « » кавычки и куча других Можно, конечно, вместо м² писать м2, вместо ℃ писать град.Цельсия и так далее, но это всё выглядит уродливо и не для всех символов можно найти костыльную замену 
 | |||||||||||||||||
| 24
    
        Garykom гуру 04.04.24✎ 18:47 | 
        (23) "⌀50×87°" прекрасно заменяется на "D50x87Г" - всем понятно
 Аналогично все прочее "±" = "+/-" И т.д. Если нельзя одним то заменить на несколько символов - обычная транслитерация. | |||||||||||||||||
| 25
    
        Garykom гуру 04.04.24✎ 18:55 | 
        Фактически вы от азбуки (алфавитное письмо) перешли частично на пиктографическое письмо (иероглифы-смайлики).
 И не хотите обратно, ибо так привычней. Но как известно алфавит круче чем пиктограммы - про НТР и где она произошла же в курсе? Ибо учить легче, слова новые проще и т.д. | |||||||||||||||||
| 26
    
        Garykom гуру 04.04.24✎ 18:52 | вместо м² писать м2 Общепринятое "кв.м" | |||||||||||||||||
| 27
    
        MWWRuza гуру 04.04.24✎ 22:32 | 
        (16) То есть вы предлагаете писать в заголовке xml кодировку windows-1251, при этом сам файл будет в utf-8
 Надо экспериментировать, но кажется, работать не будет Не будет. Я это проходил, когда свое ЭДО делал. Тут где-то была тема. Сервер не принимает, ошибки выдает. | |||||||||||||||||
| 28
    
        ssalikoff 05.04.24✎ 07:16 | 
        (25) Вы правы, иероглифы — проклятие китайцев и, по моему мнению, одна из важнейших причин тормозов в развитии. Но сейчас, в XXI веке, перед китайцами, благодаря компьютерам, такой проблемы больше нет и им нет нужды переходить на алфавитное письмо и делать они это не собираются. Что касается смайликов и пиктограмм — можно их рассматривать как символы расширенного алфавита, чем они в принципе и являются. Агитировать за национальные кодировки в наше время — очень плохой тон. Ведь если рассуждать в вашем стиле, то можно было бы до сих пор продолжать пользовататься библиотектой Мошкова (кто помнит такую?) в которой все книги были собраны в формате txt     | |||||||||||||||||
| 29
    
        Chai Nic 05.04.24✎ 08:52 | 
        (25) А если они продают какое-нибудь изделие по госзаказу, где в контракте прописано именно с "иероглифами" согласно ГОСТу? И нужно посимвольное соответствие, иначе не примут. Как тогда быть?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |