7.7 Печать документов за период

Тема в разделе "Общие вопросы "1С:Предприятие 7.7"", создана пользователем doniel, 14 авг 2010.

  1. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Реестр вам не подойдет. Это же не сам документ (его печатрая форма) а всего лишь список документов за период.

    1) Копируем обработку которая у нас с вами получилась в новую (через сохранить как).
    2) Переносим процедуру Печать из документа в обработку (через буфер обмена). Она должна встать ПЕРЕД процедурой Сформировать
    3) Переносим макет из документа в обработку (через буфер обмена)
    4) Заменяем в обработке вызов
    Код:
    с: 
    ОткрытьФормуМодально.......
    на 
    Печать(Док);
    
    
    Там еще куча работы, но слелайте пока это
  2. TopicStarter Overlay
    doniel
    Offline

    doniel Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    26
    Код:
    //*******************************************
    Перем Таб;
    //*******************************************
    Процедура Печать(Докум, Устройство=0, КолвоКопий=1)
    СтатусВозврата(0);
    Таб.ВывестиСекцию("Шапка");  
    // Печать строк документа.
    Докум.ВыбратьСтроки();
    Ном=0;
    Пока Докум.ПолучитьСтроку()=1 Цикл
    Ном=Ном+1;
    Если ТипЗначения(Докум.Товар) = 1 Тогда
    Наименование = Докум.Товар;
    ИначеЕсли Докум.Товар.Вид() = "Номенклатура" Тогда
    Наименование = ?(ПустаяСтрока(Докум.Товар.ПолнНаименование)=1, Докум.Товар.Наименование, Докум.Товар.ПолнНаименование);
    Количество = Докум.Количество;
    Масса = Докум.Товар.Вес*Количество;
    НомШтабеля = Докум.НомШтабеля;
    Влажность  = Докум.Влажность;
    Сорность   = Докум.Сорность;
    КонецЕсли;	
    Таб.ВывестиСекцию("Строка");
    КонецЦикла;
    Таб.ВывестиСекцию("Подвал");
    КонецПроцедуры
    //*******************************************
    Процедура ПечатьСПовторением(Докум, Устройство=0, КолвоКопий=1)
    СтатусВозврата(0);
    Таб1 = СоздатьОбъект("Таблица");
    Таб1.ИсходнаяТаблица("Справка");
    Таб1.ВывестиСекцию("Шапка");  
    // Печать строк документа.
    Докум.ВыбратьСтроки();
    Ном=0;
    Пока Докум.ПолучитьСтроку()=1 Цикл
    Ном=Ном+1;
    //Если ТипЗначения(Докум.Товар) = 2 Тогда
    //Наименование = Докум.Товар;
    Таб1.ВывестиСекцию("Строка");
    КонецЦикла;
    Таб1.ВывестиСекцию("Подвал");
    Таб1.Опции(0, 0, 0, 0, "ОпцииПечатиПриказ", "ОкноПриказ");
    Таб1.ПовторятьПриПечатиСтроки( 15, 16 );
    Таб1.ТолькоПросмотр(1);
    Таб1.ПараметрыСтраницы(1,,,,,,,,,1,,);
    Таб1.Показать("Печать Справка","");
    КонецПроцедуры
    //******************************************************************************
    // Предопределенная процедура
    Процедура ПриОткрытии()
    Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
    Докум      = Форма.Параметр.Получить("Контекст");
    Устройство = Форма.Параметр.Получить("Устройство");
    КолвоКопий = Форма.Параметр.Получить("КоличествоКопий");
    Печать(Докум, Устройство, КолвоКопий);
    Статусвозврата(0);
    Возврат;
    КонецЕсли;
    КонецПроцедуры // ПриОткрытии()
    //******************************************************************************
    Процедура Выполнить()
    Г=0;
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Справка");
    СФ=СоздатьОбъект("Документ.Приказ");
    СФ.ВыбратьДокументы(НачДата,КонДата);
    Пока СФ.ПолучитьДокумент()=1 Цикл
    Если СФ.Вид()<>"Справка" Тогда
    Продолжить;
    КонецЕсли;
    Г=Г+1;
    Если Г>1 Тогда
    Таб.НоваяСтраница();
    КонецЕсли;
    Если СФ.КоличествоСтрок()>4 Тогда
    Сообщить("Внимание! В "+СокрЛП(СФ.ТекущийДокумент())+" слишком много строк, выведен на печать отдельно!");
    ПечатьСПовторением(СФ.ТекущийДокумент());
    Иначе
    Печать(СФ.ТекущийДокумент());
    КонецЕсли;
    КонецЦикла;
    Таб.Опции(0, 0, 0, 0, "ОпцииПечатиСправка", "ОкноСправка	//Таб.ПовторятьПриПечатиСтроки( 15, 15 );
    Таб.ТолькоПросмотр(1);
    Таб.ПараметрыСтраницы(1,,,,,,,,,1,,);
    Таб.Показать("Печать Справка","");
    КонецПроцедуры
    //******************************************************************************
    </span>
    
    </FONT></FONT></pre>
    Спасибо. Я Написал вот такой код. Табличная часть и документы за период выводятся на печать как надо, но я немогу вывести на печать нетабличные реквизиты. Как их прописать. Чтобы выводилась дата и все остальное.
    [/quote]
  3. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    К реквизитам шапки обращаться абсолютно так же как и к реквизитам т.части т.е.

    Док.НомерДок - номер документа
    Док.ДатаДок - дата документа
    Док.ИмяРеквизита - выведет реквизит который укажете

    И момент - переименуйте процедуру Выполнить - правила дурного тона называть процедуры СТАНДАРТНЫМИ именами методов. Отучивайтесь сразу иначе потом м.б. проблемы
  4. TopicStarter Overlay
    doniel
    Offline

    doniel Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    26
    Вставил реквизит Срок
    Код:
    Процедура Печать(Докум, Устройство=0, КолвоКопий=1)
    СтатусВозврата(0);
    Таб.ВывестиСекцию("Шапка");          
    Срок = Докум.Срок;
    Докум.ВыбратьСтроки();
    
    
    В таблице в ячейке <Срок>, стоит Тип-Выражение. Но при печати на принтер пусто.
    Если можно пример на реквизите Дата и т.д. Спасибо.
    [/quote]
  5. TopicStarter Overlay
    doniel
    Offline

    doniel Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    26
    Нашел сам ответ. Прописал в ячейке <Докум.Срок> и все заработало. Спасибо еще раз.
  6. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
  7. TopicStarter Overlay
    doniel
    Offline

    doniel Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    26
    Все реквизиты выводит, а вот дату не хочет.
    <[СокрЛ(Докум.НомерДок)] от [?(ДатаЧисло(ДатаДок)<10,"0","")+Формат(ДатаДок ,"Д ДДММММГГГГ")]> НомерДок выводит, а Дату нет. В чем ошибка?
  8. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Код:
    [СокрЛ(Докум.НомерДок)] от [Формат(Докум.ДатаДок ,"ДДДММММГГГГ")]
    
    
    
    А вы забыли указать объект в дате (Докум)
  9. TopicStarter Overlay
    doniel
    Offline

    doniel Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    26

    Точно. Спасибо.
Похожие темы
  1. Benjamin
    Ответов:
    2
    Просмотров:
    4.025
  2. Black Cat
    Ответов:
    5
    Просмотров:
    969
  3. Alive
    Ответов:
    9
    Просмотров:
    1.309
  4. doniel
    Ответов:
    3
    Просмотров:
    738
  5. veis-d
    Ответов:
    1
    Просмотров:
    456
Загрузка...

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