Формирую штрих код через внешнюю компоненту "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!"