Печать штрихкода для любой конфигурации на платформе 8.3

26.07.21

Задачи пользователя - Этикетки, ценники

Платформы младше 8.3.12.1313 использовали ActivX для печати ШтрихКода, сейчас технология изменилась. Эта обработка - замена старого механизма на новый.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Печать ШтрихКода для любой конфигурации и платформы 8.3:
.epf 2,01Mb
210
210 Скачать (2 SM) Купить за 2 150 руб.
Печать штрихкода управляемых форм для внешней обработки:
.epf 6,09Kb
40
40 Скачать (1 SM) Купить за 1 850 руб.

Столкнулся с тем, что на последних платформах перестали печататься ШК по старой технологии.

Раньше мы вставляли в макет объект ActivX

давали ему имя Штрихкод и тексте прописывали 

ОбластьМакета.Рисунки.Штрихкод.Объект.ТипКода     = 1;
ОбластьМакета.Рисунки.Штрихкод.Объект.отображатьТекст=истина;
ОбластьМакета.Рисунки.Штрихкод.Объект.УстановитьШрифт(,2);
ОбластьМакета.Рисунки.Штрихкод.Объект.Сообщение   = Штрихкод;
ОбластьМакета.Рисунки.Штрихкод.Объект.ТекстКода   = Штрихкод;    
ТабДокумент.Вывести(ОбластьМакета);

Платформы старше 8.3.12.1313 перестали это поддерживать и старые обработки и отчеты вылетают по ошибке.

Теперь что бы поправить печатные формы надо подключить внешнюю компоненту положить в макет Картинку (можно взять любую из стандартных) растянуть ее до нужных размеров и программным способом заменить ее на то что вернет подключенная внешняя компонента 1CBarcodWin32_9_0_4_7.dll  или 1CBarcodWin64_9_0_4_7.dll .

Для управляемых форм:

    ШК="000000000025768";
	о=РеквизитФормыВЗначение("Объект");
	ВК=о.ПодключитьВнешнююКомпонентуПечатиШтрихкода();	
	табдок=Новый ТабличныйДокумент;
	
	макет=о.ПолучитьМакет("Макет");
	Ш=макет.ПолучитьОбласть("Шапка");
	
	//Эталон = ПолучитьМакет("Эталон");
	//КоличествоМиллиметровВПикселе = Эталон.Рисунки.Квадрат100Пикселей.Высота / 100;  //0.26454
	КоличествоМиллиметровВПикселе = 0.26454; //Можно указывать напрямую без Эталон = ПолучитьМакет("Эталон"); и КоличествоМиллиметровВПикселе = Эталон.Рисунки.....
	
	ПараметрыШтрихкода = Новый Структура;
	ПараметрыШтрихкода.Вставить("Ширина",          Окр(Ш.Рисунки.Штрихкод.Ширина / КоличествоМиллиметровВПикселе));
	ПараметрыШтрихкода.Вставить("Высота",          Окр(Ш.Рисунки.Штрихкод.Высота / КоличествоМиллиметровВПикселе));
	ПараметрыШтрихкода.Вставить("Штрихкод",        ШК);//СокрЛП(ЧисловойКодПоСсылке(Ссылка)));
	ПараметрыШтрихкода.Вставить("ОтображатьТекст", истина);
	ПараметрыШтрихкода.Вставить("РазмерШрифта",    6);

	Ш.Рисунки.Штрихкод.Картинка = о.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода,ВК);
	табдок.Вывести(Ш);
	Возврат табдок;

Для обычных форм:

    ШК="000000000025768";
	ВК=ПодключитьВнешнююКомпонентуПечатиШтрихкода();	
	табдок=Новый ТабличныйДокумент;
	макет=ПолучитьМакет("Макет");
	Ш=макет.ПолучитьОбласть("Шапка");
	
	Эталон = ПолучитьМакет("Эталон");
	КоличествоМиллиметровВПикселе = Эталон.Рисунки.Квадрат100Пикселей.Высота / 100;  //0.26454
	//КоличествоМиллиметровВПикселе = 0.26454; //Можно указывать напрямую без Эталон = ПолучитьМакет("Эталон"); и КоличествоМиллиметровВПикселе = Эталон.Рисунки.....
	
	ПараметрыШтрихкода = Новый Структура;
	ПараметрыШтрихкода.Вставить("Ширина",          Окр(Ш.Рисунки.Штрихкод.Ширина / КоличествоМиллиметровВПикселе));
	ПараметрыШтрихкода.Вставить("Высота",          Окр(Ш.Рисунки.Штрихкод.Высота / КоличествоМиллиметровВПикселе));
	ПараметрыШтрихкода.Вставить("Штрихкод",        ШК);//СокрЛП(ЧисловойКодПоСсылке(Ссылка)));
	ПараметрыШтрихкода.Вставить("ОтображатьТекст", истина);
	ПараметрыШтрихкода.Вставить("РазмерШрифта",    6);

	Ш.Рисунки.Штрихкод.Картинка = ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода,ВК);
	табдок.Вывести(Ш);
	табдок.Показать();

К публикации прикреплена обработка, которая реализует печать ШК для УФ и Обычных форм. В Макетах содержаться компоненты для windows 32 и 64. Если ваша конфигурация снята с поддержки, то встраиваем внешнюю обработку в конфигурацию, немного изменяем код. Публикация для программистов! Это всего лишь болванка для реализации ваших потребностей!

 

 

 

Хоть от конфигурации и не зависит напишу что проверялось на платформе 1С:Предприятие 8.3 (8.3.15.1700)

Бухгалтерия предприятия, редакция 3.0 (3.0.73.54)

Управление торговлей, редакция 10.3 (103.5)

Управление торговлей, редакция 11 (11.4.9.91)

и на пустой конфигурации.

 

Как читать ШК во внешней обработке:

Берем БП3 3.0 (3.0.75.104) 

&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
	//ставим точку останова на КонецПроцедуры
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
  ПоддерживаемыеТипыВО = Новый Массив();
   ПоддерживаемыеТипыВО.Добавить("СканерШтрихкода");
   ОповещенияПриПодключении = Новый ОписаниеОповещения("ПодключитьОборудованиеЗавершение", ЭтотОбъект); 
   МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПоТипу(ОповещенияПриПодключении, УникальныйИдентификатор, ПоддерживаемыеТипыВО);

КонецПроцедуры

&НаКлиенте
Процедура ПодключитьОборудованиеЗавершение(РезультатВыполнения, Параметры) Экспорт
 
   Если Не РезультатВыполнения.Результат Тогда
      ТекстСообщения = НСтр( "ru = 'При подключении оборудования произошла ошибка:""%ОписаниеОшибки%"".'");
      ТекстСообщения = СтрЗаменить(ТекстСообщения, "%ОписаниеОшибки%" , РезультатВыполнения.ОписаниеОшибки);
      Сообщить(ТекстСообщения);
   Иначе
      ТекстСообщения = НСтр("ru = 'Оборудование подключено.'" );
      Сообщить(ТекстСообщения);
   КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	ПоддерживаемыеТипыВО = Новый Массив();
   ПоддерживаемыеТипыВО.Добавить("СканерШтрихкода");
   ОповещенияПриПодключении = Новый ОписаниеОповещения("ОтключитьОборудованиеЗавершение", ЭтотОбъект); 
   МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПоТипу(ОповещенияПриПодключении, УникальныйИдентификатор, ПоддерживаемыеТипыВО);

КонецПроцедуры

&НаКлиенте
Процедура ОтключитьОборудованиеЗавершение(РезультатВыполнения, Параметры) Экспорт
   
   Если Не РезультатВыполнения.Результат Тогда
      ТекстСообщения = НСтр( "ru = 'При отключении оборудования произошла ошибка: ""%ОписаниеОшибки%"".'");
      ТекстСообщения = СтрЗаменить(ТекстСообщения, "%ОписаниеОшибки%" , РезультатВыполнения.ОписаниеОшибки);
      Сообщить(ТекстСообщения);
   Иначе
      ТекстСообщения = НСтр("ru = 'Оборудование отключено.'" );
      Сообщить(ТекстСообщения);
   КонецЕсли;

КонецПроцедуры

обработка ВнешняяОбработка_ВнешнееСобытие.epf

См. также

Этикетки, ценники Пользователь Платформа 1С v8.3 Конфигурации 1cv8 Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Беларусь Украина Россия Управленческий учет Платные (руб)

Простая в использовании обработка для формирования и печати ценников и этикеток со штрих-кодом, с дополнительной ценой, для 1С8.х Большое разнообразие шаблонов печатных форм. Управляемая форма (Такси) + Обычный режим.

3588 руб.

11.11.2020    49756    61    47    

70

Этикетки, ценники Пользователь Платформа 1С v8.3 Управляемые формы 1С:Розница 2 1С:Управление нашей фирмой 1.6 Платные (руб)

Встроенная в конфигурации Розница 2.3 и УНФ 1.6 подсистема печати ценников по мне слишком неповоротлива и с усилиями поддается тонкой настройке, решил с нуля написать свою универсальную печать ценников для этих конфигураций.

2000 руб.

04.11.2019    29410    115    87    

54

Этикетки, ценники Пользователь Платформа 1С v8.3 1С:Розница 2 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Абонемент ($m)

Расширение "Контроль ценников". Позволяет автоматизировать контроль над устаревшими ценниками в магазине при изменении цен на товары. Продавцы или товароведы получают список товаров с измененными ценами для замены ценников в режиме онлайн.

10 стартмани

30.10.2024    263    3    Miket78    4    

5

Этикетки, ценники Пользователь Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Абонемент ($m)

Внешняя обработка для 1С Розница 2.2.ХХХ - 2.3.ХХХ для печати формирования штрихкодов весового товара и печати на принтере термоэтикеток или кассовом аппарате.

1 стартмани

29.10.2024    321    3    independ    1    

5

Логистика, склад и ТМЦ Этикетки, ценники Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Абонемент ($m)

Выводит при печати этикетки складской ячейки в качестве штрихкода адрес ячейки вместо уникального идентификатора

1 стартмани

20.06.2024    1164    3    Alexei_Siva    4    

6

Этикетки, ценники Программист Мобильная платформа Бесплатно (free)

Печать этикеток на принтер WiFi без драйвера.

20.01.2023    2596    aldar    0    

9

Этикетки, ценники Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Абонемент ($m)

Внешняя печатная форма для принтера этикеток. В отличие от базовой обработки для печати этикеток эта может выводить на печать дополнительные свойства справочника Номенклатура, а также в ней несложный программный код, что позволяет легко дорабатывать обработку под свои нужды.

2 стартмани

03.01.2023    4144    29    AndreyPonom    9    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. rabid_otter 134 07.11.19 11:19 Сейчас в теме
многие (в том числе и я) делали подобный финт еще в лет 7-8 назад, когда перетаскивали в УТ 10.3 компоненты печати штрихкодов, сделанные по технологии Native API из УТ 11.
2. AlexHelmer 1824 07.11.19 12:48 Сейчас в теме
а я только добрался и не нашел готового решения в инете. поэтому и поделился своим опытом
3. CheBurator 2712 17.05.20 23:43 Сейчас в теме
а если это работает в браузере на линуксе?
4. AlexHelmer 1824 18.05.20 05:05 Сейчас в теме
не понял сути вопроса
5. maxf 20.01.21 08:16 Сейчас в теме
Очередное гениальное решение для облегчения жизни от 1С! Спасибо автору, сам бы я никогда не догадался, что дело дошло до такого маразма..
6. user_2010 954 30.04.21 11:14 Сейчас в теме
Добрый день!

Подскажите, пожалуйста, в конфигурации Документооборот.2.1 в печатной форме документа нужно вывести штрих-код.
В этой конфигурации штрих-код уже добавляют в файлы Word.
Это значит, что компонента 1CBarcodWin32_9_0_4_7.dll или 1CBarcodWin64_9_0_4_7.dll уже установлена?


Мне установили на комп «1С.V8. Печать штрих-кодов», скачала по ссылке https://its.1c.ru/db/metod8dev/content/1838/hdoc.
Там указано: Текущая версия элемента управления - 8.0.14.2.

Уже потом нашла вашу статью. Значит, то что я скачала - с этим у меня не будет работать печать штрих-кодов?

Спасибо!
7. AlexHelmer 1824 30.04.21 14:59 Сейчас в теме
Добрый день! сложно сказать. они по моему регистрируются как OLE сервер и на одно имя. поэтому если уже что то стоит то должно работать
8. user662249_andrenn 1 26.07.21 17:44 Сейчас в теме
чем обработки друг от друга отличаются, какую качать для ут 10.3
9. AlexHelmer 1824 26.07.21 18:05 Сейчас в теме
Да согласен Мой косяк Не совсем понятно написал вам надо качать первую у которой больше всего скачиваний
Вторая это как как во внешней обработке для управляемых форм подключить чтение штрих-кодов. поправлю
10. IVC_goal 226 15.11.21 15:24 Сейчас в теме
Не понял - не срабатывает оповещение
Процедура ПодключитьОборудованиеЗавершение(РезультатВыполнения, Параметры) Экспорт
И почему?
11. vis_tmp 32 13.07.23 22:15 Сейчас в теме
Спасибо автору!
"Как читать ШК во внешней обработке" - прям сразу и заработало!
Оставьте свое сообщение