Имя: Пароль:
1C
 
Как проще вывести GUID документа в виде штрихкода в печатной форме?
0 Александр111
 
14.03.20
09:42
Как проще вывести GUID документа в виде штрихкода в печатной форме?
1с Бухгалтерия 3.0 (БСП 3.1)
1 Галахад
 
гуру
14.03.20
10:06
(0) Гм. А есть какие-то варианты.
2 Александр111
 
14.03.20
10:11
В БСП в печатной форме Накладная на перемещение есть ОбластьШтрихкода, но примера использования не нашел. Непонятно что взять за основу.
3 shuhard
 
14.03.20
10:26
(2)а константа ИспользоватьШтрихкодированиеПечатныхФормОбъектов есть ?
4 shuhard
 
14.03.20
10:32
(3) если есть, то функционал типовой:

ПараметрыШтрихкода.Вставить("Штрихкод",        СокрЛП(ЧисловойКодПоСсылке(Ссылка)));

Функция ЧисловойКодПоСсылке(Ссылка) Экспорт
    ШестнадчатиричноеЧисло = СтрЗаменить(Строка(Ссылка.УникальныйИдентификатор()),"-","");
    Возврат ПреобразоватьИзШестнадцатиричнойСистемыСчисленияВДесятичноеЧисло(ШестнадчатиричноеЧисло);
КонецФункции
5 Александр111
 
14.03.20
10:37
В БСП 3.1 такой константы нет.
6 shuhard
 
14.03.20
10:39
(5) возьми код из УТ 11/ERP, у нас это штатный функционал
Процедура ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, Знач ОбластьМакета, Ссылка) Экспорт
    
    УстановитьПривилегированныйРежим(Истина);
    
    ВыводитьШтрихкодВОтдельнуюОбласть = Ложь;
    Если Не ЕстьКартинкаШтрихкодаВОбластиМакета(ОбластьМакета) Тогда
        // Картинки штрихкода в этой области макета нет.
        
        Если Макет.Области.Найти("ОбластьШтрихкода") <> Неопределено Тогда
            
            // Проверить картинку штрихкода в области "Штрихкод"
            ОбластьМакетаШтрихкод = Макет.ПолучитьОбласть("ОбластьШтрихкода");
            Если ЕстьКартинкаШтрихкодаВОбластиМакета(ОбластьМакетаШтрихкод) Тогда
                ОбластьМакета = ОбластьМакетаШтрихкод;
                ВыводитьШтрихкодВОтдельнуюОбласть = Истина;
            Иначе
                Возврат;
            КонецЕсли;
        Иначе
            Возврат;
        КонецЕсли;
        
    КонецЕсли;
    
    Если Не ПолучитьФункциональнуюОпцию("ИспользоватьШтрихкодированиеПечатныхФормОбъектов") Тогда
        ОбластьМакета.Рисунки.Удалить(ОбластьМакета.Рисунки.КартинкаШтрихкода);
        Возврат;
    КонецЕсли;
    
    Эталон = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет("Эталон");
    КоличествоМиллиметровВПикселе = Эталон.Рисунки.Квадрат100Пикселей.Высота / 100;
    
    ПараметрыШтрихкода = Новый Структура;
    ПараметрыШтрихкода.Вставить("Ширина",          Окр(ОбластьМакета.Рисунки.КартинкаШтрихкода.Ширина / КоличествоМиллиметровВПикселе));
    ПараметрыШтрихкода.Вставить("Высота",          Окр(ОбластьМакета.Рисунки.КартинкаШтрихкода.Высота / КоличествоМиллиметровВПикселе));
    ПараметрыШтрихкода.Вставить("Штрихкод",        СокрЛП(ЧисловойКодПоСсылке(Ссылка)));
    ПараметрыШтрихкода.Вставить("ТипКода",         4); // Code128
    ПараметрыШтрихкода.Вставить("ОтображатьТекст", Ложь);
    ПараметрыШтрихкода.Вставить("РазмерШрифта",    6);
    
    ОбластьМакета.Рисунки.КартинкаШтрихкода.Картинка = МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);
    
    Если ВыводитьШтрихкодВОтдельнуюОбласть Тогда
        ТабличныйДокумент.Вывести(ОбластьМакета);
    КонецЕсли;
    
КонецПроцедуры
7 Александр111
 
14.03.20
10:50
В БСП нет ряда функций для выполнения этой процедуры
    ОбластьМакета.Рисунки.КартинкаШтрихкода.Картинка = <<?>>МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода); (Проверка: Сервер)
{Документ._ДемоСписаниеТоваров.МодульМенеджера(309,13)}: Процедура или функция с указанным именем не определена (ЕстьКартинкаШтрихкодаВОбластиМакета)
    Если Не <<?>>ЕстьКартинкаШтрихкодаВОбластиМакета(ОбластьМакета) Тогда (Проверка: Сервер)
{Документ._ДемоСписаниеТоваров.МодульМенеджера(318,18)}: Процедура или функция с указанным именем не определена (ЕстьКартинкаШтрихкодаВОбластиМакета)
            Если <<?>>ЕстьКартинкаШтрихкодаВОбластиМакета(ОбластьМакетаШтрихкод) Тогда (Проверка: Сервер)
{Документ._ДемоСписаниеТоваров.МодульМенеджера(341,59)}: Процедура или функция с указанным именем не определена (ЧисловойКодПоСсылке)
    ПараметрыШтрихкода.Вставить("Штрихкод",        СокрЛП(<<?>>ЧисловойКодПоСсылке(Ссылка))); (Проверка: Сервер)
8 shuhard
 
14.03.20
10:54
(7) возьми код из УТ 11/ERP - какая буква не понятна ?
9 Александр111
 
14.03.20
10:58
К сожалению нет ни УТ ни ЕРП
10 Александр111
 
14.03.20
11:01
Нашел в БПО 2.1, попробую взять оттуда
11 Конструктор1С
 
14.03.20
13:36
Чтобы не снимать с поддержки объекты, можно допилить процедуру УправлениеПечатьюПереопределяемый.ПриПечати(). Кажется так называется. Туда передаются уже сформированные печатные формы. Можно программно вывести штрихкод