Имя: Пароль:
1C
1С v8
Печать этикеток. Разделитель страниц не разделяет.
0 Boudybuilder
 
30.07.14
10:41
Ребята, всем привет!
Вобщем такая проблемка. Вывожу на принтер этикеток свой макетик , после каждого разделитель страниц. А получается вот такая фигня...

https://yadi.sk/i/P7wXRfv2YRWsQ
1 Cube
 
30.07.14
10:42
(0) Плохо выводишь. Код покажешь или угадать?
2 dva1c
 
30.07.14
10:43
(1) Попробуем угадать? ;)
3 Cube
 
30.07.14
10:44
(2) Попробуй))
4 Boudybuilder
 
30.07.14
10:48
Процедура Печать(ТаблицаТоваров) Экспорт

    КолвоПереданныхТоваров = ТаблицаТоваров.Количество();

    Если КолвоПереданныхТоваров = 0 Тогда
        Предупреждение("В списке нет ни одного товара со штрихкодом, заполните список товаров,"
                       + Символы.ПС + "для которых надо распечатать этикетки. ");
        Возврат;
    КонецЕсли;

    ПечататьБезЦены        = Ложь;
    Если ПечататьЦену Тогда
        Для Каждого СтрокаИзСписка Из ТаблицаТоваров Цикл
            Если СтрокаИзСписка.Цена = 0 И СтрокаИзСписка.Количество > 0 Тогда
                Ответ = Вопрос("У некоторых товаров не указаны цены! Печатать этикетки для этих товаров?",
                               РежимДиалогаВопрос.ДаНетОтмена);
                Если Ответ = КодВозвратаДиалога.Отмена Тогда
                    Возврат;
                ИначеЕсли Ответ = КодВозвратаДиалога.Да Тогда
                    ПечататьБезЦены = Истина;
                ИначеЕсли Ответ = КодВозвратаДиалога.Да Тогда
                    ПечататьБезЦены = Ложь;
                КонецЕсли;
                Прервать;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    
    ТекКолонка = 1;
    ТекСтрока  = 1;

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

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

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

            ЭтикеткаОбласть.Рисунки.Штрихкод.Объект.ТипКода   = ТипКода;
            ЭтикеткаОбласть.Рисунки.Штрихкод.Объект.Сообщение = ?(ПустаяСтрока(СтрокаИзСписка.ПредставлениеШтрихкода),
                                                                  СтрокаИзСписка.Штрихкод,
                                                                  СтрокаИзСписка.ПредставлениеШтрихкода);

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

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

КонецПроцедуры // Печать()
5 Cube
 
30.07.14
10:51
(4) Подозреваю, что до строки "Таб.ВывестиГоризонтальныйРазделительСтраниц();" у тебя дело не доходит. Пройдись отладчиком.
6 Garykom
 
гуру
30.07.14
10:53
Почему то всегда думал что печать этикеток на принтере ШК это как печать обычного документа (тока маленького) на обычный принтер (с маленькими листочками) ЧЯДНТ?

(4) Нахрена так сложно?
Нельзя это непоймичтокод разделить на прцедуры/функции? Сразу понятно будет что и сколько раз вызывается...
7 Boudybuilder
 
30.07.14
10:59
(7) так это типовая :) чуть тока урезаная
8 Cube
 
30.07.14
11:04
(7) "чуть тока урезаная"
Вот как раз в этом-то и проблема (скорее всего) :)
9 Boudybuilder
 
30.07.14
11:08
https://yadi.sk/i/eEFnFngXYRigs
горизонтальный разделитель выводится
10 Boudybuilder
 
30.07.14
11:08
в типовой та же фигня была
11 dva1c
 
30.07.14
11:09
(10) Поддерживаю (5)
12 Boudybuilder
 
30.07.14
11:09
(11) смотри (9)
13 Cube
 
30.07.14
11:13
(9) То выводится, то не выводится... Определись уже...
14 Boudybuilder
 
30.07.14
11:15
Разделитель выводится : https://yadi.sk/i/eEFnFngXYRigs

а распечатывает вот так: https://yadi.sk/i/P7wXRfv2YRWsQ


Получается что печатает один листок пустое  ,и один со штрихкодом. Печатает через один
15 ChiginAV
 
30.07.14
11:16
(0) Размер табличного документа выставь соответственно размеру этикетки
16 Boudybuilder
 
30.07.14
11:26
(15) Всяко ресайзил... не помогает.

вот подробнее тут. Первый лист ок. следующие - беда!
https://yadi.sk/i/jI2vvjwpYRpU7
17 Злопчинский
 
30.07.14
11:28
(6) ну так и есть
18 Злопчинский
 
30.07.14
11:29
(16) сдизайнери этикетку-макет строго под размер этикетки. чтобы ничего никуда не вылазило