|
Печать этикеток. Вывести Артикул товара | ☑ | ||
---|---|---|---|---|
0
reznik911
20.02.14
✎
09:39
|
Конфигурация УТП для Казахстана 2.0.3.6. задачой была вывести в этикетки артикул. В типовой это не предусмотрено. Нашел обработку ПечатьЭтикеток. сделал внешней, а макет в общий. в макете добавил поле с текстом Артикул идентично как для номенклатуры. Отредактировал координаты областей. Вылазит ошибка при печати
{Форма.Форма.Форма(368)}: Поле объекта не обнаружено (ГраницаСправа) ОбластьГраницаСправа.Рисунки.ГраницаСправа.Высота = ВысотаЭтикетки*1.09; Координаты перепроверил все сходится. Подскажите пжлста где ошибка и как ее решить // Процедура печати этикеток // // Параметры: // ТаблицаТоваров - Таблица значений, содержащая информацию о печатаемых этикетках. // Процедура Печать(ТаблицаТоваров) Экспорт КолвоПереданныхТоваров = ТаблицаТоваров.Количество(); Если КолвоПереданныхТоваров = 0 Тогда Предупреждение("В списке нет ни одного товара со штрихкодом, заполните список товаров," + Символы.ПС + "для которых надо распечатать этикетки. "); Возврат; КонецЕсли; ПечататьБезЦены = Ложь; Если ПечататьЦену Тогда Для Каждого СтрокаИзСписка Из ТаблицаТоваров Цикл Если СтрокаИзСписка.Цена = 0 И СтрокаИзСписка.Количество > 0 Тогда Ответ = Вопрос("У некоторых товаров не указаны цены! Печатать этикетки для этих товаров?", РежимДиалогаВопрос.ДаНетОтмена); Если Ответ = КодВозвратаДиалога.Отмена Тогда Возврат; ИначеЕсли Ответ = КодВозвратаДиалога.Да Тогда ПечататьБезЦены = Истина; ИначеЕсли Ответ = КодВозвратаДиалога.Да Тогда ПечататьБезЦены = Ложь; КонецЕсли; Прервать; КонецЕсли; КонецЦикла; КонецЕсли; ТекКолонка = 1; ТекСтрока = 1; Таб = Новый ТабличныйДокумент; Таб.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Этикетка"+СокрЛП(ИмяКомпьютера()); Макет = ПолучитьОбщийМакет("Этикетка"); ЭтикеткаОбласть = Макет.ПолучитьОбласть(1,1,5,2); ОбластьНоменклатура = ЭтикеткаОбласть.Области.Номенклатура; //Сухраб от ОбластьАртикул = ЭтикеткаОбласть.Области.Артикул; //Сухраб до ОбластьШтрихкод = ЭтикеткаОбласть.Области.ОбластьШтрихкод; РисунокШтрихкод = ЭтикеткаОбласть.Рисунки.Штрихкод; ОбластьЦена = ЭтикеткаОбласть.Области.Цена; ОбластьНоменклатура.ВысотаСтроки = ВысотаЭтикетки * 2.65 * 0.3; //Сухраб от ОбластьАртикул.ВысотаСтроки = ВысотаЭтикетки * 2.65 * 0.2; //Сухраб до ОбластьШтрихкод.ВысотаСтроки = ВысотаЭтикетки * 2.65 * 0.5; РисунокШтрихкод.Расположить(ОбластьШтрихкод); ОбластьЦена.ВысотаСтроки = ВысотаЭтикетки * 2.65 * 0.2; ЭтикеткаОбласть.Область(2,2,2,2).ШиринаКолонки = ШиринаЭтикетки*0.53; Если ФорматЭтикетки = 1 Тогда //принтер этикеток. ВсегоСтрок = 1; КоличествоКолонок=1; ИначеЕсли ФорматЭтикетки = 2 Тогда //А4 по колонкам. ОбластьГраницаСправа = Макет.ПолучитьОбласть(2,4,5,4); ОбластьНизГраницыСправа = Макет.ПолучитьОбласть(6,4,6,4); ОбластьГраницаСнизу = Макет.ПолучитьОбласть(7,2,7,2); ОбластьНачалоГраницыСнизу = Макет.ПолучитьОбласть(7,1,7,1); ОбластьГраницаСправа.Рисунки.ГраницаСправа.Высота = ВысотаЭтикетки*1.09; ОбластьГраницаСнизу.Рисунки.ГраницаСнизу.Ширина = ШиринаЭтикетки; ОбластьГраницаСправа.Область(1,1,1,1).ВысотаСтроки = ВысотаЭтикетки*2.65; ОбластьГраницаСнизу.Область(1,1,1,1).ШиринаКолонки = ШиринаЭтикетки*0.53; ВсегоСтрок = 22; КоличествоКолонок = 5; КонецЕсли; ВсегоКолонок = КоличествоКолонок; Если ВсегоКолонок > 1 Тогда ВсегоКолонок = ВсегоКолонок+ВсегоКолонок - 1; //добавляем разделители колонок. КонецЕсли; ВывелиХотяБыОдинШтрихКод = Ложь; Для Каждого СтрокаИзСписка Из ТаблицаТоваров Цикл Если ПечататьЦену И СтрокаИзСписка.Цена = 0 И Не ПечататьБезЦены Тогда Продолжить; КонецЕсли; ТипКода = ПолучитьЗначениеТипаШтрихкодаДляЭУ(СтрокаИзСписка.ТипШтрихкода); Если ТипКода = -1 Тогда ОбщегоНазначения.СообщитьОбОшибке("Для штрихкода формата """ + СтрокаИзСписка.ТипШтрихкода + """ не существует соответствующего типа в ЭУ ""1С:Печать штрихкодов"". | Позиция будет пропущена"); Продолжить; КонецЕсли; Если УправлениеРозничнойТорговлей.ПроверитьШтрихКод(СтрокаИзСписка.ШтрихКод, СтрокаИзСписка.ТипШтрихкода) Тогда ЭтикеткаОбласть.Рисунки.Штрихкод.Объект.ТипКода = ТипКода; ЭтикеткаОбласть.Рисунки.Штрихкод.Объект.Сообщение = СтрокаИзСписка.ШтрихКод; ОбластьНоменклатура.Текст = СокрЛП(СтрокаИзСписка.Номенклатура) + ФормированиеПечатныхФорм.ПредставлениеСерий(СтрокаИзСписка); //Сухраб от ОбластьАртикул.Текст=СтрокаИзСписка.Артикул; //Сухраб до Если ПечататьЦену И СтрокаИзСписка.Цена <> 0 Тогда ОбластьЦена.Текст = "Цена: " + ОбщегоНазначения.ФорматСумм(СтрокаИзСписка.Цена,СтрокаИзСписка.Валюта) + " за " + СтрокаИзСписка.ЕдиницаИзмерения; КонецЕсли; Для Копий = 1 По СтрокаИзСписка.Количество Цикл Если ТекКолонка > ВсегоКолонок Тогда //новая строка. Если ВсегоСтрок <> 1 Тогда //выведем разделитель. Для Сч = 1 по ВсегоКолонок Цикл Если Сч = 1 Тогда Таб.Вывести(ОбластьНачалоГраницыСнизу); Иначе Таб.Присоединить(ОбластьНачалоГраницыСнизу); КонецЕсли; Таб.Присоединить(ОбластьГраницаСнизу); Таб.Присоединить(ОбластьНизГраницыСправа); Сч = Сч + 1; КонецЦикла; ТекСтрока = ТекСтрока + 1; КонецЕсли; Если ТекСтрока/ВсегоСтрок = Цел(ТекСтрока/ВсегоСтрок) Тогда Таб.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ТекСтрока = ТекСтрока + 1; ТекКолонка=1; КонецЕсли; Если ТекКолонка<>1 Тогда //выведем разделитель. Таб.Присоединить(ОбластьГраницаСправа); ТекКолонка = ТекКолонка + 1; Таб.Присоединить(ЭтикеткаОбласть); ТекКолонка = ТекКолонка + 1; Иначе Таб.Вывести(ЭтикеткаОбласть); ТекКолонка = ТекКолонка + 1; КонецЕсли; ВывелиХотяБыОдинШтрихКод = Истина; КонецЦикла; Иначе ТекстСообщения = "У товара """ + СтрокаИзСписка.Номенклатура + """ штрихкод не задан или имеет неверный формат!"; Если КолвоПереданныхТоваров = 1 Тогда Предупреждение(ТекстСообщения); Иначе Сообщить(ТекстСообщения,СтатусСообщения.БезСтатуса); КонецЕсли; КонецЕсли; КонецЦикла; Если ВывелиХотяБыОдинШтрихКод Тогда УниверсальныеМеханизмы.НапечататьДокумент(Таб, 1, СразуНаПринтер, "Этикетки"); Иначе Сообщить("На печать не выведено ни одной этикетки!"); КонецЕсли; КонецПроцедуры // Печать() макет Этикетка http://s020.radikal.ru/i706/1402/e9/f8191ef606eb.png |
|||
1
reznik911
20.02.14
✎
09:41
|
||||
2
Wobland
20.02.14
✎
09:43
|
ошибка в 368й строке, решается заданием границы справа рисунку или области
|
|||
3
reznik911
20.02.14
✎
09:48
|
(2) ВысоткаЭтикетки* УжеДругоеЧисло так?
|
|||
4
Wobland
20.02.14
✎
09:49
|
нет же
|
|||
5
reznik911
20.02.14
✎
10:01
|
(4) а как. я просто это ОбластьГраницаСправа.Рисунки.ГраницаСправа.Высота = ВысотаЭтикетки*1.09;
так и не понял как он вычисляет |
|||
6
Wobland
20.02.14
✎
10:07
|
он это не успевает начать вычислять, т.к. ты не объясняешь ему, к какому рисунку это применять
|
|||
7
reznik911
20.02.14
✎
10:17
|
(6) вот здесь ОбластьГраницаСправа = Макет.ПолучитьОбласть(2,4,5,4);
задает координаты так? |
|||
8
Wobland
20.02.14
✎
10:18
|
получается область по заданным координатам
|
|||
9
reznik911
20.02.14
✎
10:23
|
(8) потом в этой области получает рисунок Границасправа пунктирный и вот здесь вылазит ошибка?
|
|||
10
Wobland
20.02.14
✎
10:23
|
(9) какой рисунок из трёхсот имеется в виду?
|
|||
11
reznik911
20.02.14
✎
10:25
|
(10) то что на макете я ж ссылку скинул сюда
|
|||
12
reznik911
20.02.14
✎
10:25
|
(1)
|
|||
13
Wobland
20.02.14
✎
10:29
|
(11) где ты об этом сказал платформе?
|
|||
14
Шапокляк
20.02.14
✎
10:29
|
ОбластьГраницаСправа.Рисунки.МойОфигенскийРисунок.ГраницаСправа=Истина
|
|||
15
reznik911
20.02.14
✎
10:35
|
(14) почему истина? че т не понял к чему это?
|
|||
16
Wobland
20.02.14
✎
10:38
|
(15) такова природа границ справа - она булева
|
|||
17
reznik911
20.02.14
✎
10:40
|
(16) сделал ошибка терь с (14)
|
|||
18
Wobland
20.02.14
✎
10:43
|
(17) ну уж с этой-то ты справишься, у тебя есть текст ошибки, а по-русски ты понимаешь
|
|||
19
reznik911
20.02.14
✎
10:56
|
(18) ну ошибка то не изменилась
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |