Вход | Регистрация

1С:Предприятие ::

Метки:

Надо на странице вывести несколько .... ?

Я
   zov
 
05.01.04 - 17:40
Уважаемые господа.
Есть проблема, но незнаю как ее решить.
Короче ...
Есть Таблица маленькая(типа Ценник). На странице А4 их помещается 6.
По 2 в строке.
Как правильно организовать печать. ПрисоединитьСекцию?
Или есть, что-то более правильное.
Т.е. интересует медод размещения на одной странице нескольких документов.
Спасибо.
 
 
   345
1 - 05.01.04 - 17:59
Сбор данных в ТЗ + печать через вывести секцию или присоединить секцию ... впрочем, обычно размер бумаги и ценника заданы жестко и присоединить не требуется ...

P.S. - размеры по вертикали как правило, тоже известны ...

так что можно заранее подсчитать кол-во экземпляров на листе и выводить НоваяСтраница .... для перехода на новый лист и пропуска остатка ... на который ничего не влезет ....
   Таня
 
2 - 05.01.04 - 18:02
Осмелюсь предложить следующий вариант:
попробуй оставить 1 экз в сформированной таблице, просто когда будешь выводить на печать, в окне настройки Файл-Параметры страницы поставь Экземпляров на страницу - Авто, посмотри что получится.
   345
3 - 05.01.04 - 18:09
(2) размножит только в высоту .... рядом вроде не сделает ....
   skunk
 
4 - 05.01.04 - 18:16
Осмелюсь предложить вот это

Процедура ПечатьЦенников(ТекДок, Стр, Кол, Тип = 1);
    СпрЦена = СоздатьОбъект("Справочник.Цены");
    Отчет = СоздатьОбъект("Таблица");
    Отчет.ИсходнаяТаблица("Ценник");
    ТекДок.ВыбратьСтроки();
    Фирма = ТекДок.Фирма;
    Секция = Стр + "|" + Кол;
    Пока ТекДок.ПолучитьСтроку() > 0 Цикл
        Что = ТекДок.Номенклатура;
        ПечКод = Строка(Что.Код);
        Товар = Что.ПолнНаименование;
        ЕдИзм = Что.ОсновнаяЕдиница.ОКЕИ.ПолнНаименование;
        СпрЦена.ИспользоватьВладельца(Что);
        СпрЦена.ИспользоватьДату(РабочаяДата());
        СпрЦена.НайтиПоКоду(2);
        ПечЦена = Строка(Цел(СпрЦена.Цена)) + " руб. " + Строка((СпрЦена.Цена - Цел(СпрЦена.Цена)) * 100) + " коп.";
        СтИзг = Строка(Что.СтранаПроисхождения);
        Номер = ТекДок.НомерСтроки;
        Если (Номер / 2) = Цел(Номер / 2) Тогда
            Отчет.ПрисоединитьСекцию(Секция);
        Иначе
            Отчет.ВывестиСекцию(Секция);
        КонецЕсли;
        Если Тип = 1 Тогда
            Если (Номер / 8) = Цел(Номер / 8) Тогда
                Отчет.НоваяСтраница();
            КонецЕсли;
        КонецЕсли;
        Если Тип = 2 Тогда
            Если (Номер / 12) = Цел(Номер / 12) Тогда
                Отчет.НоваяСтраница();
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    Отчет.Опции(0, 0, 0, 0, "", "Ценник", 0, 1);
    Отчет.Показать("Ценник", "");
КонецПроцедуры
   Львенок
 
5 - 05.01.04 - 18:27
Все правильно. Присоединить секцию. Количество на странице известно, это да. Но хочется обычно не несколько экземпляров одного ценника иметь, а плотно друг рядом с другом несколько ценников от разных товаров. Тогда без присоединения никак. У меня даже есть код обработки по печати ценников.
Удобнее всего если в список выбираются накладные ко всем товарам в которых нужно ценники напечатать и еще чтобы можно было просто отдельные позиции из номенклатуры набирать. Потом все товары собираются в ТЗ. А процедура примерно такая:

Процедура ПечатьЦенников()    
    Если ВыбДок.РазмерСписка()=0 Тогда
        Предупреждение ("Не выбран источник формирования ценников");   
        Возврат;
    КонецЕсли;
    СформироватьТаблицу()//Здесь формируется ТабТов со списком товаров для которых печатаем ценники.


    т=СоздатьОбъект("Таблица");
    Т.Исходнаятаблица("Ценник");
    Гор=3; Верт=6;
    ТекГор=0; ТекВерт=0;
    ТабТов.ВыбратьСтроки();
    Пока ТабТов.ПолучитьСтроку()>0 Цикл
        Товар=ТабТов.Товар;
        Артикул=...;
             ШтрихКод=...;
             ... и т.д.
        Цена=СокрЛП(Формат(Товар.РозничнаяЦена.Получить(ТекущаяДата()),"Ч015.2.'"))+" р.";
        
        Если Цел(ТекВерт/Верт)=ТекВерт/Верт тогда
            Т.НоваяСтраница();
        КонецЕсли; 
        Если Цел(ТекГор/Гор)=ТекГор/Гор тогда
            Т.ВывестиСекцию("Горизонт|Вертикаль");  
            ТекВерт=ТекВерт+1;
        Иначе
            Т.ПрисоединитьСекцию("Горизонт|Вертикаль");
        КонецЕсли;              
        ТекГор=ТекГор+1;
        
    КонецЦикла;
    Т.Опции(0,0,0,0,"Опции ценника"); 
    Т.ПараметрыСтраницы(1,,,0,0,0,0,0,0,1);
    Т.Защита(Константа.ФлагЗащитыТаблиц);
    Т.ТолькоПросмотр(1);
    Т.Показать("Печать Ценников","");
КонецПроцедуры

Примерно так.
___
Искренне Ваш, Львенок
   skunk
 
6 - 05.01.04 - 18:41
(5)Где там один экземпляр. Посмотри внимательно. Там в параметрах пердаеться документ, последнии три параметра можно игнорировать, просто у нас два типа ценников используется один большой, другой по меньше.
Еще один плюс, вызываешь эту процедуру из любого документа и печатаешь ценники. Встроенна в сатндартный ТиС через глДействия().
   Львенок
 
7 - 05.01.04 - 21:03
(6) Ох ё... Мы отмечали ДР... Теперь я не понимаю о чем ты, и с трудом попадаю по клавишам, но... Вот тот кусок который я написал реально работает у меня в трех магазинах. Навернаяка не оптимально, но работает.
___
Искренне Ваш, Львенок.
   skunk
 
8 - 05.01.04 - 21:12
(7)Львенок я не спорю твой работает, просто ты скзал про мой "Но хочется обычно не несколько экземпляров одного ценника иметь" я тебя скзал что у меня этого нет и печатает то что хочеться то есть "а плотно друг рядом с другом несколько ценников от разных товаров"
   Львенок
 
9 - 05.01.04 - 22:06
Skunk, кому, кому, а тебе верю наслово! ;)
___
Искренне Ваш, Львенок.
   Львенок
 
10 - 05.01.04 - 22:07
Skunk, кому, кому, а тебе верю наслово! ;)
___
Искренне Ваш, Львенок.
 
  Рекламное место пустует
   skunk
 
11 - 05.01.04 - 22:09
;) водка с медом помогла или баня.
   zov
 
12 - 06.01.04 - 11:54
Уважаемые господа!
Благодарю за информацию. Особенно Львенок. Ну и Skunk тоже. Я сублимировал ваши примеры и получилось очень даже ничего. По моему даже изящъно. Если учесть, что в документации механизм подключения секций описан, а отключения нет. И так промежду прочим выясняется, что они сами отваливаются после однократного использования.
Правильно?
================ А вот что получилось. ===========
Процедура ПечатьКарточки()
    Перем ПечСерия, ПечКолВо,ПечСрокГодности;
    Если Выбран() = 0 Тогда
        Предупреждение("Элемент не сохранен!");
        Возврат;
    КонецЕсли;
    Карточка    =    СоздатьОбъект("Таблица");
    Карточка.ИсходнаяТаблица("СтеллажнаяКарточка"); 
    Карточка.ЭкземпляровНаСтранице(3);
    Секция    =    "Товар|Карточка";
    Гор        =    3;
    Верт    =    4;
    ТекГор    =    0;
    ТекВерт    =    0;
       ВсегоНаСтранице = Гор * Верт;
    Ответ        =     Вопрос("Печатаем карточку для текущего товара(Да) или для всех(Нет)?",3 );
    
    Если        Ответ    =    7     Тогда        
        ВыбратьСтроки();
        Пока ПолучитьСтроку() > 0 Цикл   
            Если Цел(ТекГор/Гор)    =    ТекГор/Гор    Тогда 
                  Карточка.ВывестиСекцию(Секция);   
                   ТекВерт    =    ТекВерт+1; 
               Иначе
                   Карточка.ПрисоединитьСекцию(Секция);
               КонецЕсли;               
               ТекГор    =    ТекГор+1; 
               Если ТекГор = ВсегоНаСтранице Тогда
                   ТекГор    =    0;
                   ТекВерт    =    0;
                   Карточка.НоваяСтраница(); 
               КонецЕсли;
        КонецЦикла;
    ИначеЕсли    Ответ = 6    Тогда
        Карточка.ВывестиСекцию(Секция);
    КонецЕсли;        
    Карточка.Опции(0,0,0,0,"Опции Карточки");
       Карточка.ПараметрыСтраницы(1,,,0,0,0,0,0,0,1); 
      Карточка.Защита(Константа.ФлагЗащитыТаблиц); 
    Карточка.ТолькоПросмотр(1); 
    Карточка.Показать("Карточка");    
КонецПроцедуры
   Львенок
 
13 - 06.01.04 - 11:56
Обращайся! ;)
___
Искренне Ваш, Львенок.


Список тем форума
Рекламное место пустует   Рекламное место пустует
Закон Брукера: Даже маленькая практика стоит большой теории.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует