• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы _N_E_O_
  • Дата начала
Статус
Закрыто для дальнейших ответов.
N

_N_E_O_

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

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

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

vitfil

Какого рода помощь ожидается? Если мне не изменяет склероз, в ТиС есть групповая печать документов.
 
L

LSH

Для: _N_E_O_

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

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

_N_E_O_

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

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

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




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


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

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

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



Как быть?
 
B

b00tch

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

kaa

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

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

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

_N_E_O_

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

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


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

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

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

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

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


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

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


КонецЦикла;

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

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





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

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

........

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

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


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

В чем дело интересно?
 
B

b00tch

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

_N_E_O_

Не, не!

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

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

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

Почему?
 
B

b00tch

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

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

_N_E_O_

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

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

b00tch

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

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

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

_N_E_O_

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

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

b00tch

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

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

_N_E_O_

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

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

b00tch

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

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

_N_E_O_

Спасибо, НО:

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

_N_E_O_

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

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

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

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

Теперь все нормально, спасибо всем, кто участвовал!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!