ШтрихКод в документе ПриемВРемонт
Доброго времени суток.
Прощу помочь в решении следующего вопроса.
Конфигурация Управление сервисным центром релиз 1.6.3.11
Если используется штрихкодирование документов, то при печати документа "прием в ремонт" в верхнем углу выводится на печать штрихкод типа code39. Штрихкод документа 2711000000010
Чтобы поменять тип кода на ean13, в процедуре ВывестиШтрихКодДокументаВПечатнуюФорму(ТабличныйДокумент, ДокументСсылка, СтруктураПараметров, ШтрикодВДокументе = Ложь) Экспорт
меняю параметр 3 на 1
так же у функции ПолучитьКартинкуШтрихкода указываю тип кода 1
В итоге при печати получаю invalid barcode
Прощу помочь в решении следующего вопроса.
Конфигурация Управление сервисным центром релиз 1.6.3.11
Если используется штрихкодирование документов, то при печати документа "прием в ремонт" в верхнем углу выводится на печать штрихкод типа code39. Штрихкод документа 2711000000010
Чтобы поменять тип кода на ean13, в процедуре ВывестиШтрихКодДокументаВПечатнуюФорму(ТабличныйДокумент, ДокументСсылка, СтруктураПараметров, ШтрикодВДокументе = Ложь) Экспорт
меняю параметр 3 на 1
РисунокШтрихКод = ПолучитьКартинкуШтрихкода(СтруктураПараметров.Компонента, Ширина, Высота, Штрихкод, 1);
так же у функции ПолучитьКартинкуШтрихкода указываю тип кода 1
ВнешняяКомпонента.ТипКода = 1;
ВнешняяКомпонента.СодержитКС = СтрДлина(Штрихкод) = 13;
В итоге при печати получаю invalid barcode
Функция ПолучитьКартинкуШтрихкода(ВнешняяКомпонента, Ширина, Высота, Штрихкод, ТипКода = 1); |
---|
Скрытый текст// Зададим размер картинки
ВнешняяКомпонента.Ширина = Окр(Ширина); ВнешняяКомпонента.Высота = Окр(Высота); ВнешняяКомпонента.ОтображатьТекст = Ложь; // Разрешим компоненте самой определять тип кода ВнешняяКомпонента.АвтоТип = Ложь; ВнешняяКомпонента.ТипКода = 1; // Или установим код EAN-13 // ВнешняяКомпонента.ТипКода = 1; // // Тип смотрим в документации на внешнуюю компоненту // Если код содержит контрольный символ, обязательно указываем ВнешняяКомпонента.СодержитКС = СтрДлина(Штрихкод) = 13; // Если отображать контрольный символ не нужно //ВнешняяКомпонента.ВидимостьКС = Ложь; // Формируем картинку штрихкода ВнешняяКомпонента.ЗначениеКода = Штрихкод; // Если установленная нами ширина меньше минимально допустимой для этого штрихкода Если ВнешняяКомпонента.Ширина < ВнешняяКомпонента.МинимальнаяШиринаКода Тогда // Скорректируем ширину ВнешняяКомпонента.Ширина = ВнешняяКомпонента.МинимальнаяШиринаКода + 10; КонецЕсли; // Сформируем картинку ДвоичныеДанныеКартинки = ВнешняяКомпонента.ПолучитьШтрихкод(); // Если картинка сформировалась Если ДвоичныеДанныеКартинки <> Неопределено Тогда // Формируем из двоичных данных Возврат Новый Картинка(ДвоичныеДанныеКартинки); КонецЕсли; Возврат Неопределено; КонецФункции |
Процедура ВывестиШтрихКодДокументаВПечатнуюФорму(ТабличныйДокумент, ДокументСсылка, СтруктураПараметров, ШтрикодВДокументе = Ложь) Экспорт |
---|
Скрытый текст
Если ТабличныйДокумент = Неопределено ИЛИ СтруктураПараметров = Неопределено Тогда Возврат; КонецЕсли; Если ШтрикодВДокументе Тогда РисунокШтрихКод = ТабличныйДокумент.Рисунки.ШтрихКод; Высота = РисунокШтрихКод.Высота; Ширина = РисунокШтрихКод.Ширина; ШтрихКод = СформироватьШтрихКодДокумента(ДокументСсылка, СтруктураПараметров.Таблицы.Символы, СтруктураПараметров.Таблицы.Документы); Если ШтрихКод = Неопределено Тогда Возврат; КонецЕсли; РисунокШтрихКод = ПолучитьКартинкуШтрихкода(СтруктураПараметров.Компонента, Ширина, Высота, Штрихкод, 1);// Тип кода CODE39 Рисунок = ТабличныйДокумент.Рисунки.Штрихкод; Рисунок.Высота = Высота; Рисунок.Ширина = Ширина; Рисунок.Картинка = РисунокШтрихКод; Рисунок.ВыводитьНаПечать = Истина; Рисунок.ГраницаСверху = Ложь; Рисунок.ГраницаСнизу = Ложь; Рисунок.ГраницаСлева = Ложь; Рисунок.ГраницаСправа = Ложь; Рисунок.РазмерКартинки = РазмерКартинки.Растянуть; Рисунок.Защита = Ложь; Иначе НачалоДокумента = СтруктураПараметров.ПозицияВыводаШтрихкода; МакетШтрихКодаДокумента = ПолучитьОбщийМакет("СЦентр_НастройкиШтрихКодированияДокументов"); ОбластьШтрихКода = МакетШтрихКодаДокумента.ПолучитьОбласть("ОбластьШтрихкода"); РисунокШтрихКод = ОбластьШтрихКода.Рисунки.ШтрихКод; Высота = РисунокШтрихКод.Высота; Ширина = РисунокШтрихКод.Ширина; ШтрихКод = СформироватьШтрихКодДокумента(ДокументСсылка, СтруктураПараметров.Таблицы.Символы, СтруктураПараметров.Таблицы.Документы); Если ШтрихКод = Неопределено Тогда Возврат; КонецЕсли; РисунокШтрихКод = ПолучитьКартинкуШтрихкода(СтруктураПараметров.Компонента, Ширина, Высота, Штрихкод, 1);// Тип кода CODE39 ОбластьВыводаШК = ТабличныйДокумент.Область(НачалоДокумента,, НачалоДокумента + ОбластьШтрихКода.ВысотаТаблицы); Рисунок = ОбластьШтрихКода.Рисунки.Штрихкод; Рисунок.Высота = Высота; Рисунок.Ширина = Ширина; Рисунок.Картинка = РисунокШтрихКод; Рисунок.ВыводитьНаПечать = Истина; Рисунок.ГраницаСверху = Ложь; Рисунок.ГраницаСнизу = Ложь; Рисунок.ГраницаСлева = Ложь; Рисунок.ГраницаСправа = Ложь; Рисунок.РазмерКартинки = РазмерКартинки.Растянуть; Рисунок.Защита = Ложь; ТабличныйДокумент.ВставитьОбласть(ОбластьШтрихКода.Область(1,, ОбластьШтрихКода.ВысотаТаблицы), ОбластьВыводаШК, ТипСмещенияТабличногоДокумента.ПоВертикали, Ложь); КонецЕсли; СтруктураПараметров.ПозицияВыводаШтрихкода = ТабличныйДокумент.ВысотаТаблицы + 1; КонецПроцедуры |
Функция СформироватьШтрихКодДокумента(ДокументСсылка, ТаблицаСимволов, ТаблицаДокументов) Экспорт |
---|
Скрытый текст
Номер = ДокументСсылка.Номер; Дата = ДокументСсылка.Дата - '00010101'; СтрокаТаблицы = ТаблицаДокументов.Найти(ДокументСсылка.Метаданные().Имя,"ИмяДокумента"); Если СтрокаТаблицы <> Неопределено Тогда КодДокумента = СтрокаТаблицы.Код; Иначе КодДокумента = Неопределено; КонецЕсли; Если НЕ (ЗначениеЗаполнено(Номер) И ЗначениеЗаполнено(Дата) И ЗначениеЗаполнено(КодДокумента)) Тогда Возврат Неопределено; КонецЕсли; Результат = ""; // Кодируем код документа Результат = ПривестиЧисло10КБазе36(КодДокумента, 2); // Кодируем дату документа Результат = Результат + ПривестиЧисло10КБазе36(Дата, 7); // Посимвольно кодируем номер документа НомерДокумента = Номер; Пока СтрДлина(НомерДокумента) Цикл СтрокаТаблицы = ТаблицаСимволов.Найти(Лев(НомерДокумента, 1),"Символ"); Если СтрокаТаблицы = Неопределено Тогда КодСимвола = 1; Иначе КодСимвола = СтрокаТаблицы.Код; КонецЕсли; Результат = Результат + ПривестиЧисло10КБазе36(КодСимвола, 2); НомерДокумента = Прав(НомерДокумента,СтрДлина(НомерДокумента) - 1); КонецЦикла; // Добавим признак штрих-кода документа Возврат "D" + Результат; КонецФункции |
Найденные решения
В процедуре ВывестиШтрихКодДокументаВПечатнуюФорму(ТабличныйДокумент, ДокументСсылка, СтруктураПараметров, ШтрикодВДокументе = Ложь) Экспорт
закомментировал строчку
//ШтрихКод = СформироватьШтрихКодДокумента(ДокументСсылка, СтруктураПараметров.Таблицы.Символы, СтруктураПараметров.Таблицы.Документы);
вместо этого получаю ШтрихКод запросом
закомментировал строчку
//ШтрихКод = СформироватьШтрихКодДокумента(ДокументСсылка, СтруктураПараметров.Таблицы.Символы, СтруктураПараметров.Таблицы.Документы);
вместо этого получаю ШтрихКод запросом
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СЦентр_Штрихкоды.Штрихкод
|ИЗ
| РегистрСведений.СЦентр_Штрихкоды КАК СЦентр_Штрихкоды
|ГДЕ
| СЦентр_Штрихкоды.Документ ССЫЛКА Документ.СЦентр_ПриемВРемонт";
Запрос.УстановитьПараметр("Документ", ДокументСсылка);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ШтрихКод = ВыборкаДетальныеЗаписи.Штрихкод;
КонецЦикла;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В процедуре ВывестиШтрихКодДокументаВПечатнуюФорму(ТабличныйДокумент, ДокументСсылка, СтруктураПараметров, ШтрикодВДокументе = Ложь) Экспорт
закомментировал строчку
//ШтрихКод = СформироватьШтрихКодДокумента(ДокументСсылка, СтруктураПараметров.Таблицы.Символы, СтруктураПараметров.Таблицы.Документы);
вместо этого получаю ШтрихКод запросом
закомментировал строчку
//ШтрихКод = СформироватьШтрихКодДокумента(ДокументСсылка, СтруктураПараметров.Таблицы.Символы, СтруктураПараметров.Таблицы.Документы);
вместо этого получаю ШтрихКод запросом
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СЦентр_Штрихкоды.Штрихкод
|ИЗ
| РегистрСведений.СЦентр_Штрихкоды КАК СЦентр_Штрихкоды
|ГДЕ
| СЦентр_Штрихкоды.Документ ССЫЛКА Документ.СЦентр_ПриемВРемонт";
Запрос.УстановитьПараметр("Документ", ДокументСсылка);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ШтрихКод = ВыборкаДетальныеЗаписи.Штрихкод;
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот