8.х Нужно сделать так что бы все расходные печатались на одном листе, а уменя все отдельности

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Шурик_1985, 12 май 2011.

  1. TopicStarter Overlay
    Шурик_1985
    Offline

    Шурик_1985

    Регистрация:
    12 май 2011
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Объясните чайнику пожалуйста:angry:
    В Обратки создал ПечатьРасходныхНакладных
    имееть реквизит ДатаНачала и ДатаОкончание и форма
    в ДОКУМЕНТА СОЗДАЛ: РасходнаяНакладная форме документа написал след.процедуру:
    Код:
    Процедура Печать()Экспорт //вызывает печать из других объектов 
    //{{_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ(Печать) 
    // Данный фрагмент построен конструктором. 
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! 
    ТабДок = Новый ТабличныйДокумент; 
    Макет = Документы.РасходнаяНакладная.ПолучитьМакет("Печать"); 
    // Заголовок 
    Область = Макет.ПолучитьОбласть("Заголовок"); 
    ТабДок.Вывести(Область); 
    // Шапка 
    Шапка = Макет.ПолучитьОбласть("Шапка"); 
    Шапка.Параметры.Заполнить(ЭтотОбъект); 
    ТабДок.Вывести(Шапка); 
    // Товары 
    Область = Макет.ПолучитьОбласть("ТоварыШапка"); 
    ТабДок.Вывести(Область); 
    ОбластьТовары = Макет.ПолучитьОбласть("Товары"); 
    Для Каждого ТекСтрокаТовары Из Товары Цикл 
    ОбластьТовары.Параметры.Заполнить(ТекСтрокаТовары); 
    ТабДок.Вывести(ОбластьТовары); 
    КонецЦикла; 
    // Услуги 
    Область = Макет.ПолучитьОбласть("УслугиШапка"); 
    ТабДок.Вывести(Область); 
    ОбластьУслуги = Макет.ПолучитьОбласть("Услуги"); 
    Для Каждого ТекСтрокаУслуги Из Услуги Цикл 
    ОбластьУслуги.Параметры.Заполнить(ТекСтрокаУслуги); 
    ТабДок.Вывести(ОбластьУслуги); 
    КонецЦикла; 
    // Подвал 
    Подвал = Макет.ПолучитьОбласть("Подвал"); 
    Подвал.Параметры.Заполнить(ЭтотОбъект); 
    ТабДок.Вывести(Подвал); 
    
    ТабДок.ОтображатьСетку = Ложь; 
    ТабДок.Защита = Истина; 
    ТабДок.ТолькоПросмотр = Истина; 
    ТабДок.ОтображатьЗаголовки = Ложь; 
    ТабДок.Показать(); 
    //}}_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ 
    КонецПроцедуры 
    
    А в Обратотки кнопки "Выполнит"написал след процедуру: 
    Процедура КнопкаВыполнитьНажатие(Кнопка) 
    // Нажание кнопки выполнит 
    // интервал 
    Выборка = Документы.РасходнаяНакладная.Выбрать(ДатаНачала, КонецДня(ДатаОкончания)); 
    Пока Выборка.Следующий() Цикл //Организовать цикл по выбранной 
    Выборка.ПолучитьОбъект().Печать(); // Вызвать печать 
    КонецЦикла; 
    КонецПроцедуры 
    
    теперь мне нужно что бы при нажатие кнопки "Выполнит"
    область печати выходило на одном бланке. т.е все расходные накладные за весть период выводилась на одном листе.

    Вложения:

  2. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    вроде как так :

    Код:
    Процедура Печать(ТабДок)Экспорт
    Макет = Документы.РасходнаяНакладная.ПолучитьМакет("Печать"); 
    Область = Макет.ПолучитьОбласть("Заголовок"); 
    ТабДок.Вывести(Область); 
    Шапка = Макет.ПолучитьОбласть("Шапка"); 
    Шапка.Параметры.Заполнить(ЭтотОбъект); 
    ТабДок.Вывести(Шапка); 
    Область = Макет.ПолучитьОбласть("ТоварыШапка"); 
    ТабДок.Вывести(Область); 
    ОбластьТовары = Макет.ПолучитьОбласть("Товары"); 
    Для Каждого ТекСтрокаТовары Из Товары Цикл 
    ОбластьТовары.Параметры.Заполнить(ТекСтрокаТовары); 
    ТабДок.Вывести(ОбластьТовары); 
    КонецЦикла; 
    Область = Макет.ПолучитьОбласть("УслугиШапка"); 
    ТабДок.Вывести(Область); 
    ОбластьУслуги = Макет.ПолучитьОбласть("Услуги"); 
    Для Каждого ТекСтрокаУслуги Из Услуги Цикл 
    ОбластьУслуги.Параметры.Заполнить(ТекСтрокаУслуги); 
    ТабДок.Вывести(ОбластьУслуги); 
    КонецЦикла; 
    Подвал = Макет.ПолучитьОбласть("Подвал"); 
    Подвал.Параметры.Заполнить(ЭтотОбъект); 
    ТабДок.Вывести(Подвал); 
    КонецПроцедуры 
    
    
    Процедура КнопкаВыполнитьНажатие(Кнопка) 
    ТабДок = Новый ТабличныйДокумент; 
    Выборка = Документы.РасходнаяНакладная.Выбрать(ДатаНачала, КонецДня(ДатаОкончания)); 
    Пока Выборка.Следующий() Цикл
    Выборка.ПолучитьОбъект().Печать(ТабДок ); 
    КонецЦикла; 
    ТабДок.ОтображатьСетку = Ложь; 
    ТабДок.Защита = Истина; 
    ТабДок.ТолькоПросмотр = Истина; 
    ТабДок.ОтображатьЗаголовки = Ложь; 
    ТабДок.Показать(); 
    КонецПроцедуры
    
  3. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Только думаю
    Код:
    ТабДок.Показать(); 
    
    
    тоже из процедуры убрать
  4. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    Не..не надо...это же у него вроде как кнопка...а не внешняя печатная форма
  5. TopicStarter Overlay
    Шурик_1985
    Offline

    Шурик_1985

    Регистрация:
    12 май 2011
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Теперь выдает ошибку в форме объекта Обработки
    {Обработка.ПечатьРасходныхНакладных.Форма.Форма(6)}: Недостаточно фактических параметров
    Выборка.ПолучитьОбъект().Печать(); // Вызвать печать

    Там такая процедура:Процедура КнопкаВыполнитьНажатие(Кнопка)
    // Нажание кнопки выполнит
    // интервал
    Выборка = Документы.РасходнаяНакладная.Выбрать(ДатаНачала, КонецДня(ДатаОкончания));
    Пока Выборка.Следующий() Цикл //Организовать цикл по выбранной
    Выборка.ПолучитьОбъект().Печать(); // Вызвать печать
    КонецЦикла;
    КонецПроцедуры
  6. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    Тогда процедуру печать оставь как была раньше...а точ то я писал...
    назови ее
    Печать2()

    раз у тебя она еще в другом месте вызывается...

    Либо подправь :

    Процедура КнопкаВыполнитьНажатие(Кнопка)
    ТабДок = Новый ТабличныйДокумент;
    Выборка = Документы.РасходнаяНакладная.Выбрать(ДатаНачала, КонецДня(ДатаОкончания));
    Пока Выборка.Следующий() Цикл //Организовать цикл по выбранной
    Выборка.ПолучитьОбъект().Печать(ТабДок); // Вызвать печать
    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Истина;
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.Показать();
    КонецЦикла;
    КонецПроцедуры
  7. TopicStarter Overlay
    Шурик_1985
    Offline

    Шурик_1985

    Регистрация:
    12 май 2011
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Всем большое спасибо все получилось

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