Имя: Пароль:
1C
1С v8
v8: Печать этикеток. Убрать границу справа.
,
0 Rumpil
 
21.09.11
10:19
При формировании макета с этикетками у меня справа остается какой то непонятный отступ:

http://saveimg.ru/show-image.php?id=9308179ebce3565c63bf8c98124efbe2

Залез в макет и удали ОбластьГраницаСправа, но и это не помогло.

http://saveimg.ru/show-image.php?id=3b7917a717a1c1b314130bd3761353d7

В коде менял цифры, на кот. умножается ОбластьГРаницыСправа, но и это не помогло. Может еще че посоветуете ?

   Таб                     = Новый ТабличныйДокумент;
   Таб.ИмяПараметровПечати =    "ПАРАМЕТРЫ_ПЕЧАТИ_Этикетка"+СокрЛП(ИмяКомпьютера());
   Макет                   = ПолучитьОбщийМакет("Этикетка");
   ЭтикеткаОбласть         = Макет.ПолучитьОбласть(1,1,4,2);
   ОбластьНоменклатура     = ЭтикеткаОбласть.Области.Номенклатура;
   ОбластьШтрихкод         = ЭтикеткаОбласть.Области.ОбластьШтрихкод;
   РисунокШтрихкод         = ЭтикеткаОбласть.Рисунки.Штрихкод;
   ОбластьЦена             = ЭтикеткаОбласть.Области.Цена;

   ОбластьНоменклатура.ВысотаСтроки = ВысотаЭтикетки * 2.65 * 0.3;
   ОбластьШтрихкод.ВысотаСтроки     = ВысотаЭтикетки * 2.65 * 0.35;
   РисунокШтрихкод.Расположить(ОбластьШтрихкод);
   ОбластьЦена.ВысотаСтроки         = ВысотаЭтикетки * 2.65 * 0.3;

   ЭтикеткаОбласть.Область(2,2,2,2).ШиринаКолонки = ШиринаЭтикетки*0.53;

   Если ФорматЭтикетки  = 1 Тогда //принтер этикеток.
       ВсегоСтрок       = 1;
       КоличествоКолонок=1;
   ИначеЕсли ФорматЭтикетки = 2 Тогда //А4 по колонкам.

       ОбластьГраницаСправа      = Макет.ПолучитьОбласть(2,4,4,4);
       ОбластьНизГраницыСправа   = Макет.ПолучитьОбласть(5,4,5,4);
       ОбластьГраницаСнизу       = Макет.ПолучитьОбласть(6,2,6,2);
       ОбластьНачалоГраницыСнизу = Макет.ПолучитьОбласть(6,1,6,1);

       //ОбластьГраницаСправа.Рисунки.ГраницаСправа.Высота = ВысотаЭтикетки*1.09;
       ОбластьГраницаСнизу.Рисунки.ГраницаСнизу.Ширина   = ШиринаЭтикетки;

       //ОбластьГраницаСправа.Область(1,1,1,1).ВысотаСтроки = ВысотаЭтикетки*0.05;
       ОбластьГраницаСнизу.Область(1,1,1,1).ШиринаКолонки = ШиринаЭтикетки*0.93;
1 pers200590
 
21.09.11
10:23
(0) скажи какая конфигурация
2 Rumpil
 
21.09.11
10:24
УТ 10.3
3 Rumpil
 
21.09.11
10:26
Хм, при увеличении ОбластьГраницаСправа расстояние между этикетками увеличилось, но отступ справа в конце листа остался тот же ((
4 Alex S D
 
21.09.11
10:31
Ну наверное надо проверять, что это последняя колонка и не выводить эту область..
5 Ткачев
 
21.09.11
10:31
Все правильно, пятая этикетка туда не влезет.
6 Rumpil
 
21.09.11
10:32
Ну так и количество колонок я изменил на 4:

ВсегоСтрок        = 19;
КоличествоКолонок = 4;
7 Rumpil
 
21.09.11
10:33
То есть 5 колонка и не выходит
8 Rumpil
 
21.09.11
10:33
Хотя может область 5 колонки как то задействована в этих цифрах ?

 ОбластьГраницаСправа      = Макет.ПолучитьОбласть(2,4,4,4);
       ОбластьНизГраницыСправа   = Макет.ПолучитьОбласть(5,4,5,4);
       ОбластьГраницаСнизу       = Макет.ПолучитьОбласть(6,2,6,2);
       ОбластьНачалоГраницыСнизу = Макет.ПолучитьОбласть(6,1,6,1);

Просто я не очень понимаю что они значат
9 Alex S D
 
21.09.11
10:34
покажи цикл вывода областей
10 Ткачев
 
21.09.11
10:34
А что ты хочешь вместо отступа ?
11 Rumpil
 
21.09.11
10:35
(9) Вот:

ВсегоКолонок = КоличествоКолонок;
   Если ВсегоКолонок > 1 Тогда
       ВсегоКолонок = ВсегоКолонок+ВсегоКолонок - 1; //добавляем разделители колонок.
   КонецЕсли;

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

               ВывелиХотяБыОдинШтрихКод = Истина;
           КонецЦикла;
       Иначе
           ТекстСообщения = "У товара """ + СтрокаИзСписка.Номенклатура + """ штрихкод не задан или имеет неверный формат!";
           Если КолвоПереданныхТоваров = 1 Тогда
               Предупреждение(ТекстСообщения);
           Иначе
               Сообщить(ТекстСообщения,СтатусСообщения.БезСтатуса);
           КонецЕсли;
       КонецЕсли;
   КонецЦикла;

   Если ВывелиХотяБыОдинШтрихКод Тогда
       УниверсальныеМеханизмы.НапечататьДокумент(Таб, 1, СразуНаПринтер, "Этикетки");
   Иначе
       Сообщить("На печать не выведено ни одной этикетки!");
   КонецЕсли;
12 Rumpil
 
21.09.11
10:36
(10) я хочу чтобы отступа не было и они бы равномерно распределились по листу, а то при печати на этикеточную бумагу они не попадают в квадраты наклеек из за отступа справа
13 Rumpil
 
21.09.11
10:38
Играться с параметрами страницы не помогает. ПОхоже есть что то что выводит этот отступ. ПРосто я коде не могу разобраться
14 Alex S D
 
21.09.11
10:39
Перед строкой "Если ВсегоСтрок <> 1 Тогда //выведем разделитель."

Попробуй Вставить проверку на посл. колонку
Если ТекКолонка < ВсегоКолонок Тогда ...
15 Адинэснег
 
21.09.11
10:39
16 Rumpil
 
21.09.11
10:42
(14) проверка на последнюю колонку - это ты что имеешь в виду ?
17 Alex S D
 
21.09.11
10:46
(16) это и имею ввиду.. проверять , чтобы при выводе посл. колонки разделитель после нее не выводился, или я что-то не так понял?
18 Rumpil
 
21.09.11
10:47
(17) щас попробую
19 Rumpil
 
21.09.11
10:50
Убрал, похоже дело не в разделителях, отступ справа все тот же
20 Rumpil
 
21.09.11
10:58
Хм, решил вроде проблему сделав масштаб страницы 114, вроде нормально распечаталось
21 Jaffar
 
21.09.11
11:02
(20)плохое решение (временное).
22 Rumpil
 
21.09.11
11:10
(20) Знаю, но пока для того чтобы печатать хватит, потом покапаюсь еще в коде
23 Jaffar
 
21.09.11
15:07
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший