<<<<Как отправить на печать сразу несколько документов>

Тема в разделе "1C и всё что с ней связано", создана пользователем _N_E_O_, 26 сен 2007.

Статус темы:
Закрыта.
  1. _N_E_O_

    _N_E_O_ Гость

    Здравствуйте, великие программеры!!!

    Я никак не могу отправить на печать сразу несколько документов!!! А именно приходный/расходный ордера...за данный период...

    Не могли бы вы помочь с данной проблемкой?
     
  2. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Какого рода помощь ожидается? Если мне не изменяет склероз, в ТиС есть групповая печать документов.
     
  3. LSH

    LSH Гость

    Для: _N_E_O_

    Процедура объекта "Таблица":

    Напечатать(<?>);
    Синтаксис:
    Напечатать(<Флаг>)
    Назначение:
    Напечатать таблицу без предварительного просмотра (печать без открытия окна редактирования).
    Параметры:
    <Флаг> - необязательный параметр. Режим запроса диалога печати: 1 - запрашивать диалог печати (по умолчанию), 0 - не запрашивать.
     
  4. _N_E_O_

    _N_E_O_ Гость

    Я вот попробовал написать обработку, но печатать не получается....

    Процедура печати в модуле обработки:
    ...........

    Процедура Печать(Форма)
    // Печать скопом всех требований за период журнала...
    Док = СоздатьОбъект("Документ");
    Док.ИспользоватьЖурнал("касса");
    глТаблица = СоздатьОбъект("Таблица");
    Док.ВыбратьДокументы(дата1,дата2);
    Кол = 0;
    Пока Док.ПолучитьДокумент() = 1 Цикл
    Кол = Кол+1;
    Если Док.Вид() <> "приходныйордер" Тогда Продолжить; КонецЕсли;
    Форма1 = Форма;
    ОткрытьФорму(Док.ТекущийДокумент(),Форма1);
    глТаблица.НоваяСтраница();
    Если Кол >= 50 Тогда
    Если Вопрос("Напечатано 50 требований, прервать?", 4) = 6 Тогда
    Прервать;
    Иначе
    Кол = 0;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    глТаблица.Опции(0,0,0,0,"ОпцииПечатиПлПор","ПараметрыОкнаПлПор");
    глТаблица.ТолькоПросмотр(1);
    глТаблица.Показать("Печать ордеров","");
    КонецПроцедуры




    Когда я в доках\расходныйордер


    Процедура ПриОткрытии()
    ........
    ИсхТаб = Форма.Параметр;
    Если СокрЛП(ИсхТаб) = "" Тогда
    ИсхТаб = "Таблица3";
    КонецЕсли;
    глТаблица.ИсходнаяТаблица(ИсхТаб);
    Печать(глТаблица);
    Форма.Закрыть(0);
    Возврат;
    КонецПроцедуры

    Выдает следующую ошибку(при синт. конроле)

    Печать(<<?>>глТаблица);
    {Документ.РасходныйОрдер.Форма.Модуль(399)}: Слишком много фактических параметров
    При проверке модуля обнаружены синтаксические ошибки!



    Как быть?
     
  5. b00tch

    b00tch Гость

    Печать(глТаблица); - ты пытаешься вызвать процедуру Печать() из модуля формы дока, а не из модуля обработки... в которой, по всей видимости, нет параметров...
     
  6. kaa

    kaa Гость

    Процедуру печать перенисти в глобал

    Процедура Печать(ХХХ) Экспорт

    Да иноверно стоит переименовать процедуру ВОИЗБЕЖАНИИ
     
  7. _N_E_O_

    _N_E_O_ Гость

    Короче, товарищщи!

    Я вот в обработке написал


    Процедура Выполнить()

    Если дата1>дата2 Тогда
    предупреждение ("Начальная дата не может превышать конечную!!!
    |Выберите период!")
    КонецЕсли;

    если приход=1 тогда
    док=создатьобъект("документ.приходныйордер")

    иначе док=создатьобъект("документ.расходныйордер")
    конецесли;

    m=0 ;
    Док.ВыбратьДокументы(дата1,дата2);
    Пока Док.ПолучитьДокумент()=1 Цикл


    ОткрытьФормуМодально(Док,"ПоКнопкеПечать");
    //Вот здесь, по-моему, что-то должно быть....?

    очиститьокносообщений();
    сообщить("Отправлено на печать "+m+" документов");
    m=m+1;


    КонецЦикла;

    КонецПроцедуры

    дата1=начмесяца(рабочаядата());
    дата2=конмесяца(рабочаядата());





    а в документы/расходный и документы/приходный приоткрытии() добавил

    Процедура ПриОткрытии

    ........

    Если ПустоеЗначение(Форма.Параметр)=0 Тогда
    Если Форма.Параметр="Печать" Тогда
    номертекущейформы=1;
    Печать();
    СтатусВозврата(0);
    КонецЕсли;
    КонецЕсли;

    КонецПроцедуры


    Проблема заключается в следующем: Не печатает, хотя и ошибок ни каких!

    В чем дело интересно?
     
  8. b00tch

    b00tch Гость

    Если Форма.Параметр="ПоКнопкеПечать" Тогда
     
  9. _N_E_O_

    _N_E_O_ Гость

    Не, не!

    Это правильно, т.е. просто я забыл поменять! Эсли даже

    Если Форма.Параметр="ПоКнопкеПечать" Тогда

    Даже при этом не правильно!

    Почему?
     
  10. b00tch

    b00tch Гость

    процедуру Печать() в студию!.. (из формы дока)

    и ваще, отладчик юзай...
     
  11. _N_E_O_

    _N_E_O_ Гость

    Короче, не получается!

    ...не получается у меня Печать() в студию делать!
     
  12. b00tch

    b00tch Гость

    уж если "Печать() в студию" не получаецц0, то на принтер тем более не получицц0...

    сорри за оффтоп...

    ЗЫ.. попытка намбер ту, последняя:
    покажи, пожалуйста код процедцры Печать();, располагающейся в модуле формы документа... "в студию" можно не надо, просто здесь выложи...
     
  13. _N_E_O_

    _N_E_O_ Гость

    Процедура Печать()
    НомерДокПечатнойФормы = глПреобразоватьНомерДок(НомерДок, 0, 0);

    Таб = СоздатьОбъект("Таблица");
    ИмяФайлаПечатнойФормы = КаталогИБ()+"ExtForms\PrnForms\1cbro.mxl";
    Если ФС.СуществуетФайл(ИмяФайлаПечатнойФормы) = 1 Тогда
    Таб.ИсходнаяТаблица(ИмяФайлаПечатнойФормы);
    Иначе
    Таб.ИсходнаяТаблица("Таблица");
    КонецЕсли;
    Если Валютный = 2 Тогда
    Если ПустоеЗначение(Валюта.ИмяФайлаПрописи) = 1 Тогда
    Предупреждение("Для выбранной валюты не указан файл прописи.");
    ИначеЕсли ФС.СуществуетФайл(КаталогИБ()+Валюта.ИмяФайлаПрописи) = 0 Тогда
    Предупреждение("Для выбранной валюты неверно указан файл прописи.");
    Иначе
    Пропись(КаталогИБ()+Валюта.ИмяФайлаПрописи);
    КонецЕсли;
    КонецЕсли;
    ПредставлениеГода = Лев(ДатаГод(ДатаДок),3);
    Таб.Вывести();
    Пропись("");
    Таб.Опции(0,0,0,0,"ОпцииПечатиРасходногоОрдера","ОкноРКО");
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Печать расходного кассового ордера","");
    КонецПроцедуры
     
  14. b00tch

    b00tch Гость

    а "Отправлено на печать "+m+" документов" выдает?
    если да, тогда поставь перед
    Печать();
    строку
    Сообщить("Печать "+НомерДок);

    и убери
    очиститьокносообщений();
     
  15. _N_E_O_

    _N_E_O_ Гость

    Я вроде как решил проблемку...
    теперь другая проблмка:

    1)Как сделать, чтоб таблица не открывалась?
    2)Как сделать ландшафтную ориентацую? Вроде как все правильно написано: Таб.ПараметрыСтраницы(2,,,10,0,0,0,,,,,);
     
  16. b00tch

    b00tch Гость

    1)Напечатать(<?>);
    Синтаксис:
    Напечатать(<Флаг>)
    Назначение:
    Напечатать таблицу без предварительного просмотра (печать без открытия окна редактирования).
    Параметры:
    <Флаг> - необязательный параметр. Режим запроса диалога печати: 1 - запрашивать диалог печати (по умолчанию), 0 - не запрашивать.

    2)ПараметрыСтраницы(<?>,,,,,,,,,,,);
    Синтаксис:
    ПараметрыСтраницы(<Ориентация>,<Масштаб>,<РежимПечатиКопий>,<ПолеСлева>,<ПолеСправа>,<ПолеСверху>,<ПолеСнизу>,
    <КолонтитулСверху>,<КолонтитулСнизу>,<Автомасштаб>,<ФлагЧБПечати>,<ИмяПринтера>)
    Назначение:
    Установить параметры страницы.
    Возвращаемого значения нет.
    Параметры:
    <Ориентация> - необязательный параметр. Ориентация вывода на печать: число: 1 - портрет; 2 - ландшафт.
    - вызывать после Таб.Опции()
     
  17. _N_E_O_

    _N_E_O_ Гость

    Спасибо, НО:

    Уменя так и стоит!
    .....
    Таб.Опции(0,0,0,0,"ОпцииПечатиПриходногоОрдера","ОкноПКО");
    Таб.ПараметрыСтраницы(1,,,10,0,0,0,,,1,,);
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Печать приходного кассового ордера","");
    таб.напечатать(0);
    ......
    Быть может, это где-то в других настройеах? (Ну там типа в глобалке, или эщо где-нить...?)
     
  18. _N_E_O_

    _N_E_O_ Гость

    о-о-о-о--о-оо, я решил проблему!!!

    Я рад до ушей!!!

    Оказалось следующее:

    Таб.Опции(0,0,0,0,"ОпцииПечатиПриходногоОрдера","ОкноПКО");
    Таб.ПараметрыСтраницы(1,,,10,0,0,0,,,1,,);
    Таб.ТолькоПросмотр(1);
    //Таб.Показать("Печать приходного кассового ордера","");
    таб.напечатать(0);

    Теперь все нормально, спасибо всем, кто участвовал!
     
Загрузка...
Статус темы:
Закрыта.

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