8.х Добавить в печать ценника Штрих код

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

  1. TopicStarter Overlay
    Kyja
    Offline

    Kyja

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



    Код:
    Для Каждого СтрокаТаблицы Из Товары Цикл
    Если СтрокаТаблицы.Печать Тогда
    Для Тмп = 1 По СтрокаТаблицы.Количество Цикл
    ОбластьЦенника.Параметры.Заполнить(СтрокаТаблицы);
    ОбластьЦенника.Параметры.НоменклатураНаименование	    = СтрокаТаблицы.Номенклатура.НаименованиеПолное;
    ОбластьЦенника.Параметры.ХарактеристикаНаименование	  = СтрокаТаблицы.ХарактеристикаНоменклатуры;
    ОбластьЦенника.Параметры.ЕдиницаНаименование			 = СтрокаТаблицы.ЕдиницаИзмерения;
    ОбластьЦенника.Параметры.Цена						    = ОбщегоНазначения.ФорматСумм(СтрокаТаблицы.Цена, Валюта, "00");
    ОбластьЦенника.Параметры.ДатаПечати					  = ДатаПечати;
    ОбластьЦенника.Параметры.Артикул						 = СтрокаТаблицы.Номенклатура.Артикул;
    ОбластьЦенника.Параметры.Организация					 = Организация;
    ОбластьЦенника.Параметры.ШтрихКод					    = ВОТ ТУТ НЕ ЗНАЮ ЧТО НАПИСАТЬ((;
    ОбластьЦенника.Параметры.ОрганизацияНаименование		 = Организация;
    ОбластьЦенника.Параметры.НоменклатураСтранаПроисхождения = СтрокаТаблицы.Номенклатура.СтранаПроисхождения;

    Вот такая проблема как указать путь к штрих коду?

    Помогите пожалуйста использовал поиск но нигде не смог найти как добавить в печать штрихкод именно цифрами а не картинкой
  2. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    надо запросом выдернуть нужный штрихкод из регистра сведений Штрихкоды.
  3. TopicStarter Overlay
    Kyja
    Offline

    Kyja

    Регистрация:
    19 мар 2012
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    А как это прописать? Я только 3 день в конфигурации очень мало понимаю(
  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Сам штрих-код это набор цифр. Вам его нужно выводить, или сам штрих (линии) ?
  5. TopicStarter Overlay
    Kyja
    Offline

    Kyja

    Регистрация:
    19 мар 2012
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Да мне надо только цифры штрих кода, линии не нужны
  6. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Ну значения штрхкодов хранятся в РС, вот от туда и нужно дергать данные.
    Как я понял вы обрабатываете табличную часть ?
    Вот нужно создать функцию, которая будет возвращать штрихкод, передавая как параметр ссылку на нужную номенклатуру.
  7. TopicStarter Overlay
    Kyja
    Offline

    Kyja

    Регистрация:
    19 мар 2012
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    А как её создать?(
  8. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Примерно так
    Код:
    Функция ПолучитьШтрихкод(Номенклатура)
    ШтрихКод = "";
    Отбор = Новый Структура;
    Отбор.Добавить = ("Номенклатура", Номенклатура);
    Выборка = РегистрСведений.Штрихкоды.Выбрать(Отбор);
    Если Выборка.Количество <> 0 Тогда
    Пока Выборка.Следующий() Цикл
    ШтрихКод = Выборка.Штрихкод;
    КонецЦикла;
    Иначе
    Штрихкод = Неопределено;
    КонецЕсли;
    Возврат ШтрихКод;
    КонецФункции
    Написал на коленке.
  9. TopicStarter Overlay
    Kyja
    Offline

    Kyja

    Регистрация:
    19 мар 2012
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Спасибо большое пошел пробовать
  10. TopicStarter Overlay
    Kyja
    Offline

    Kyja

    Регистрация:
    19 мар 2012
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Ничего не получается(
    Подскажите пожалуйста как же мне вывести его в печать :aua:

    Вложения:

  11. TopicStarter Overlay
    Kyja
    Offline

    Kyja

    Регистрация:
    19 мар 2012
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Переделал по примеру как делали в этой теме http://www.1c-pro.ru/topic27722.html взял обработку которую делали там.



    Но выходит такая ошибка



    Функция печать ценника

    {Обработка.ПечатьЦенников(256)}: Преобразование значения к типу Число не может быть выполнено
    вШтрихКод = ШтрихКод + "00"; //Формат(Склады.Постфикс,"ЧЦ=2;ЧВН=1;ЧН=00");


    Код:
    ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13;
    ТипКода = ПолучитьЗначениеТипаШтрихкодаДляЭУ(ТипШтрихкода);
    Если ТипКода = -1 Тогда
    ОбщегоНазначения.СообщитьОбОшибке("Для штрих-кода формата """ + ТипШтрихкода
    + """ не существует соответствующего типа в ЭУ ""1С:Печать штрих-кодов"".
    | Позиция будет пропущена");
    КонецЕсли;
    вШтрихКод = ШтрихКод + "00";
    вШтрихКод = вШтрихКод + РаботаСТорговымОборудованием.КонтрольныйСимволEAN(вШтрихКод, 13);
    Если РаботаСТорговымОборудованием.ПроверитьШтрихКод(вШтрихКод, ТипКода) Тогда
    ОбластьЦенника.Рисунки.Штрихкод.Объект.ТипКода = ТипКода;
    ОбластьЦенника.Рисунки.Штрихкод.Объект.Сообщение = вШтрихКод;
    КонецЕсли;
    
    Помогите пожалуйста

    Вложения:

  12. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Что за конфа и платформа хоть?

    Попробуйте переделать на это
    Код:
    вШтрихКод = Строка(ШтрихКод) + "00"; //Формат(Склады.Постфикс,"ЧЦ=2;ЧВН=1;ЧН=00");
  13. TopicStarter Overlay
    Kyja
    Offline

    Kyja

    Регистрация:
    19 мар 2012
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    1С:Предприятие 8.1 (8.1.14.72) "Управление торговлей", редакция 10.3 (10.3.10.4)

    Поменял как Вы сказали теперь выпрыгивает



    {ОбщийМодуль.РаботаСТорговымОборудованием(366)}: Преобразование значения к типу Число не может быть выполнено
    Четн = Четн + Число(Сред(ШтрихКод, 2 * Индекс, 1))

    Такая ошибка была в той теме там посоветовали поменять на

    Код:
    Четн = Четн + Число(Сред(ШтрихКод, 2 * Индекс, 1))
    Поменял но ничего не изменилось. Может проблема в том что у меня не правильно заполнен Реквезит Штрихкод.
    [sub]Хотя если честно я совершенно не понимаю в чем моя проблема( [/sub]
  14. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    ШтрихКод у вас как строка идет. Возможно в нем содержатся буквы, вот и не может к числу преобразовать.
  15. TopicStarter Overlay
    Kyja
    Offline

    Kyja

    Регистрация:
    19 мар 2012
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    У самой позиции номеклатуры? Щяс создал новую позицию нажал присвоить новый штрихкод все равно тоже самое выскакивает(
  16. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Так, а при чем тут печать и создание нового ШК ?
  17. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    у вас для одной номенклатуре соответствует 1 штрихкод?

    тогда так:

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

    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Штрихкоды.Штрихкод
    |ИЗ
    | РегистрСведений.Штрихкоды КАК Штрихкоды
    |ГДЕ
    | Штрихкоды.Владелец = &Номенклатура";
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Выборка = Запрос.Выполнить().Выбрать();
    
    Если Выборка.Количество()<>0 Тогда
    Выборка.Следующий();
    сообщить(Выборка.Штрихкод);
    КонецЕсли;
    
    КонецПроцедуры
    если у каждой единицы свой штрихкод - то добавляете в запрос условие по единице. итд
  18. TopicStarter Overlay
    Kyja
    Offline

    Kyja

    Регистрация:
    19 мар 2012
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Я просто подумал что Вы про то что записанно в самой номеклатуре, неправильно понял я ведь только 4 день в конфигурации((
  19. TopicStarter Overlay
    Kyja
    Offline

    Kyja

    Регистрация:
    19 мар 2012
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Код:
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    вот тут выдает ошибку


    {ВнешняяОбработка.ПечатьЦенников(224,43)}: Переменная не определена (Номенклатура)
    Запрос.УстановитьПараметр("Номенклатура", <<?>>Номенклатура);
    как же все это тяжело без опыта(
  20. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Номенклатура - это значение параметра, передаваемого в запрос. Должна быть ссылка.
    Тяжело вам будет:))) Где у вас ссылка на номенклатуру ?

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