С сайта ИТС установил 1С Печать штрих-кода.В макет поставил 1С Печать штрих-кода, но почему не отображает рисунок штрихкода( на скрине видно).
Почему не показывает штрихкод?
Этот код взял в интернете, но почему-то у Компонент нет Автотип,Сообщение и т.д.( видно на скрине)
Вообще у Компонент должны бьть эти свойства и если да, то почему нет?

```1c
    ОбластьШК = Макет.ПолучитьОбласть("ШК");
    Компонент = ОбластьШК.Рисунки.Штрих.Объект;
    Компонент.Автотип = Истина;
    Компонент.Сообщение = Строка(Ссылка.УникальныйИдентификатор());
    Компонент.ОтображатьТекст = Ложь;
    ОбластьМакета.Рисунки.Штрихкод.Ширина = Компонент.МинимальнаяШирина + 5;
    ТабДокумент.Вывести(ОбластьШК);
```

Обычные формы.УТ 10.3
---
Посмотрите эту обработочку, может наведёт на правильную мысль...
---
Нет)
у вас УТ ? Добавте общий макет "КомпонентаПечатиШтрихкодов"
Тип макета "Внешняя компонента"
Загрузите туда файл, который я прикрепил (это типовая компонента из УПП)
---
Вот есть путевые ответы по форуму

http://forum-1c.ru/index.php?topic=46248.0

Таким образом, для того чтобы печать была доступна на компьютере необходимо установить компоненту «1CBarCode.exe». Скачать ее можно на сайте.

Данный драйвер используется в конфигурациях, не содержащих «1С:Библиотека подключаемого оборудования».
---
https://strokescribe.com/ru/1c-8-create-barcode.html

Подробнейшее описание создание вручную штрих-кода

```1c
    Процедура КнопкаСформироватьНажатие(Кнопка)
    Док=Новый ТабличныйДокумент();
    Макет=ПолучитьМакет("МакетШтрихкод");
    Область=Макет.ПолучитьОбласть("СекцияШтрихкод");
    Для код=4000001 по 4000005 Цикл
    barcode=Область.Рисунки.ОбъектШтрихкод.Объект;
    barcode.Text=Формат(код,"ЧГ=0");
    barcode.Alphabet=1;
    Если barcode.Error>0 Тогда
    сообщить(barcode.ErrorDescription);
    КонецЕсли;
    Док.Вывести(Область);
    КонецЦикла;
    Док.Показать("Наклейки");
    КонецПроцедуры
```
---
Работа с константами

```1c
    Если Не ЗначениеЗаполнено(Константы.СерийныйРеализации.Получить()) Тогда
    СерийныйНомер = "999990000000";
    Константы.СерийныйРеализации.Установить(СерийныйНомер);
    ЭтотОбъект.СерийныйРеализации = Константы.СерийныйРеализации.Получить();
    Иначе
    Если Не ЗначениеЗаполнено(ЭтотОбъект.СерийныйРеализации) Тогда
    СерийныйНомер = Число(Константы.СерийныйРеализации.Получить()) + 1;
    Константы.СерийныйРеализации.Установить(Формат(СерийныйНомер,"ЧЦ=12; ЧГ="));
    ЭтотОбъект.СерийныйРеализации = Константы.СерийныйРеализации.Получить();
    КонецЕсли;
    КонецЕсли;
```

Как прописывать штрих код

```1c
    ОбластьМакета.Рисунки.СерийныйРеализации.Объект.ТипКода = 1;
    ОбластьМакета.Рисунки.СерийныйРеализации.Объект.Сообщение = ЭтотОбъект.Ссылка.СерийныйРеализации;
    ОбластьМакета.Рисунки.СерийныйРеализации.Объект.ТекстКода = ЭтотОбъект.Ссылка.СерийныйРеализации;
```
---
Основными видами штрихкодов с которыми работает программа 1С:Розница это: CODE128, CODE39, EAN128, EAN13, EAN8 и ITF14. Но самыми распространенными являются всего 2 кода CODE39 и EAN13.

Штрихкоды 1С Розница
При использовании Штрихкодов довольно проблематично вводить их руками, особенно если это EAN13 и длинна такого кода 13 цифр. По этому потребуется дополнительное оборудование - сканер штрихкодов. Сканер упрощает ввод штрихкодов, некоторые сканеры работают по радиоканалу и могут мобильно использоваться в магазине, к примеру для инвентаризации на складе. Большинство сканеров, даже самые простые модели умеют работать почти со всеми видами штрихкодов, принципиальное отличие в скорости работы и точности считывания кодов.

Какой драйвер штрих-кода поставили вы?
---
По разрядности 1С и Винды может помочь эта статья.

https://forum.mista.ru/topic.php?id=801455

https://kb.mista.ru/article.php?id=870

Описывается подключение нестандартных компонент штрих-кодов.

https://forum.infostart.ru/forum86/topic186130/

Кроме понятной уже 1С:Печать штрих-кода,
независимо от разрядности сервера 1С , клиент должен быть 32 разряда.
При этом "C:\Program Files (x86)\1cv8\common\1cestart.exe" - не катит почему-то, а именно 1сv8.EXE из 32разрядного каталога отрабатывает прекрасно и штрих-код до бумаги доходит.
Это логично, клиентские платформы всегда должны быть 32разряда, т.к. на 64х много чего не работает
чтобы не париться с запуском из какой то папки, на новых платформах есть прекрасная вещь
---
Вот отличная статья для профи, если железо плохо настраивается

АНАЛИЗ И РАЗБОР ДАННЫХ ОТ СКАНЕРА ШТРИХ КОДОВ
https://www.aggsoft.ru/asdl-barcode-data-logger-2.htm

ПАРСИНГ ДАННЫХ СКАНЕРА ШТРИХ КОДОВ
https://www.aggsoft.ru/asdl-barcode-data-logger.htm

Вообщем, если сканер будет сбоить с принятием данных то лучше статей просто нет.
---
Попробуйте увеличить ширину штрихкода чтоб все 36 символов влезли, сейчас наверно показывается рисунок с диагональными квадратиками.
---
ширину и длину увеличил,все равно не показывает
---
Попробуйте указать тип штрихкода
ОбластьМакета.Рисунки.ШтрихКод.Объект.ТипКода = ТипКода; (EAN8, EAN13, Code39 и т.д.)
---
у объекта ничего нет , поэтому выдает ошибку, что не найден
---
Посмотрите эту обработочку, может наведёт на правильную мысль...
---
нормально, что показывает так?
---
Нет)
у вас УТ ? Добавте общий макет "КомпонентаПечатиШтрихкодов"
Тип макета "Внешняя компонента"
Загрузите туда файл, который я прикрепил (это типовая компонента из УПП)
---
да, УТ 10.3 .Обычные формы
---
цифр внизу не должно быть?
---
Можно настраивать с цифрами и без них
---
Поменяйте ПараметрыШтрихкода.Вставить("ОтображатьТекст", Ложь); на ПараметрыШтрихкода.Вставить("ОтображатьТекст", Истина);
---
штрихкоды для документов. Насколько документов хватит уникальности?
---
(16) если поставить в качестве цифр уникальный идентификатор документа,то совпадений не будет и каждую документ можно будет легко найти,если сканировать штрихкод,да?
---
Это точно вопрос ко мне? )
Вообще да, и не обязательно ставить в качестве цифр уникальный идентификатор, можно просто каждому документу присваивать штрихкод, попробуйте поискать штрихкодирование документов 1с, найдёте решение (возможно есть даже типовое, я в своё время изобретал велосипед)
---
это вопрос к вам и к Николаю Поздяеву))
---
Вы можете сформировать любой штрихкод из типовых линейных. Уникальность можете придумать свою. На основании количества цифр, букв будет формироваться штрихккод по правилам формирования линейных штрихкодов. В интернете есть много информации на эту тему.
---
сделал так, но почему-то штрихкод не показывает

```1c
    ОбластьШК = Макет.ПолучитьОбласть("ШК");

    ШтрихКод_ЗН=Новый УникальныйИдентификатор;
    РисунокШК = ОбластьШК.Рисунки.ШК1;
    Попытка
    ПараметрыШтрихкода = Новый Структура;
    ПараметрыШтрихкода.Вставить("Ширина", Окр((100/26.4583333333333) * РисунокШК.Ширина)); //Высота 100 пикселей 26.4583333333333
    ПараметрыШтрихкода.Вставить("Высота", Окр((100/26.4583333333333) * РисунокШК.Высота));
    ПараметрыШтрихкода.Вставить("Штрихкод", СокрЛП(ШтрихКод_ЗН));
    ПараметрыШтрихкода.Вставить("ТипКода", 4); //"CODE128";
    ПараметрыШтрихкода.Вставить("ОтображатьТекст", Истина);
    РисунокШК.Картинка = ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);
    Исключение
    Сообщить("Не удалось сформировать ШК для печатной формы!");
    КонецПопытки;
```

Остальные функции в вашей обработке оставил также и просто скопировал
Или в других функциях нужно изменить кое-что?
---
Сообщение было скрыто модератором.
---
У Вас на ПК установлена компонента печати штрихкода? Если нет штрихкод печататься не будет
---
обработка в (6) печает. Значит и в встроенном макете 1с должен же печатать штрихкод
---
в общий макет добавил КомпонентаПечатиШтрихкодов, как было написано в (9)
---
выводит, исправил
---
Где вы сделали так? обработка выводит ШК?
Вы пытаетесь вставить в документ?
---
я просто область макета не выводил)
---
У Вас все получилось?
---
на примере обработки (6) получилось, но хотелось бы сделать так, как вы показали в (23). Потому что так гораздо меньше кода
---
(18) В форме списка документа добавил кнопку с такой процедурой:

```1c
    Процедура ДействияФормыНайтиДокумент(Кнопка)
    Результат = РаботаСТорговымОборудованием.ВвестиШтрихкод();
    Если Результат<> " Тогда
    Документы.РеализацияТоваровУслуг.ПолучитьСсылку(Новый УникальныйИдентификатор(Результат)).ПолучитьФорму("ФормаДокумента").Открыть();
    КонецЕсли;
    КонецПроцедуры
```

Я правильно,что отсканировать штрикод должна открыться форма документа.Если в поле ввода вручную внести штрихкод документа, то форма открывается.
 Теоретически должна открыться,но при сканировании штрихкода будет ли заполняться поле ввода,которая показана на скрине?
---
Если пользователь сам нажмет на вашу кнопку, откроется эта форма и поле ввода будет выделено (скорее всего автоматически, если нет то нужно это прописать, что бы курсор там был), то при сканировании любого ШК отсканированная информация как текст будет помещена в это поле.
Потом пользователь должен нажать ОК и тогда откроет.
Но лучше подсмотреть в вашей конфигурации в документах Реализации или Поступления принцип работы с процедурой ОбработкаОповещения, что бы пользователю не приходилось имея сканер нажимать лишние кнопки.
Принцип обычно такой:
ПриОткрытии
ПодключениеОборудования

ПриЗакрытии
ОтключениеОборудования

ОбработкаОповещения
Обработка Отсканированного ШК
---
проверил, работает как в (34) сделал
---
Цифры должны быть. а ты какой из штрих-кодов взял за основу, там их два.
---
нет, нужна НЕ картинка, а "Элемент управления"

Таблица - Рисунки... - вставить объект

(*) Элемент управления - > 1C v8. Печать штрихкода

и вот у него - все свойства - СРАЗУ надо в макете настраивать -> Code-128 например
и растянуть надо побольше...
---
Перед печатью проверяют компоненту штрихкода

```1c
    Попытка
    КомпонентШК = Новый COMОбъект("V8.Barcod");
    ТипКода = УправлениеРозничнойТорговлей.ПолучитьЗначениеТипаШтрихкодаДляЭУ(УправлениеРозничнойТорговлей.ОпределитьТипШтрихкода(СокрЛП(ШтрихкодДокумента)));
    КомпонентШК.ТипКода = ТипКода;
    КомпонентШК.Сообщение = СокрЛП(Шапка.ШтрихкодДокумента);
    КомпонентаШтрихкодовУстановлена = Истина;
    Исключение
    КомпонентаШтрихкодовУстановлена = Ложь;
    КонецПопытки;

    Если КомпонентаШтрихкодовУстановлена Тогда
    ТипКода = УправлениеРозничнойТорговлей.ПолучитьЗначениеТипаШтрихкодаДляЭУ(УправлениеРозничнойТорговлей.ОпределитьТипШтрихкода(СокрЛП(ШтрихкодДокумента)));
    ОбластьМакета.Рисунки.ШтрихКод.Объект.ТипКода = ТипКода;
    ОбластьМакета.Рисунки.ШтрихКод.Объект.Сообщение = СокрЛП(Шапка.ШтрихкодДокумента);
    ОбластьМакета.АвтоМасштаб = Истина;
    Иначе
    ОбластьМакета.Рисунки.Удалить(ОбластьМакета.Рисунки.ШтрихКод);
    КонецЕсли;
```
---
что такое ШтрихкодДокумента?
выдает ошибку:
 Переменная не определена (ШтрихкодДокумента)
---
Я показал свой пример. Вместо ШтрихкодДокумента поставьте свою переменную со штрихкодом, Строка(Ссылка.УникальныйИдентификатор()) или набор цифр букв и т.д.
---
Посмотрите это мой рабочий пример:

```1c
    Макет = ПолучитьМакет("Ваш макет");

    КомпонентаШтрихкодовУстановлена = Ложь;

    Попытка
    КомпонентШК = Новый COMОбъект("V8.Barcod");
    ТипКода = 4; //Здесь указавается тип кода
    КомпонентШК.ТипКода = ТипКода;
    КомпонентШК.Сообщение = "123456789";//Здесть уазывается штрихкод
    КомпонентаШтрихкодовУстановлена = Истина;
    Исключение
    КомпонентаШтрихкодовУстановлена = Ложь;
    КонецПопытки;

    ОбластьМакета = Макет.ПолучитьОбласть("Ваша область"); //Область где находится штрихкод

    Если КомпонентаШтрихкодовУстановлена Тогда
    ТипКода = 4;
    ОбластьМакета.Рисунки.ШтрихКод.Объект.ТипКода = ТипКода;
    ОбластьМакета.Рисунки.ШтрихКод.Объект.Сообщение ="123456789";
    ОбластьМакета.АвтоМасштаб = Истина;
    Иначе
    ОбластьМакета.Рисунки.Удалить(ОбластьМакета.Рисунки.ШтрихКод);
    КонецЕсли;

    ТабДокумент.Вывести(ОбластьМакета);
```

Все работает ничего лишнего.
---
у меня КомпонентаШтрихкодовУстановлена=ложь
у меня эта компонента установлена: 1С:Печать штрихкодов (ActiveX)
Как и что нужно установить?
---
Основными видами штрихкодов с которыми работает программа 1С:Розница это: CODE128, CODE39, EAN128, EAN13, EAN8 и ITF14. Но самыми распространенными являются всего 2 кода CODE39 и EAN13.

Штрихкоды 1С Розница
При использовании Штрихкодов довольно проблематично вводить их руками, особенно если это EAN13 и длинна такого кода 13 цифр. По этому потребуется дополнительное оборудование - сканер штрихкодов. Сканер упрощает ввод штрихкодов, некоторые сканеры работают по радиоканалу и могут мобильно использоваться в магазине, к примеру для инвентаризации на складе. Большинство сканеров, даже самые простые модели умеют работать почти со всеми видами штрихкодов, принципиальное отличие в скорости работы и точности считывания кодов.

Какой драйвер штрих-кода поставили вы?
---
не показывает может из-за того,что у меня 1С 64-разрядная?
---
Возможно. У меня 1С 32-разрядная.
---
Вот есть путевые ответы по форуму

http://forum-1c.ru/index.php?topic=46248.0

Таким образом, для того чтобы печать была доступна на компьютере необходимо установить компоненту «1CBarCode.exe». Скачать ее можно на сайте.

Данный драйвер используется в конфигурациях, не содержащих «1С:Библиотека подключаемого оборудования».
---
эта компонента корректно работает на 64-разрядных 1с?
---
Да отлично, её и надо ставить 1С официально поддерживает именно её
---
По разрядности 1С и Винды может помочь эта статья.

https://forum.mista.ru/topic.php?id=801455

https://kb.mista.ru/article.php?id=870

Описывается подключение нестандартных компонент штрих-кодов.

https://forum.infostart.ru/forum86/topic186130/

Кроме понятной уже 1С:Печать штрих-кода,
независимо от разрядности сервера 1С , клиент должен быть 32 разряда.
При этом "C:\Program Files (x86)\1cv8\common\1cestart.exe" - не катит почему-то, а именно 1сv8.EXE из 32разрядного каталога отрабатывает прекрасно и штрих-код до бумаги доходит.
Это логично, клиентские платформы всегда должны быть 32разряда, т.к. на 64х много чего не работает
чтобы не париться с запуском из какой то папки, на новых платформах есть прекрасная вещь
---
Вот отличная статья для профи, если железо плохо настраивается

АНАЛИЗ И РАЗБОР ДАННЫХ ОТ СКАНЕРА ШТРИХ КОДОВ
https://www.aggsoft.ru/asdl-barcode-data-logger-2.htm

ПАРСИНГ ДАННЫХ СКАНЕРА ШТРИХ КОДОВ
https://www.aggsoft.ru/asdl-barcode-data-logger.htm

Вообщем, если сканер будет сбоить с принятием данных то лучше статей просто нет.
---
```1c
    ОбластьШК = Макет.ПолучитьОбласть("ШК");

    НомерДокумента=СтрЗаменить(СокрЛП(Ссылка.Номер),"А","A");
    ДеньДокумента=СокрЛП(День(Ссылка.Дата));
    ШтрихКод_ЗН="P"+НомерДокумента+ДеньДокумента;
    РисунокШК = ОбластьШК.Рисунки.ШК1;
    Попытка
    ПараметрыШтрихкода = Новый Структура;
    ПараметрыШтрихкода.Вставить("Ширина", Окр((100/26.4583333333333) * РисунокШК.Ширина)); //Высота 100 пикселей 26.4583333333333
    ПараметрыШтрихкода.Вставить("Высота", Окр((100/26.4583333333333) * РисунокШК.Высота));
    ПараметрыШтрихкода.Вставить("Штрихкод", ШтрихКод_ЗН);
    ПараметрыШтрихкода.Вставить("ТипКода", 4); //"CODE128";
    ПараметрыШтрихкода.Вставить("ОтображатьТекст", Истина);
    РисунокШК.Картинка = ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);
    Исключение
    Сообщить("Не удалось сформировать ШК для печатной формы!");
    КонецПопытки;
```

Формирую так штрихкод. Как ,например в форме списка документа открыть форму документа по этому штрихкоду?
---
Для того, чтобы найти документ по штрихкоду, необходимо сохранить этот штрихкод при записи документа и далее сформировать запрос.
---
сохранять в регистре сведений или где? вы где сохраняете?
---
На твое усмотрение. Можно создать отдельный регистр сведений, или если штрихкод формируешь из номера документа его даты, написать процедуру поиска документа.
---
не хотелось бы из-за этого создавать РС. штрихкод формирую так:

```1c
    НомерДокумента=СтрЗаменить(СокрЛП(Ссылка.Номер),"А","A");
    ДеньДокумента=СокрЛП(День(Ссылка.Дата));
    ШтрихКод_ЗН="P"+НомерДокумента+ДеньДокумента;
```
---
Решай сам как тебе удобно. Я создавал отдельно регистр сведений.
---
Строка ниже не выводилось что-то?

```1c
    НомерДокумента=СтрЗаменить(СокрЛП(Ссылка.Номер),"А","A");
```
---
я русскую А поменял на английскую А,потому что при русских буквах вместо штрихкода написано invalid....
---
Работа с константами

```1c
    Если Не ЗначениеЗаполнено(Константы.СерийныйРеализации.Получить()) Тогда
    СерийныйНомер = "999990000000";
    Константы.СерийныйРеализации.Установить(СерийныйНомер);
    ЭтотОбъект.СерийныйРеализации = Константы.СерийныйРеализации.Получить();
    Иначе
    Если Не ЗначениеЗаполнено(ЭтотОбъект.СерийныйРеализации) Тогда
    СерийныйНомер = Число(Константы.СерийныйРеализации.Получить()) + 1;
    Константы.СерийныйРеализации.Установить(Формат(СерийныйНомер,"ЧЦ=12; ЧГ="));
    ЭтотОбъект.СерийныйРеализации = Константы.СерийныйРеализации.Получить();
    КонецЕсли;
    КонецЕсли;
```

Как прописывать штрих код

```1c
    ОбластьМакета.Рисунки.СерийныйРеализации.Объект.ТипКода = 1;
    ОбластьМакета.Рисунки.СерийныйРеализации.Объект.Сообщение = ЭтотОбъект.Ссылка.СерийныйРеализации;
    ОбластьМакета.Рисунки.СерийныйРеализации.Объект.ТекстКода = ЭтотОбъект.Ссылка.СерийныйРеализации;
```
---
https://strokescribe.com/ru/1c-8-create-barcode.html

Подробнейшее описание создание вручную штрих-кода

```1c
    Процедура КнопкаСформироватьНажатие(Кнопка)
    Док=Новый ТабличныйДокумент();
    Макет=ПолучитьМакет("МакетШтрихкод");
    Область=Макет.ПолучитьОбласть("СекцияШтрихкод");
    Для код=4000001 по 4000005 Цикл
    barcode=Область.Рисунки.ОбъектШтрихкод.Объект;
    barcode.Text=Формат(код,"ЧГ=0");
    barcode.Alphabet=1;
    Если barcode.Error>0 Тогда
    сообщить(barcode.ErrorDescription);
    КонецЕсли;
    Док.Вывести(Область);
    КонецЦикла;
    Док.Показать("Наклейки");
    КонецПроцедуры
```
---
Уже разобраслся, спасибо
---
Подскажите пожалуйста, как сделать чтобы весь лист заполнялся штрих кодами, это макет рисовать по размеру листа или как то программно можно сделать?
---
Сообщение было скрыто модератором.
---
А есть "1С:Печать штрих-кодов" под 64-разрядного клиента?