Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/213: Рейтинг темы: голосов - 213, средняя оценка - 4.60
_m_y_O_
0 / 0 / 0
Регистрация: 22.09.2007
Сообщений: 9
1

<<<

25.09.2007, 11:29. Просмотров 38440. Ответов 17
Метки нет (Все метки)

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

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

Не могли бы вы помочь с данной проблемкой?
0
vytfyt
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
25.09.2007, 11:30 2
Какого рода помощь ожидается? Если мне не изменяет склероз, в ТиС есть групповая печать документов.
0
tsh
0 / 0 / 0
Регистрация: 10.07.2017
Сообщений: 350
25.09.2007, 14:49 3
Для: _N_E_O_

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

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

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

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




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


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

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

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



Как быть?
0
b00tsh
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 170
25.09.2007, 15:40 5
Печать(глТаблица); - ты пытаешься вызвать процедуру Печать() из модуля формы дока, а не из модуля обработки... в которой, по всей видимости, нет параметров...
0
Koo
0 / 0 / 0
Регистрация: 22.04.2010
Сообщений: 38
26.09.2007, 09:27 6
Процедуру печать перенисти в глобал

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

Да иноверно стоит переименовать процедуру ВОИЗБЕЖАНИИ
0
_m_y_O_
0 / 0 / 0
Регистрация: 22.09.2007
Сообщений: 9
26.09.2007, 11:19 7
Короче, товарищщи!

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


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

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

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

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

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


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

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


КонецЦикла;

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

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





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

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

........

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

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


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

В чем дело интересно?
0
b00tsh
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 170
26.09.2007, 14:34 8
Если Форма.Параметр="ПоКнопкеПечать" Тогда
0
_m_y_O_
0 / 0 / 0
Регистрация: 22.09.2007
Сообщений: 9
26.09.2007, 14:37 9
Не, не!

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

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

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

Почему?
0
b00tsh
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 170
26.09.2007, 14:43 10
процедуру Печать() в студию!.. (из формы дока)

и ваще, отладчик юзай...
0
_m_y_O_
0 / 0 / 0
Регистрация: 22.09.2007
Сообщений: 9
26.09.2007, 14:55 11
Короче, не получается!

...не получается у меня Печать() в студию делать!
0
b00tsh
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 170
26.09.2007, 16:33 12
уж если "Печать() в студию" не получаецц0, то на принтер тем более не получицц0...

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

ЗЫ.. попытка намбер ту, последняя:
покажи, пожалуйста код процедцры Печать();, располагающейся в модуле формы документа... "в студию" можно не надо, просто здесь выложи...
0
_m_y_O_
0 / 0 / 0
Регистрация: 22.09.2007
Сообщений: 9
26.09.2007, 16:35 13
Процедура Печать()
НомерДокПечатнойФормы = глПреобразоватьНомерДок(НомерДок, 0, 0);

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

и убери
очиститьокносообщений();
0
_m_y_O_
0 / 0 / 0
Регистрация: 22.09.2007
Сообщений: 9
26.09.2007, 17:45 15
Я вроде как решил проблемку...
теперь другая проблмка:

1)Как сделать, чтоб таблица не открывалась?
2)Как сделать ландшафтную ориентацую? Вроде как все правильно написано: Таб.ПараметрыСтраницы(2,,,10,0,0,0,,,,,);
0
b00tsh
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 170
26.09.2007, 19:16 16
1)Напечатать(<?>);
Синтаксис:
Напечатать(<Флаг>)
Назначение:
Напечатать таблицу без предварительного просмотра (печать без открытия окна редактирования).
Параметры:
<Флаг> - необязательный параметр. Режим запроса диалога печати: 1 - запрашивать диалог печати (по умолчанию), 0 - не запрашивать.

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

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

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

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

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

Теперь все нормально, спасибо всем, кто участвовал!
0
28.09.2007, 16:00
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru