Имя: Пароль:
1C
Админ
Ошибка в Общий модуль.Работа с торговым оборудованием
,
0 kandakov_pv
 
23.06.12
10:45
всем доброго времени суток, возникла такая проблема:

Буквально на днях задавал вопрос на форуме про то как добавить в ценник штрихкод, обработка запускается, но при нажатии кнопки печать вылетает вот это:

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

Как быть, подскажите пожалуйста
1 Любопытная
 
23.06.12
11:15
Смотреть, что в переменной Индекс
2 Rie
 
23.06.12
11:17
(1) +1
А ещё - что в переменной Четн изначально было.
3 Любопытная
 
23.06.12
11:20
Ну да, если там ссылка на какой-нить справочник, то к ней вряд ли что-то прибавишь)
4 Rie
 
23.06.12
11:28
(3) И если она не инициализирована (то есть, Неопределено) - то будет как раз такое сообщение.
5 Любопытная
 
23.06.12
11:31
(4) Спасибо, буду знать
6 kandakov_pv
 
23.06.12
11:43
Извирите конечно за ламерство, можно как то на пальцах где это посмотреть?
7 Rie
 
23.06.12
11:51
(6) О какой конфигурации идёт речь? Это обычное приложение или управляемое?
8 Любопытная
 
23.06.12
11:51
(6) Отладчик в зубы
9 kandakov_pv
 
23.06.12
11:59
Конфигурация Управление Торговлей 10,3
10 Rie
 
23.06.12
12:01
Вообще говоря, несколько странная ситуация. Судя по всему, ошибка возникает при подсчёте контрольной суммы EAN.
Помимо Четн и Индекс, там ещё участвует Сред(ШтрихКод,2*Индекс,1) - очередная цифра штрих-кода. Причём это как раз - строка, которой предстоит автоматически преобразоваться в число.
Если ТС не ковырялся бодро в конфигурации - то Четн инициализирована, и Индекс - просто замечательный.
Отсюда вывод: в штрих-коде попалась не цифра.
И возникает следующий вопрос - а что ТС подсунул несчастной функции вместо EANовского штрих-кода?
11 kandakov_pv
 
23.06.12
12:11
и как посмотреть что он ей подсунул?
12 rs_trade
 
23.06.12
12:14
позовите специалиста
13 kandakov_pv
 
23.06.12
12:16
я бы с радостью... только у нас все ленивые работать не хотят, звал не идут
14 Rie
 
23.06.12
12:18
(13) А деньги за работу платить не пробовали? :-)

(11) Отладчиком, к примеру.
При сканировании какого именно штрих-кода было получено сообщение об ошибке из (0)?
15 kandakov_pv
 
23.06.12
12:24
деньги пробовали, только 1с не лицензия, и почему то сразу даже за деньги не захотели...
16 kandakov_pv
 
23.06.12
12:25
Ошибка возникает когда пытаюсь ценник на печать из формы отправить.
А так все коды занесены в EAN13
17 Rie
 
23.06.12
12:28
(15) Купите лицензионную, кто ж мешает-то?

(16) Я пока что схожу за утюгом и паяльников, а ТС тем временем попробует вспомнить, какой именно код отправлялся на печать, когда он получил сообщение об ошибке из (0) :-)
18 Rie
 
23.06.12
12:29
+(17) А заодно - как выглядит процедура отправки ценников на печать?
19 kandakov_pv
 
23.06.12
12:32
мешает отсутствие на данный момент 20 т.р.
20 kandakov_pv
 
23.06.12
12:32
Функция ПечатьЭтикетка() Экспорт

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

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

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

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

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

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

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

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

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

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

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

КонецФункции //
21 Rie
 
23.06.12
12:36
А теперь - всё тот же вопрос: какой штрих-код пытались напечатать-то, когда выскочило сообщение об ошибке из (0)?!

Откуда берётся ШтрихКод в приведенной в (20) процедуре?
22 Rie
 
23.06.12
12:39
+(21) Причина ошибки в том, что в печатаемом штрих-коде у тебя откуда-то взялся символ, не являющийся цифрой (вполне возможно, кстати, что это - пробел). Вот и помедитируй над тем, откуда он там.
Закон Брукера: Даже маленькая практика стоит большой теории.