Имя: Пароль:
1C
1С v8
Вывод печати этикеток УТ 10.3
0 pin4er
 
16.08.13
17:56
Доброго времени суток.
Так как опыта пока маловато, не судите строго, а лучше совет дайте дельный.

Дело вот какое: я добавляю в номенклатуру ШК считав сканером, все ок программа не ругается при записи.
Далее перехожу в обработку "ПечатиЭтикеток" и пытаюсь распечатать и вот тут начинается:
если ШК большой 13 значный то все ок выводит на просмотр и печатает...
http://s1.ipicture.ru/uploads/20130816/CuTSoF6s.png

а геморрой возникает если ШК 5ти значный, то по нажатию на печать "У товара ШК не задан или имеет не верный формат"....
http://s2.ipicture.ru/uploads/20130816/MsVjU2Tl.png

может кто то знает решение данной проблемы? кто то сталкивался с такой проблемой?

или подскажите возможно ли как нибудь сделать чтоб вместо ШК он мне тогда только цифры на печать выдавал (может так решиться проблема)
1 viktor_vv
 
16.08.13
18:01
Попробуй тп штрихкода выбрать EAN13 в явном виде. Хотя там вроде для всех видов проверяется.
2 pin4er
 
16.08.13
18:03
(1) да там 13 и выбран, при сканировании сам проставляется, если менять на другой руками то ни чего не меняется...
3 pin4er
 
16.08.13
18:05
(2) в обработке там тоже 13 проставлял реакция аналогичная
4 viktor_vv
 
16.08.13
18:06
Не поможет. Там проверяется на длину штрихкода и контрольный символ

// Функция возвращает результат проверки строки на предмет соответствия
// штрихкоду формата EAN13.
//
// Параметры:
//  Штрихкод - <Строка>
//           - Проверяемый штрихкод.
//
// Возвращаемое значение:
//  <Булево> - Результат проверки.
//
Функция ТипШтрихкодаEAN13ТО(Штрихкод) Экспорт

    Результат = (СтрДлина(Штрихкод) = 13
                 И КонтрольныйСимволEAN13ТО(Штрихкод) = Прав(Штрихкод, 1));

    Возврат Результат;

КонецФункции // ТипШтрихкодаEAN13ТО()
5 viktor_vv
 
16.08.13
18:07
Можешь конечно закомментировать проверку штрихкода, на печать по идее выйдет.
Ну тут ХЗ че получится.

Если РаботаСТорговымОборудованием.ПроверитьШтрихКод(?(ПустаяСтрока(СтрокаИзСписка.ПредставлениеШтрихкода),
                                                              СтрокаИзСписка.Штрихкод,
                                                              СтрокаИзСписка.ПредставлениеШтрихкода),
                                                            СтрокаИзСписка.ТипШтрихкода) Тогда
6 pin4er
 
19.08.13
09:54
(4) (5) нет комментирование проверки не прокатило, все равно не хочет выводить на печать...

получается он сам ШК(палочки) сформировать наверно не может..

а в принципе если вместо ШК и №кода, выводить только №КОД(циферки, потом я уже не буду по сути не буду его повторно считывать, на крайний случай в УТ есть стандартная поиск по ШК)
Как это лучше реализовать? гнать в туже картинку или нет?
справки по картинке ШК не открывается, вылетает БД...
7 pin4er
 
19.08.13
12:40
Нашел на инфостате http://infostart.ru/public/118531/
думаю право обладатель не обидеться что воспользуюсь кодом=))


перем Ф;

Процедура КнопкаВыполнитьНажатие()
    Ф = Новый Массив(12);
    Код12 = "4601701" + НашКод;//Здесь дополним наш 5 значный код до 12 знаков. Типа - страна: Россия (46)и последние 5 цифр ИНН предприятия
    //Получаем контрольую цифру
    Рез1 = Число(Сред(Код12,2,1)) + Число(Сред(Код12,4,1)) + Число(Сред(Код12,6,1)) + Число(Сред(Код12,8,1)) + Число(Сред(Код12,10,1)) + Число(Сред(Код12,12,1));
    Рез2 = Рез1 * 3;
    Рез3 = Число(Лев(Код12,1)) + Число(Сред(Код12,3,1)) + Число(Сред(Код12,5,1)) + Число(Сред(Код12,7,1)) + Число(Сред(Код12,9,1)) + Число(Сред(Код12,11,1));
    Рез4 = Число(Рез2 + Рез3);
    
    Если Рез4 > 10 Тогда
        ЭлементыФормы.КЦифра.Значение = 10 - Число(Прав(Рез4,1));
    ИначеЕсли Рез4 < 10 Тогда
        ЭлементыФормы.КЦифра.Значение = 10 - Рез4;
    ИначеЕсли Рез4 = 10 Тогда
        ЭлементыФормы.КЦифра.Значение = 0;
    КонецЕсли;
    
    Код12 = Формат(Число(Строка(Код12) + Строка(ЭлементыФормы.КЦифра.Значение)), "ЧГ=0");
    Результат = КодируемШтрихКод(Код12);
КонецПроцедуры  

Функция КодируемШтрихКод(Код12)
    ПечШтрих="";
    Код=Код12;
    Ф[1]="000000";        //0
    
    Ф[2]="001011";        //1
    
    Ф[3]="001101";        //2
    
    Ф[4]="001110";        //3
    
    Ф[5]="010011";        //4
    
    Ф[6]="011001";        //5
    
    Ф[7]="011100";        //6
    
    Ф[8]="010101";        //7
    
    Ф[9]="010110";        //8
    
    Ф[10]="011010";       //9
    
    Маска=""+Лев(СокрЛП(Код),1)+Ф[Число(Лев(СокрЛП(Код),1))+1]+"222222";
    Дл=СтрДлина(Код);
    Для ИИ=1 По Дл Цикл
        Если ИИ=1 Тогда
            Стр1=""+Лев(СокрЛП(Код),1);
        Иначе //ИИ от 2 до 13
            
            СимволМаски=Сред(Маска,ИИ,1);
            Если СимволМаски="0" Тогда
                Стр1=Символ(65+Сред(Код,ИИ,1));
            ИначеЕсли СимволМаски="1" Тогда
                Стр1=Символ(75+Сред(Код,ИИ,1));
            ИначеЕсли СимволМаски="2" Тогда
                Стр1=Символ(97+Сред(Код,ИИ,1));
            КонецЕсли;
        КонецЕсли;
        ПечШтрих=ПечШтрих+Стр1;
        Если ИИ=7 Тогда
            ПечШтрих=ПечШтрих+"*";
        ИначеЕсли ИИ=13 Тогда    
            ПечШтрих=ПечШтрих+"+";
        КонецЕсли;
    КонецЦикла;
    Возврат ПечШтрих;
    
КонецФункции

Процедура ПриОткрытии()
    ЭлементыФормы.НашКод.Значение = "10001";
КонецПроцедуры


если внедрить обработку ШК в типовую обработку может же прокатит? или потом печать сломаться может чтонить?

или решать проблемы уже по мере поступления=))
8 pin4er
 
20.08.13
15:12
что то пока не разобрался, хурма какая то твориться....

может есть еще какие предложения как можно реализовать вывод на печать 5ти значного ШК? может у кого обработка завалялась внешняя?
9 probably
 
21.08.13
13:27
Тип штрих-кода попробуй иной. EAN8, например.
Я выводил короткие коды, но длину не помню. Возможно как раз 8.
Или code128 может подойдет.
10 Torquader
 
21.08.13
14:35
Пятизначный - достаточно сложно - нужно CODE128 переводить в режим символов - тогда можно будет записать пять символов, среди которых только цифры.
Не уверен, что элемент печати Штрих-кодов для 1С (Barcode.OCX) умеет правильно печатать CODE128.
Если не выйдет, тогда сделать 6 цифр и напечатать как CODE39 - у этого кода всегда чётное число цифр, и первым будет добавлен ноль.
Более интересный вопрос - что вы потом с ними делать будете ?
P.S. делал Штрих-коды на основе кода товаров, потом пришлось править обработки штрих-кодов, чтобы этот товар подбирался в документы (но делал префикс 22 и EAN13, так как обработка другие типы штрих-кодов просто не знает).
11 pin4er
 
22.08.13
11:15
Вообщем, убрал все рисунки печати ШК, отключил проверки,
сделал вывод в ОбластьШтрихкод.Текст = СтрокаИзСписка.Штрихкод;

вообщем выводит вот так: http://s2.ipicture.ru/uploads/20130822/yL6uWIaW.png

в принципе все устраивает, только одно но!

если я отправляю на печать от 2х и более количество ШК сразу, то печатается на 1-м, потом на 11, 21, 31, и тд.. пропуская по 9 чистых на 10том печатая

подскажите где чего посмотреть надо?
(макет взят типовой из "Общие - Общие макеты - Этикетка", настройки из "Обработки - ПечатьЭтикеток" не менял).
12 pin4er
 
22.08.13
11:20
(10) насчет того что мы будем с ними делать.

то нам приходят объекты со вложенными к ним ШК 5ти значным ШК, их надо со сканировать и вывести на печать, после клеить на объект.
13 probably
 
22.08.13
11:21
(11) смысл в коде без штрихового представления?
14 pin4er
 
22.08.13
11:25
(13) ну тут хозяин барин, сказали что хотят вот так..

а для себя будет свободное время, попробую все таки вывести 5ти значный ШК на печать
15 pin4er
 
04.09.13
14:12
Все разобрались, все ок работает!
всем спасибо за помощь!
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.