Имя: Пароль:
1C
1С v8
Ценник со штрих кодом
0 Chuchi
 
26.06.13
16:40
Для печати ценника с ШК использую такой код
Функция ПечатьЦенникаБольшого() Экспорт

   Если НЕ ЗначениеЗаполнено(Организация) Тогда
       Предупреждение("Не выбрана организация!");
       Возврат Неопределено;
   КонецЕсли;

   ТабДокумент                     = Новый ТабличныйДокумент;
   ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Ценник";
   Макет                           = ПолучитьМакет("ЦенникБольшой");
   ОбластьЦенника                  = Макет.ПолучитьОбласть("Строка|Столбец");

   ДатаПечати = РабочаяДата;

   ТекСтолбец = 0;
   ТекСтрока  = 0;

   Для Каждого СтрокаТаблицы Из Товары Цикл
       Если СтрокаТаблицы.Печать Тогда
           Если СтрокаТаблицы.ТипЦенника=Перечисления.ТипЦенника.Большой ТОгда
               Для Тмп = 1 По СтрокаТаблицы.Количество Цикл
                   ОбластьЦенника.Параметры.Заполнить(СтрокаТаблицы);
                   ОбластьЦенника.Параметры.НоменклатураНаименование        = СтрокаТаблицы.Номенклатура.НаименованиеПолное;
               //    ОбластьЦенника.Параметры.ХарактеристикаНаименование      = СтрокаТаблицы.ХарактеристикаНоменклатуры;
                   ОбластьЦенника.Параметры.ЕдиницаНаименование             = СтрокаТаблицы.ЕдиницаИзмерения;
                   //ОбластьЦенника.Параметры.Цена                            = ОбщегоНазначения.ФорматСумм(СтрокаТаблицы.Цена, Валюта, "00");
                   ОбластьЦенника.Параметры.Цена                            = СтрокаТаблицы.Цена;
//                    ОбластьЦенника.Параметры.ДатаПечати                      = ДатаПечати;
                   ОбластьЦенника.Параметры.Организация                     = Организация;
                   ОбластьЦенника.Параметры.ОрганизацияНаименование         = Организация;
           //        ОбластьЦенника.Параметры.НоменклатураСтранаПроисхождения = СтрокаТаблицы.Номенклатура.СтранаПроисхождения;
                   ОбластьЦенника.Параметры.Артикул= СокрЛП(СтрокаТаблицы.Номенклатура.Артикул);
                   ОбластьЦенника.Параметры.ДатаДокумента=ДатаДокумента;
                    ТипКода = 1;
               Попытка
                   КомпонентШК = Новый COMОбъект("V8.Barcod.1");
                   Макет                   = ПолучитьМакет("Ценник");
                   НаклейкаОбласть          = Макет.ПолучитьОбласть(1,1,15,15);

                   ОбластьЦенника.Рисунки.Штрихкод.Объект.ТипКода  = КомпонентШК.ТипКода;
                   ОбластьЦенника.Рисунки.Штрихкод.Объект.Сообщение = "2050000016295";                
               Исключение
                   Сообщить("Компонента 1С:Печать штрих-кодов не установлена на данном компьютере!"+Символы.ПС+
                   "Обратитесь к администратору"+Символы.ПС, СтатусСообщения.Важное);
               Возврат "";
               КонецПопытки;
               Если ЗначениеЗаполнено(СтрокаТаблицы.Штрихкод) Тогда
                   КомпонентШК.Сообщение = СтрокаТаблицы.ШтрихКод;
                   
                   ОбластьЦенника.Рисунки.Штрихкод.Объект.ТипКода                = КомпонентШК.ТипКода;
                   ОбластьЦенника.Рисунки.Штрихкод.Объект.Сообщение            = КомпонентШК.Сообщение;
                   ОбластьЦенника.Рисунки.Штрихкод.Объект.ОтображатьТекст        = КомпонентШК.ОтображатьТекст;
               
               КонецЕсли;
                   Если ТекСтолбец = 0 Тогда
                       ТабДокумент.Вывести(ОбластьЦенника);
                   Иначе
                       ТабДокумент.Присоединить(ОбластьЦенника);
                   КонецЕсли;

                   ТекСтолбец = ТекСтолбец + 1;

                   Если ТекСтолбец = 3 Тогда
                       ТекСтрока  = ТекСтрока + 1;
                       ТекСтолбец = 0;
                   КонецЕсли;

                   Если ТекСтрока = 5 Тогда
                       ТекСтрока = 0;
                       ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                   КонецЕсли;
               КонецЦикла;
           КонецЕсли;
       КонецЕсли;
   КонецЦикла;

   ТабДокумент.ТолькоПросмотр = Истина;

   Возврат ТабДокумент;

КонецФункции // ПечатьЦенника()

EAN13 печатает без проблем а код Code39 печатает 123456789...
где не правильно передает тип ШК
1 Chuchi
 
27.06.13
12:38
Совсем нет вариантов?
2 mxs089
 
27.06.13
12:39
есть, паси овец
3 Галахад
 
гуру
27.06.13
12:42
(0) Гм. А в объекте на таблице такой тип штрих-кода разрешен?
4 Chuchi
 
27.06.13
12:43
в объекте на таблице - это где ?..
5 Жирафка
 
27.06.13
12:44
ОбластьЦенника.Рисунки.Штрихкод.Объект.ТипКода   = ТипКода;

// Возвращает значение типа штрихкода для использования в ЭУ
// "1С:Печать штрихкодов"
//
// Параметры
//    ТипКода -    ПланыВидовХарактеристик.ТипыШтрихкодов - тип, значение для которого
//                нужно получить
//
// Возвращаемое значение:
//   Число, которое может быть присвоено свойству ЭУ "ТипКода"
//
Функция ПолучитьЗначениеТипаШтрихкодаДляЭУ(ТипКода)
   Перем Значение;
   
   Если ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN8 Тогда
       Значение = 0;
   ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13 Тогда
       Значение = 1;
   ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN128 Тогда
       Значение = 2;
   ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.Code39 Тогда
       Значение = 3;
   ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.Code128 Тогда
       Значение = 4;
   Иначе
       Значение = -1;
   КонецЕсли;
   
   Возврат Значение;
КонецФункции // ПолучитьЗначениеТипаШтрихкодаДляЭУ()
6 Chuchi
 
27.06.13
14:32
ммм...
КомпонентШК = Новый COMОбъект("V8.Barcod.1");
                   Макет                   = ПолучитьМакет("Ценник");
                   НаклейкаОбласть          = Макет.ПолучитьОбласть(1,1,15,15);
                   ОбластьЦенника.Рисунки.Штрихкод.Объект.ТипКода   = ТипКода;

                   //ОбластьЦенника.Рисунки.Штрихкод.Объект.ТипКода  = КомпонентШК.ТипКода;
ругается
{ОбщийМодуль.УниверсальныеМеханизмы.Модуль(1052)}: Значение не является значением объектного типа (АвтоМасштаб)
   Если НЕ ПечДокумент.АвтоМасштаб

и ждет строку ОбластьЦенника.Рисунки.Штрихкод.Объект.ТипКода  = КомпонентШК.ТипКода;
как же все таки передать значение типа кода?