Группа: Пользователи
Сообщений: 84
Спасибо сказали: 2 раз
Рейтинг: 0
Здравствуйте, нужно сделать обработку которая печатает, командировочные накладные с/без просмотра печати, с указанием периода
//******************************************* Процедура Сформировать() Перем Запрос, ТекстЗапроса; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ДокС по ДокПо; |КУ = Документ.КомандировочноеУдостоверение.ТекущийДокумент; |Группировка КУ; |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли;
Здравствуйте, нужно сделать обработку которая печатает, командировочные накладные с/без просмотра печати, с указанием периода тока при выборе периода мне командировочные накладные открываются почему то а не печатаются. что мне нужно исправить?
Это ж не 8-ка Вариант 1 так как ты хочешь. Но при открытии командировки из обработки передавать параметр проверять его и вызывать процедуру печати. Собственно ты и пытаешся. Это сделать. А в командировке проверяешь при открытии? Но что будет сам подумай Штук тридцать командировок например откроются.
ЗЫ Наверно в командировке не хватает.
ПриОткрытии() .... П=Форма.Параметр; Если ПустоеЗначение(П)=0 Тогда Если ТипЗначенияСтр(П)="СписокЗначений" Тогда Действие=П.Получить("Действие"); Если Действие="Печать" Тогда Печать(); Форма.Закрыть(0); Возврат; КонецЕсли; КонецЕсли; КонецЕсли; ....
Вариант 2 перетащить печатную форму и процедуру печати в свою обработку.
Группа: Пользователи
Сообщений: 84
Спасибо сказали: 2 раз
Рейтинг: 0
Цитата
Это ж не 8-ка Вариант 1 так как ты хочешь. Но при открытии командировки из обработки передавать параметр проверять его и вызывать процедуру печати. Собственно ты и пытаешся. Это сделать. А в командировке проверяешь при открытии? Но что будет сам подумай Штук тридцать командировок например откроются.
ЗЫ Наверно в командировке не хватает.
ПриОткрытии() .... П=Форма.Параметр; Если ПустоеЗначение(П)=0 Тогда Если ТипЗначенияСтр(П)="СписокЗначений" Тогда Действие=П.Получить("Действие"); Если Действие="Печать" Тогда Печать(); Форма.Закрыть(0); Возврат; КонецЕсли; КонецЕсли; КонецЕсли; ....
Вариант 2 перетащить печатную форму и процедуру печати в свою обработку.
гм а куда мне ее вставить вот в форме командировке есть печать
ИмяФайлаПечатнойФормы = КаталогИБ()+"ExtForms\PrnForms\"+ПрефиксФайла+СуффиксФайла+".mxl"; Если ФС.СуществуетФайл(ИмяФайлаПечатнойФормы) = 1 Тогда Таб.ИсходнаяТаблица(ИмяФайлаПечатнойФормы); Иначе Таб.ИсходнаяТаблица(ПрефиксТаблицы+СуффиксТаблицы); КонецЕсли;
вот когда я ее добаляю как мне процедуру печати вызвать? \"Печать ()\", но после этого 1с начинает ругаться на синтаксис выделено жирным, ругаеться что переменная не определена, удалил эти строки, грит не найдена таблица, создал в модуле таблицу, пишет не верное имя таблицы, вот. А вот так эта другая обработка Податковых накладных выбор периода и печать, это не я делал:
//******************************************* Процедура Сформировать() Перем Запрос, ТекстЗапроса; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ДокС по ДокПо; |НН = Документ.НалоговаяНакладная.ТекущийДокумент; |Группировка НН; |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли;
П=Форма.Параметр; Если ПустоеЗначение(П)=0 Тогда Если ТипЗначенияСтр(П)="СписокЗначений" Тогда Действие=П.Получить("Действие"); Если Действие="Печать" Тогда Печать(); Форма.Закрыть(0); Возврат; КонецЕсли; КонецЕсли; КонецЕсли;
что Вы писали в процедуры при открытии, и вот мне заругалось на то что в таблице нет шапки, как мне таблицу с Командировочных скопировать в мою обработку, а то я информацию скопировал а шапку у меня не получилось сделать, подскажите пожалуста
1С 7.7 7.70.027 Бух. учот релиз 7.70.272. Я тока учусь, албанский знаю но плохо.
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0
Можно процедуру печати из документа вставить в обработку. Поменять обращения к реквизитам. Плюс - не надо ничего менять в конфигурации. Даже запускать можно из внешнего файла. Если это не устраивает - возьмите ТиС, посмотрите БыструюПродажу. Там по одному доку формируется, проводится и печатается полный комплект - Счет, РН, НН. Все сделано довольно аккуратно.
Группа: Пользователи
Сообщений: 84
Спасибо сказали: 2 раз
Рейтинг: 0
Цитата(Zaval @ 24.03.10, 15:11)
Можно процедуру печати из документа вставить в обработку. Поменять обращения к реквизитам. Плюс - не надо ничего менять в конфигурации. Даже запускать можно из внешнего файла. Если это не устраивает - возьмите ТиС, посмотрите БыструюПродажу. Там по одному доку формируется, проводится и печатается полный комплект - Счет, РН, НН. Все сделано довольно аккуратно.
мне не нужно делать из внешнего файла я его уже сделал, мне нужно обработку добавить в "сервис" и что бы от туда запускать обработку а не из внешнего файла.
1С 7.7 7.70.027 Бух. учот релиз 7.70.272. Я тока учусь, албанский знаю но плохо.
А может проблема в том что процедура "ПриОткрытии()" в КУ раньше чем "Печать()"? Для изначального варианта. Чтоб печаталось из обработки.
Добавить в документе Командировочное удостоверение в процедуру приоткрытии() Это:
П=Форма.Параметр; Если ПустоеЗначение(П)=0 Тогда Если ТипЗначенияСтр(П)="СписокЗначений" Тогда Действие=П.Получить("Действие"); Если Действие="ПЕЧАТЬ" Тогда Печать(); Форма.Закрыть(0); Возврат; КонецЕсли; КонецЕсли; КонецЕсли;
Процедуру ПриОткрытии() в КУ перенсти под печать() ИЛИ Так даже правильней
Группа: Пользователи
Сообщений: 84
Спасибо сказали: 2 раз
Рейтинг: 0
вообщем сделал вот так:
//******************************************* Процедура Сформировать() Перем Запрос, ТекстЗапроса; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ДокС по ДокПо; |КУ = Документ.КомандировочноеУдостоверение.ТекущийДокумент; |Группировка КУ; |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли;
выбираю период с какого по какой открыть документы нажимаю выполнить и он их открывает, по чему?я думаю что нужно в процедуре сформировать в строке "ОткрытьФорму(Запрос.КУ,спПарам,1);" сделать не открыть форму а напечатать форму есть такой оператор?2 вопрос как мне сделать вариант выбора печати тоесть если флаг стоит на предварительном просмотре то открывать документ на печать, если нет сразу распечатать
Причина редактирования: Для отображения кода используйте соответсвеющий тег
1С 7.7 7.70.027 Бух. учот релиз 7.70.272. Я тока учусь, албанский знаю но плохо.
Группа: Местный
Сообщений: 237
Спасибо сказали: 47 раз
Рейтинг: 42
Вот тебе пример из комплексной док. Счет-фактура
Процедура ПриОткрытии() //Предопределенная процедура Если ПустоеЗначение(Форма.Параметр)=0 Тогда Если ТипЗначенияСтр(Форма.Параметр)="Строка" Тогда Если ВРег(Форма.Параметр)="БЫСТРАЯПЕЧАТЬ" Тогда Печать(1); // 1- это быстрая печать СтатусВозврата(0); Возврат; КонецЕсли; КонецЕсли; КонецЕсли;
Причина редактирования: такая же как и в предыдущем посте
Слушай ну нельзя так как ты хочешь. Можно только передать параметр в тот документ котрый ты хочешь напечатать. А в этом документе приоткрытии() смотреть было что то передано или нет. Я уже третий раз тебе об этом говорю и alex1c Больше не буду....
Группа: Пользователи
Сообщений: 84
Спасибо сказали: 2 раз
Рейтинг: 0
я понял почему у меня открывается в моей обработке а не печатается нужно было в документе "Командировочные удостоверения", что бы прояснить ситуацию нужно было еще в документ Командировочные удостоверение ставить текст программы:
// Для автоматической печати НН за период //============================ Процедура Печать(ллСТР=4,прПросм = 0) Далее
//============================ Процедура ПриОткрытии() //Меренков 7-07-06 // Для автоматической печати НН за период ПарамВыз = Форма.Параметр; Если ТипЗначенияСтр(ПарамВыз)="СписокЗначений" Тогда Если ПарамВыз.Получить("Что")="ПЕЧАТЬ" Тогда //Сообщить("Мы вызвали для печати"); лКопия = ПарамВыз.Получить("Страница"); лПросм = ПарамВыз.Получить("Метод"); Печать(лКопия,лПросм); СтатусВозврата(0); КонецЕсли; КонецЕсли; // Но потом выдает ошибку процедура Печать() не найдена, значит я перенёс процедуру печать поставил перед вызовом этой процедуры, и мне написало вот такую ошибку "Процедура или функция с указанным именем объявлена, но не определена в текущем модуле (Печать)" что это может быть?
1С 7.7 7.70.027 Бух. учот релиз 7.70.272. Я тока учусь, албанский знаю но плохо.
Группа: Пользователи
Сообщений: 84
Спасибо сказали: 2 раз
Рейтинг: 0
у меня все получилось все печатает, только есть одно но при установке флага "без предварительного просмотра" 1с все равно открывает предварительный просмотр и печатает сразу, а если не ставить флаг "без предварительно просмотра" то только открывает предварительный просмотр, но не печатает, как мне найти траблу что бы печатало без предварительно просмотра?. ЗЫ код Вам в студию?
1С 7.7 7.70.027 Бух. учот релиз 7.70.272. Я тока учусь, албанский знаю но плохо.
Группа: Пользователи
Сообщений: 84
Спасибо сказали: 2 раз
Рейтинг: 0
Цитата(Batchir @ 30.03.10, 13:28)
Если стоит без просмотра то не вызывать команду Показать() для таблицы, вроде так.
Все спасибо нашол исправил), все работает так как надо, если кому не ясно могу подсказать. Всем Большое СПАСИБО, извените если что не так я не програмер...Спасибо за понимание. ЗЫ. темку можно закрывать.
1С 7.7 7.70.027 Бух. учот релиз 7.70.272. Я тока учусь, албанский знаю но плохо.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!