Имя: Пароль:
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
Чтобы не снимать с поддержки объекты, можно допилить процедуру УправлениеПечатьюПереопределяемый.ПриПечати(). Кажется так называется. Туда передаются уже сформированные печатные формы. Можно программно вывести штрихкод
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан