7.7 Корректировка печати отчета

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем Babangida, 10 ноя 2009.

  1. TopicStarter Overlay
    Babangida
    Offline

    Babangida

    Регистрация:
    6 окт 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    В отчете выводится большое количество штрих кодов по книгам. так вот при первая страничка выходит нормально, а вот вторая и последующие печатаются не полностью. то есть на второй страничке может распечататься два штрих-кода, а на третьей уже шесть.как откорректировать печать так, чтобы у меня печаталось на странице 24 штрихкода размером по 70*33.8 (мм) каждый штрих-код. то есть три столбца по восемь строк.вообще в конфигураторе я настроил все на глаз. и первая страничка у меня распечатывается нормально, а вот что делать со второй и остальными непонятно. помогите если можете! заранее спасибо!
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Использовать счетчик выведенных СТРОК в таблицу и применить метод НоваяСтраница()
  3. TopicStarter Overlay
    Babangida
    Offline

    Babangida

    Регистрация:
    6 окт 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1


    а не объясните как это сделать то?
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Выкладывай отчет. Телепатией не занимаюсь - удаленно твой код не вижу
  5. TopicStarter Overlay
    Babangida
    Offline

    Babangida

    Регистрация:
    6 окт 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1


    Код:
    Перем ОписаниеРезультата;
    
    //******************************************************************************
    // ТолькоЦифры(Стр)
    //
    // Параметры: 
    //  Стр - текстовая строка
    //
    // Возвращаемое значение:
    //  1 - если в строке только цифры, иначе 0
    //
    // Описание:
    //
    Функция ТолькоЦифры(Стр)
    Рез = 1;
    Для Сч = 1 По СтрДлина(Стр) Цикл
    Символ = Сред(Стр, Сч, 1);
    Если Найти("0123456789", Символ) = 0 Тогда
    Рез = 0;
    Прервать;
    КонецЕсли;
    КонецЦикла;
    
    Возврат Рез;
    
    КонецФункции // ТолькоЦифры()
    
    //******************************************************************************
    // ПроверитьШтрихкод(Штрихкод)
    //
    // Параметры: 
    //  Штрихкод - штриховой код, который нужно проверить
    //
    // Возвращаемое значение:
    //  1 - штрихкод имеет верный формат, 0 - нет.
    //
    // Описание:
    //  Проеверяет штрихкод на соответствие кодировке EAN 13 и EAN 8.
    //
    Функция ПроверитьШтрихкод(Штрихкод)
    
    ДлинаКода = СтрДлина(Штрихкод);
    Рез = 0;
    
    Если ТолькоЦифры(Штрихкод) = 1 Тогда
    // штрихкод должен состоять из цифр
    
    Если (ДлинаКода = 13) ИЛИ (ДлинаКода = 8) Тогда
    Если глКонтрольныйСимволEAN(Лев(Штрихкод,12), 13) = Прав(Штрихкод, 1) Тогда
    Рез = 1;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    
    Возврат Рез;
    
    КонецФункции // ПроверитьШтрихкод()
    
    //******************************************************************************
    // Сформировать(Штрихкод, Устройство)
    //
    // Параметры: 
    //  ТаблицаТоваров - таблица значений, состоящая из колонок:
    //                   Товар - эл.справочника номенклатура или строка, 
    //                           наименование товара
    //                   Штрихкод - строка, штрихкод товара
    //  Устройство     - устройство, куда выводить этикетку.
    //                   "экран" - на экран, "принтер" - на принтер.
    //                   Значение по умолчанию - 0;
    //
    // Возвращаемое значение:
    //  1 - штрихкод имеет верный формат, 0 - нет.
    //
    // Описание:
    //  Выводит этикетку(и) на заданное устройство.
    //
    Процедура Сформировать(ТаблицаТоваров, Устройство)
    
    //  Создание Таблицы для выходного отчета
    Таб	= СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Этикетка");
    
    Если ТаблицаТоваров.КоличествоСтрок() = 1 Тогда
    ТаблицаТоваров.ПолучитьСтрокуПоНомеру(1);
    
    Если ПроверитьШтрихкод(ТаблицаТоваров.Штрихкод) = 0 Тогда
    Предупреждение("У Издания """ + ТаблицаТоваров.Товар + """ штрихкод не задан или имеет неверный формат!");
    Возврат;
    Иначе
    Таб.ВывестиСекцию("ГорТелоВнутр|ВертТелоВнутр");
    КонецЕсли;
    
    Иначе
    ВсегоКолонок = 4;
    ВсегоСтрок   = 10;
    
    ТекКолонка = 1;
    ТекСтрока  = 1;
    
    ТаблицаТоваров.ВыбратьСтроки();
    Пока ТаблицаТоваров.ПолучитьСтроку() = 1 Цикл
    Если ПроверитьШтрихкод(ТаблицаТоваров.Штрихкод) = 0 Тогда
    Сообщить("У издания """ + ТаблицаТоваров.Товар + """ штрихкод не задан или имеет неверный формат!");
    Иначе
    Если ТекКолонка > ВсегоКолонок Тогда
    ТекКолонка = 1;
    ТекСтрока  = ТекСтрока + 1;
    КонецЕсли;
    
    Если ТекСтрока > ВсегоСтрок Тогда
    ТекСтрока  = 1;
    Таб.НоваяСтраница();
    КонецЕсли;
    
    Если ТекКолонка = 1 Тогда
    Таб.ВывестиСекцию("ГорТело|ВертТело");
    Иначе
    Таб.ПрисоединитьСекцию("ГорТело|ВертТело");
    КонецЕсли;
    
    ТекКолонка  = ТекКолонка + 1;
    
    КонецЕсли;
    КонецЦикла;
    
    КонецЕсли;
    
    //Вызов выходного отчета в окно просмотра и редактирования.
    Таб.Опции(0, 0, 0, 0, "ПечатьЭтикетки", "ПечатьЭтикетки");
    Если Устройство="экран" Тогда
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Этикетка", "");
    Иначе
    Таб.Напечатать(0);
    КонецЕсли;
    
    КонецПроцедуры
    
    //******************************************************************************
    // Предопределенная процедура
    //
    Процедура ПриОткрытии()
    
    //	СтатусВозврата(0);
    
    // проверка наличия компоненты
    Попытка
    КомпонентABC = СоздатьОбъект("BARCODE.BarcodeCtrl.1");
    Исключение
    Предупреждение("Компонент ActiveBarcode не установлен на данном компьютере!" +
    РазделительСтрок +
    "Порядок установки компоненты ActiveBarcode описан в документации.");
    Возврат;
    КонецПопытки;
    
    Если ТипЗначенияСтр(Форма.Параметр) <> "СписокЗначений" Тогда
    Возврат;
    КонецЕсли;
    
    Устройство = Форма.Параметр.Получить("Устройство");
    Если ПустоеЗначение(Устройство) = 1 Тогда
    Устройство = "экран";
    КонецЕсли;
    Сформировать(Форма.Параметр.Получить("ТаблицаТоваров"), Устройство);
    СтатусВозврата(0);
    Возврат;
    КонецПроцедуры // ПриОткрытии()
    
    [warn="!!! Внимание !!!"]Пользуйтесь тегами[/warn]
    выложил ))
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Теоретически все верно.
    1) У тебя в таблице случайно пустых строк не затесалось?
    2) Попробуй уменьшить количество строк до 9 - не будет "ползти"?

    Вложения:

  7. TopicStarter Overlay
    Babangida
    Offline

    Babangida

    Регистрация:
    6 окт 2009
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1

    Спасибо разобрался! просто уменьшил количество столбцов до 3, а строк до 8. и немного откорректировал размер объекта уже в форме и все. жалко есть простое спасибо, а не спасибо огромное)))

Поделиться этой страницей