Добрый день уважаемые форумчане ...
прошу помощи у гуру ...

Розница 3.0 (3.0.8.73)

Никак не понимаю как формируется *Конечный GS-1 Data matrix Штрихкод* из данных в базе
Например у меня есть номенклатура "Жилет мужской Китай 62" с GTIN 02900506210720

Как я понимаю он формируется из Регистра сведений (ПулКодовМаркировкиСУЗ) Или Справочника (ШтрихкодыУпаковокТоваров) или из них обоих одновременно
Например я распечатал ШК на выходе если его отсканировать то мы получим такой *Конечный GS-1 Data matrix Штрихкод*
0102900506210720215VkrWSE&J6d8t91EE1092rb26F+hws1gZyRX07eBh0­oiCUThj/AbEvAlFQL3MVyo=

Проблема в том что я совсем не понимаю откуда беретеся его хвост ???

Если посмотреть на обе эти таблицы то я нашел таки значения как

КодМаркировки
(01)02900506210720(21)5VkrWSE&J6d8t
- Это понятно это начало ШК

ХешСуммаКодаМаркировки
9WyE2CA3lCyZog5tYoGksJsOWwv+5ynvyxKEXdJlpxQ=

ПолныйКодМаркировки
MDEwMjkwMDUwNjIxMDcyMDIxNVZrcldTRSZKNmQ4dB05MUVFMTAdOTJyYjI2­Ritod3MxZ1p5UlgwN2VCaDBvaUNVVGhqL0FiRXZBbEZRTDNNVnlvPQ==

ХешСуммаНормализации
Y2qmWYV3TXXd+H9mrG2K3ikEoxVFdMTFr0ewtLOl5lg=

- Эти значения не понятно за что отвечают

Каким хитрым образом из этих данным мы получаем *Конечный GS-1 Data matrix Штрихкод* (0102900506210720215VkrWSE&J6d8t91EE1092rb26F+hws1gZyRX07eBh0­oiCUThj/AbEvAlFQL3MVyo=) ???
Какая функция за это отвечает ??? и что в нее нужно передать чтобы *Конечный GS-1 Data matrix Штрихкод* ???

Заранее огромное спасибо !!!
---
примерно так

```1c
    Строка="MDEwMjkwMDUwNjIxMDcyMDIxNVZrcldTRSZKNmQ4dB05MUVFMTAdOTJyYjI2Ritod3MxZ1p5UlgwN2VCaDBvaUNVVGhqL0FiRXZBbEZRTDNNVnlvPQ==";
    ДвоичныеДанные = Base64Значение(Строка);
    ЧтениеДанных = Новый ЧтениеДанных(ДвоичныеДанные);
    Сообщить(ЧтениеДанных.ПрочитатьСтроку());
    ЧтениеДанных.Закрыть();
```
---
ПолныйКодМаркировки это base64
ХешСуммаКодаМаркировки, ХешСуммаНормализации - похоже на base64, но сначала где-то в коде 1с получается некий хэш
---
Дмитрий спасибо ... Как всегда поражаюсь обширности ваших знаний ...

а какая функция в 1с это может сделать ?
---
ИнтеграцияИС.ХешированиеДанныхSHA256
---
ИнтеграцияИС.ХешированиеДанныхSHA256

```1c
    Сообщить(ИнтеграцияИС.ХешированиеДанныхSHA256(Объект.ПолныйКодМаркировки))
```

Попробовал выполнить эту функцию

Передал туда
MDEwMjkwMDUwNjIxMDcyMDIxNVZrcldTRSZKNmQ4dB05MUVFMTAdOTJyYjI2­­Ritod3MxZ1p5UlgwN2VCaDBvaUNVVGhqL0FiRXZBbEZRTDNNVnlvPQ==

функция возвратила
4gR+fd95+hTv9LgEFKngSmQdyJ2n97KH5CSyQU9iMuw=

Блин что то не то ...
Яндекс правильно декодирует
https://ya.ru/search/?text=base64+online&lr=16&clid=9403&search_source=yaru_deskto­p_common&search_domain=yaru

Правда почему-то отличается на один символ от 1с ...

Вопрос остается открытым

А какая функция в 1с это может сделать ?
---
примерно так

```1c
    Строка="MDEwMjkwMDUwNjIxMDcyMDIxNVZrcldTRSZKNmQ4dB05MUVFMTAdOTJyYjI2Ritod3MxZ1p5UlgwN2VCaDBvaUNVVGhqL0FiRXZBbEZRTDNNVnlvPQ==";
    ДвоичныеДанные = Base64Значение(Строка);
    ЧтениеДанных = Новый ЧтениеДанных(ДвоичныеДанные);
    Сообщить(ЧтениеДанных.ПрочитатьСтроку());
    ЧтениеДанных.Закрыть();
```
---
ПолныйКодМаркировки это base64
ХешСуммаКодаМаркировки, ХешСуммаНормализации - похоже на base64, но сначала где-то в коде 1с получается некий хэш
---
Все на много проще

ПолныйКодМаркировки = "MDEwMjkwMDUwNjIxMDcyMDIxNVZrcldTRSZKNmQ4dB05MUVFMTAdOTJyYjI­2Ritod3MxZ1p5UlgwN2VCaDBvaUNVVGhqL0FiRXZBbEZRTDNNVnlvPQ==";

Это строка base64

ДвоичныеДанные = Base64Значение(ПолныйКодМаркировки);

ДанныеШтрихкода = ПолучитьСтрокуИзДвоичныхДанных(ДвоичныеДанные);