Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
10 мая 2025, 05:19

Формирование штрих кода в кодировке Windows-1251

Автор slimuz, 06 фев 2025, 08:27

0 Пользователей и 1 гость просматривают эту тему.

slimuz

Формирую штрих код через внешнюю компоненту "1С:Печать штрихкодов", формируется в кодировке UTF-8, нам нужно в Windows-1251. Написал в техподдержку 1С, их ответ:

В компоненте есть возможность передавать данные в бинарном виде через base64.

* ТипВходныхДанных - Число - тип входных данных
Возможные значения: 0 - Строка, 1 - Base64
ставить ТипВходныхДанных = 1
и в Штрихкод - передавать кодированную в Base64 необходимую информацию которая должны быть в ШК


Уточняю снова, снова ответ:

Символы (побайтно собрать строку) в кодировке Windows-1251 вы переводите в Base64
и передаете в ВК
Устанавливаете атрибут ТипВходныхДанных = 1
в Штрихкод - предавать кодированную в Base64 необходимую информацию которая должны быть в ШК

Так же возможно для вашей задачи подойдут
DataMatrix (ASCII)
DataMatrix GS1 (ASCII)


Все равно не понял, что имеется ввиду. Но начал пытаться закодировать текст в Windows-1251, потом в Base64, следующим образом:

Функция ПерекодироватьВWin1251(Знач ИсхТекст) Экспорт
ПутьКФайлу=ПолучитьИмяВременногоФайла("txt");
ЗаписьТекста=Новый ЗаписьТекста(ПутьКФайлу, "Windows-1251");
ЗаписьТекста.ЗаписатьСтроку(ИсхТекст);
ЗаписьТекста.Закрыть();

// Читаем файл как двоичные данные
    ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу);
   
  // Удаляем временный файл
    УдалитьФайлы(ПутьКФайлу);
   
    // Возвращаем байты
  Возврат ДвоичныеДанные;

КонецФункции

Функция ПреобразоватьВBase64(Знач ДвоичныеДанные) Экспорт
    Возврат Base64Строка(ДвоичныеДанные);
КонецФункции

Функция СформироватьЗначениеЛШК(ПодразделениеКод,Номер,ДатаДок,Текст)
                 
// Получаем байты строки в Windows-1251
    БайтыВ1251 = ПерекодироватьВWin1251("[3"+СокрП(Номер)+"]"+"["+СокрП(Номер)+"]"+"["+ДатаДок+"]"+"[Отправитель "+ПодразделениеКод+"]"+Текст);
   
  // Преобразуем байты в Base64
    Base64Строка = ПреобразоватьВBase64(БайтыВ1251);

ШК=Base64Строка;
СтуктураШК = Новый Структура("ШК", ШК);
Возврат СтуктураШК;               
КонецФункции

Штрихкод формируется с надписью "invalid barcode!"

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск