8.х Распечатка штрихкода activebarcode

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем BimmerMK, 29 май 2008.

  1. TopicStarter Overlay
    BimmerMK
    Offline

    BimmerMK

    Регистрация:
    13 фев 2008
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Создаю общим макет на котором располагаю activebarcode. Как обратиться к нему для настройки его параметров? Если расположить его в форме то все понятно, а как в макете?
  2. GRUV
    Offline

    GRUV Опытный в 1С

    Регистрация:
    7 ноя 2007
    Сообщения:
    106
    Симпатии:
    0
    Баллы:
    26
    Код:
    ТипКода = 4;
    ШтрихКод = "1111111111111";
    
    Попытка
    КомпонентШК = Новый COMОбъект("V8.Barcod");
    Исключение
    Сообщить("Ошибка подключения компаненты <1С:Печать штрих-кодов>");
    Возврат;
    КонецПопытки;
    
    Попытка
    КомпонентШК.ТипКода              = ТипКода;
    КомпонентШК.Сообщение          = ШтрихКод;
    КомпонентШК.ОтображатьТекст  = Ложь;
    Исключение
    Сообщить("Ошибка печати");
    Возврат;
    КонецПопытки;
    
    ТабДок                  = Новый ТабличныйДокумент;
    ОбластьШК            = Макет.ПолучитьОбласть(1,1,5,5);
    
    ОбластьШК.Рисунки.Штрихкод.Объект.ТипКода             = КомпонентШК.ТипКода;
    ОбластьШК.Рисунки.Штрихкод.Объект.Сообщение         = КомпонентШК.Сообщение;
    ОбластьШК.Рисунки.Штрихкод.Объект.ОтображатьТекст = КомпонентШК.ОтображатьТекст;
    
  3. VLADER
    Offline

    VLADER

    Регистрация:
    1 апр 2008
    Сообщения:
    18
    Симпатии:
    0
    Баллы:
    1
    Уважаемый GRUV, тоже хочу сделать вывод штрихкода на ценник. Конфигурация УТ 10.3.4.14. Взял ваш пример кода, в целом все работает, но под рисунком штрихкода не выводится его значение. В чем может быть причина? Привожу код:


    Код:
    // Функция формирует этикетку с штрихкодом для ценника.
    //
    // Возвращаемое значение:
    //  ТабличныйДокумент - сформированный табличный документ или Неопределено, если есть ошибки.
    //
    
    Функция ПечатьЭтикетки()
    
    ТипКода = 1;
    ШтрихКод = "1111111111111";
    Попытка
    КомпонентШК = Новый COMОбъект("V8.Barcod");
    Исключение
    Сообщить("Ошибка подключения компаненты <1С:Печать штрих-кодов>");
    Возврат "";
    КонецПопытки;	
    
    Попытка
    КомпонентШК.ТипКода     = ТипКода;
    КомпонентШК.Сообщение   = ШтрихКод;
    КомпонентШК.ОтображатьТекст  = Ложь;
    Исключение
    Сообщить("Ошибка печати");
    Возврат "";
    КонецПопытки;
    
    ТабДокумент = Новый ТабличныйДокумент;
    Макет   	= ПолучитьОбщийМакет("Этикетка");
    
    
    ОбластьШК            = Макет.ПолучитьОбласть(1,1,5,5);
    ОбластьШК.Рисунки.Штрихкод.Объект.ТипКода           = КомпонентШК.ТипКода;
    ОбластьШК.Рисунки.Штрихкод.Объект.Сообщение         = КомпонентШК.Сообщение;
    ОбластьШК.Рисунки.Штрихкод.Объект.ОтображатьТекст = КомпонентШК.ОтображатьТекст;	
    
    
    ТабДокумент.Вывести(ОбластьШК);
    
    Возврат ТабДокумент;
    
    КонецФункции // ПечатьЦенника()
    
    
    // Функция выполняет экспорт печати 
    //
    // Возвращаемое значение:
    //  Булево - Истина, если все параметры заданы.
    //
    Функция Печать() Экспорт
    
    Возврат ПечатьЭтикетки();
    
    КонецФункции // Печать()
    
  4. Senya
    Offline

    Senya Опытный в 1С

    Регистрация:
    6 июн 2006
    Сообщения:
    594
    Симпатии:
    0
    Баллы:
    26
    Программный код тут ни роичем. Просто в свойствах элемента Barcod в Вашем макете на закладке Оформление установите параметр Положение текста 1-Да (там таких параметров 2, один отвечает за положение на макете, а второй выводить-не выводить).
  5. VLADER
    Offline

    VLADER

    Регистрация:
    1 апр 2008
    Сообщения:
    18
    Симпатии:
    0
    Баллы:
    1
    Senya, спасибо за помощь, сейчас попробую сделать как ты советуешь. Но методом эксперимента обнаружил вот что, если ТипКода =1 (EAN13), то значение ШтриКод = "1111111111111" не соответствует воозможности Баркода генерировать такое значение и поэтому он его не выводит, когда я заменил это значение на значение из справочника номенклатуры реальной базы ШтрихКод = "2050000016288", которое было сгенерировано программой при заданном типе штрихкода, то все стало на свои места и проблема ушла. Поэтому я и сделал вывод что конкретному типу штрихкода не может соответствовать случайная комбинация цифр, а толька та которую он может генерировать. Может ошибаюсь. Еще раз спасибо за совет.
  6. VLADER
    Offline

    VLADER

    Регистрация:
    1 апр 2008
    Сообщения:
    18
    Симпатии:
    0
    Баллы:
    1
    Проверил, в свойствах элемента управления 1С: Печать штрихкодов , свойство - "Положение текста" установлено: 1-Да. Значит ранее сделанное предположение о недопустимости случайного набора цифр все таки имеет основание.
  7. Senya
    Offline

    Senya Опытный в 1С

    Регистрация:
    6 июн 2006
    Сообщения:
    594
    Симпатии:
    0
    Баллы:
    26
    Просто в штрихкоде обычно генерится проверочный символ. К сожалению алгоритм уже забыл. Отсюда - поэксп ериментируйте со свойствами элемента1С: Печать штрихкодов в плане контрольных символов, но мне кажется это не поможет. Мы обычно генерим штрих коды по правилам - как в стандартных конфигурациях.
  8. VLADER
    Offline

    VLADER

    Регистрация:
    1 апр 2008
    Сообщения:
    18
    Симпатии:
    0
    Баллы:
    1
    Спасибо за ответ так и будем делать.
    Подскахи в чем ошибка:

    Код:
     
    Запрос = Новый Запрос("
    |ВЫБРАТЬ 
    |     РегШтрихкоды.Владелец КАК Владелец,
    |        РегШтрихкоды.ШтрихКод КАК Штрихкод
    |ИЗ
    |     РегистрСведений.Штрихкоды КАК РегШтрихкоды
    |ГДЕ
    |     РегШтрихкоды.Владелец = &Владелец
    |");
    
    Запрос.УстановитьПараметр("Владелец", = СсылкаНаОбъект.Наименование);
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    
    КомпонентШК.Сообщение = Выборка.ШтрихКод;
    
    
    Это ВПФ к форме элемента справочника номенклатуры. Нужно выбрать и присвоить переменной значение штрихкода, которое затем будет выведено на печать в макете. Почему-то при таком коде он не видит Владельца, и поэтому возвращает пустое значение.
    Пробовал ставить "Владелец", = СсылкаНаОбъект.Владелец, тоже не видит, может подойти к выбору как-то подругому?
  9. Senya
    Offline

    Senya Опытный в 1С

    Регистрация:
    6 июн 2006
    Сообщения:
    594
    Симпатии:
    0
    Баллы:
    26
    Смотри в коде с комментариями.
    Код:
     
    Запрос = Новый Запрос("
    |ВЫБРАТЬ 
    |     РегШтрихкоды.Владелец КАК Владелец,
    |        РегШтрихкоды.ШтрихКод КАК Штрихкод
    |ИЗ
    |     РегистрСведений.Штрихкоды КАК РегШтрихкоды
    |ГДЕ
    |     РегШтрихкоды.Владелец = &Владелец
    |");
    
    //  Запрос.УстановитьПараметр("Владелец", = СсылкаНаОбъект.Наименование); // Не правильно
    
    Запрос.УстановитьПараметр("Владелец",СсылкаНаОбъект); //СсылкаНаОбъект  Должен быть ссылкой на элемент справочника Номенклатура 
    
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    
    Выборка.следующий();  // Иначе неспозиционируется
    
    КомпонентШК.Сообщение = Выборка.ШтрихКод;
    
    
    
    
    
  10. VLADER
    Offline

    VLADER

    Регистрация:
    1 апр 2008
    Сообщения:
    18
    Симпатии:
    0
    Баллы:
    1
    Поправил, ЗАРАБОТАЛО!!!!!!!!!!!!!
    Спасибо, хорошо когда есть профессионалы!
  11. VLADER
    Offline

    VLADER

    Регистрация:
    1 апр 2008
    Сообщения:
    18
    Симпатии:
    0
    Баллы:
    1
    Наверное, "круто загнул":

    Код:
    Номен = Справочники.Номенклатура.НайтиПоНаименованию(СсылкаНаОбъект.Наименование);
    
    Запрос = Новый Запрос("
    |ВЫБРАТЬ 
    |	РегШтрихкоды.Владелец КАК Владелец,
    |	РегШтрихкоды.ШтрихКод КАК Штрихкод
    |ИЗ
    |	РегистрСведений.Штрихкоды КАК РегШтрихкоды
    |ГДЕ
    |	РегШтрихкоды.Владелец = &Владелец
    |");
    
    Запрос.УстановитьПараметр("Владелец", Номен);
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    Выборка.следующий();
    
    КомпонентШК.Сообщение = Выборка.ШтрихКод;
    
    
    но работает. Еще раз благодарю.
  12. Senya
    Offline

    Senya Опытный в 1С

    Регистрация:
    6 июн 2006
    Сообщения:
    594
    Симпатии:
    0
    Баллы:
    26
    Первая строчка лишняя, просто напишите
    Код:
    Запрос.УстановитьПараметр("Владелец", ссылкаНаОбъект);
    
  13. VLADER
    Offline

    VLADER

    Регистрация:
    1 апр 2008
    Сообщения:
    18
    Симпатии:
    0
    Баллы:
    1
    Да, действительно лишняя, чувствовал, что слишком сложно пытался найти "Владельца", а можно проще.
    Спасибо.
    Senya, может подскажешь как решить вот такой вопрос.
    Конфигурация: Бухгалтерия 1.6. При проведении реализаций бух (или его зам сейчас не поймешь) не корректно выбирали номера ГТД, т.е. товара с даным номером ГТД уже нет в наличии, а они его реализуют, на реплики программы не обращали внимания. Сейчас сложилась в базе такая ситуация - складские остатки не сходятся с остатками при выборе ГТД, например, на складе позиции 10 шт., а когда выбираешь ГТД там может оказаться одного номера 10, другого ранее не списанного 5 и т.д. Бухи в шоке, какую выбирать?
    Пробовал сделать перепроводку с самого начала ведения базы, но в этом случае у них плывут отчеты за прошлые периоды так как у каждой партии товара своя себестоимость. Заводить новую базу с корректными остаткакми тоже нереально. Т.е. как можно изменить колиство товара в учете по ГТД в такой ситуации? Может вопрос не по теме, но ситуция сложная.
  14. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    [warn=читайте правила!]Один вопрос - одна тема![/warn]
    Создайте отдельную тему по этому вопросу.
    Могу скразу сказать, что надо руки по отрывать бухам, которые ручками начинают править документы и партии.

Поделиться этой страницей