Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Командировочное удостоверение , Обработка          
cRYSMAS Подменю пользователя
сообщение 24.03.10, 11:24
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 84
Спасибо сказали: 2 раз
Рейтинг: 0

Здравствуйте, нужно сделать обработку которая печатает, командировочные накладные с/без просмотра печати, с указанием периода
//*******************************************
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ДокС по ДокПо;
    |КУ = Документ.КомандировочноеУдостоверение.ТекущийДокумент;
    |Группировка КУ;
    |"//}}ЗАПРОС
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
  
    спПарам = СоздатьОбъект("СписокЗначений");
    спПарам.ДобавитьЗначение("ПЕЧАТЬ","Что");
    
    Пока Запрос.Группировка(1) = 1 Цикл
        ОткрытьФорму(Запрос.КУ,спПарам,1);
    КонецЦикла;
КонецПроцедуры
//*******************************************
// ======================================
Процедура ПриОткрытии()
    флКопии = 2;
    флПросм = 1;
    
КонецПроцедуры
тока при выборе периода мне командировочные накладные открываются почему то а не печатаются. что мне нужно исправить?


Signature
1С 7.7 7.70.027
Бух. учот релиз 7.70.272.
Я тока учусь, албанский знаю но плохо.

MATEVI Подменю пользователя
сообщение 24.03.10, 11:37
Сообщение #2

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 956 раз
Рейтинг: 0

Цитата(cRYSMAS @ 24.03.10, 12:24) *
Здравствуйте, нужно сделать обработку которая печатает, командировочные накладные с/без просмотра печати, с указанием периода
тока при выборе периода мне командировочные накладные открываются почему то а не печатаются. что мне нужно исправить?


Это ж не 8-ка smile.gif
Вариант 1 так как ты хочешь. Но при открытии командировки из обработки передавать параметр проверять его и вызывать процедуру печати.
Собственно ты и пытаешся. Это сделать. А в командировке проверяешь при открытии?
Но что будет сам подумай smile.gif Штук тридцать командировок например откроются.

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

Вариант 2 перетащить печатную форму и процедуру печати в свою обработку.

cRYSMAS Подменю пользователя
сообщение 24.03.10, 13:09
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 84
Спасибо сказали: 2 раз
Рейтинг: 0

Цитата
Это ж не 8-ка smile.gif
Вариант 1 так как ты хочешь. Но при открытии командировки из обработки передавать параметр проверять его и вызывать процедуру печати.
Собственно ты и пытаешся. Это сделать. А в командировке проверяешь при открытии?
Но что будет сам подумай smile.gif Штук тридцать командировок например откроются.

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

Вариант 2 перетащить печатную форму и процедуру печати в свою обработку.


гм а куда мне ее вставить вот в форме командировке есть печать
// ======================================
Процедура Печать()
    Таб = СоздатьОбъект("Таблица");
    СуффиксТаблицы = ?(Константа.ФормыНаУкраинском = Да, "_Укр", "");
    СуффиксФайла = ?(Константа.ФормыНаУкраинском = Да, "_ukr", "");
    ПрефиксТаблицы = "Таблица";
    ПрефиксФайла = "KomU";
    
    ИмяФайлаПечатнойФормы = КаталогИБ()+"ExtForms\PrnForms\"+ПрефиксФайла+СуффиксФайла+".mxl";
    Если ФС.СуществуетФайл(ИмяФайлаПечатнойФормы) = 1 Тогда
        Таб.ИсходнаяТаблица(ИмяФайлаПечатнойФормы);
    Иначе
        Таб.ИсходнаяТаблица(ПрефиксТаблицы+СуффиксТаблицы);
    КонецЕсли;
    
    глУстПропись(Гривня);
    
//    ПечДатаПриказа = Формат([b]ДатаПриказа[/b],"Д (0)ДДММММГГГГ");
//    ПечАдрес = ?(ПустаяСтрока(ФизАдрес)=0, СокрЛП(ФизАдрес), СокрЛП(Контрагент.ФизАдрес));

    Таб.ВывестиСекцию("Шапка");
//      [b]ВыбратьСтроки();[/b]    
//         Пока ПолучитьСтроку()=1 Цикл
//        Таб.ВывестиСекцию("Строка");
//    КонецЦикла;
    Таб.ВывестиСекцию("Дно");
    
    Таб.Защита(Константа.ФлагЗащитыТаблиц);
    Таб.ТолькоПросмотр(1);
    Таб.Опции(0,0,,);
    Таб.Показать("ПЕЧАТЬ: Командировочное удостоверение","");
    глУстПропись(Гривня);
КонецПроцедуры

вот когда я ее добаляю как мне процедуру печати вызвать? \"Печать ()\", но после этого 1с начинает ругаться на синтаксис выделено жирным, ругаеться что переменная не определена, удалил эти строки, грит не найдена таблица, создал в модуле таблицу, пишет не верное имя таблицы, вот. А вот так эта другая обработка Податковых накладных выбор периода и печать, это не я делал:
//*******************************************
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ДокС по ДокПо;
    |НН = Документ.НалоговаяНакладная.ТекущийДокумент;
    |Группировка НН;
    |"//}}ЗАПРОС
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
  
    спПарам = СоздатьОбъект("СписокЗначений");
    спПарам.ДобавитьЗначение("ПЕЧАТЬ","Что");
    спПарам.ДобавитьЗначение(флКопии,"Страница");
    спПарам.ДобавитьЗначение(флПросм,"Метод");
    
    Пока Запрос.Группировка(1) = 1 Цикл
        ОткрытьФорму(Запрос.НН,спПарам,1);
    КонецЦикла;
КонецПроцедуры




//*******************************************
// ======================================
Процедура ПриОткрытии()
    флКопии = 2;
    флПросм = 1;
    
КонецПроцедуры

И она работает а моя нет(

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


что Вы писали в процедуры при открытии, и вот мне заругалось на то что в таблице нет шапки, как мне таблицу с Командировочных скопировать в мою обработку, а то я информацию скопировал а шапку у меня не получилось сделать, подскажите пожалуста


Signature
1С 7.7 7.70.027
Бух. учот релиз 7.70.272.
Я тока учусь, албанский знаю но плохо.

Zaval Подменю пользователя
сообщение 24.03.10, 14:11
Сообщение #4

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Можно процедуру печати из документа вставить в обработку. Поменять обращения к реквизитам. Плюс - не надо ничего менять в конфигурации. Даже запускать можно из внешнего файла.
Если это не устраивает - возьмите ТиС, посмотрите БыструюПродажу. Там по одному доку формируется, проводится и печатается полный комплект - Счет, РН, НН. Все сделано довольно аккуратно.

cRYSMAS Подменю пользователя
сообщение 24.03.10, 14:55
Сообщение #5

Говорящий
***
Группа: Пользователи
Сообщений: 84
Спасибо сказали: 2 раз
Рейтинг: 0

Цитата(Zaval @ 24.03.10, 15:11) *
Можно процедуру печати из документа вставить в обработку. Поменять обращения к реквизитам. Плюс - не надо ничего менять в конфигурации. Даже запускать можно из внешнего файла.
Если это не устраивает - возьмите ТиС, посмотрите БыструюПродажу. Там по одному доку формируется, проводится и печатается полный комплект - Счет, РН, НН. Все сделано довольно аккуратно.

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


Signature
1С 7.7 7.70.027
Бух. учот релиз 7.70.272.
Я тока учусь, албанский знаю но плохо.

MATEVI Подменю пользователя
сообщение 24.03.10, 15:30
Сообщение #6

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 956 раз
Рейтинг: 0

А может проблема в том что процедура "ПриОткрытии()" в КУ раньше чем "Печать()"?
Для изначального варианта. Чтоб печаталось из обработки.

Добавить в документе Командировочное удостоверение в процедуру приоткрытии()
Это:

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


Процедуру ПриОткрытии() в КУ перенсти под печать()
ИЛИ Так даже правильней

Перед процедуруй ПриОткрытии() в КУ написать

Процедура Печать() Далее

cRYSMAS Подменю пользователя
сообщение 25.03.10, 8:07
Сообщение #7

Говорящий
***
Группа: Пользователи
Сообщений: 84
Спасибо сказали: 2 раз
Рейтинг: 0

вообщем сделал вот так:
//*******************************************
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ДокС по ДокПо;
    |КУ = Документ.КомандировочноеУдостоверение.ТекущийДокумент;
    |Группировка КУ;
    |"//}}ЗАПРОС
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
  
    спПарам = СоздатьОбъект("СписокЗначений");
    спПарам.ДобавитьЗначение("ПЕЧАТЬ", "Что");
    спПарам.ДобавитьЗначение(флКопии,"страница");
    спПарам.ДобавитьЗначение(флПросм,"Метод");
    
    Пока Запрос.Группировка(1) = 1 Цикл
        ОткрытьФорму(Запрос.КУ,спПарам,1);
    КонецЦикла;
КонецПроцедуры

//*******************************************
// ======================================
Процедура ПриОткрытии()
    флКопии = 2;
    флПросм = 1;
КонецПроцедуры

выбираю период с какого по какой открыть документы нажимаю выполнить и он их открывает, по чему?я думаю что нужно в процедуре сформировать в строке "ОткрытьФорму(Запрос.КУ,спПарам,1);" сделать не открыть форму а напечатать форму есть такой оператор?2 вопрос как мне сделать вариант выбора печати тоесть если флаг стоит на предварительном просмотре то открывать документ на печать, если нет сразу распечатать
Причина редактирования: Для отображения кода используйте соответсвеющий тег


Signature
1С 7.7 7.70.027
Бух. учот релиз 7.70.272.
Я тока учусь, албанский знаю но плохо.

alex1c Подменю пользователя
сообщение 25.03.10, 15:11
Сообщение #8

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 235
Спасибо сказали: 45 раз
Рейтинг: 40

Вот тебе пример из комплексной док. Счет-фактура
Процедура ПриОткрытии() //Предопределенная процедура
    Если ПустоеЗначение(Форма.Параметр)=0 Тогда
                Если ТипЗначенияСтр(Форма.Параметр)="Строка" Тогда
                        Если ВРег(Форма.Параметр)="БЫСТРАЯПЕЧАТЬ" Тогда
                                Печать(1); // 1- это быстрая печать
                                СтатусВозврата(0);
                                Возврат;
                        КонецЕсли;    
                КонецЕсли;    
        КонецЕсли;
Причина редактирования: такая же как и в предыдущем посте

MATEVI Подменю пользователя
сообщение 25.03.10, 17:11
Сообщение #9

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 956 раз
Рейтинг: 0

Слушай ну нельзя так как ты хочешь. Можно только передать параметр в тот документ котрый ты хочешь напечатать.
А в этом документе приоткрытии() смотреть было что то передано или нет.
Я уже третий раз тебе об этом говорю и alex1c
Больше не буду....

cRYSMAS Подменю пользователя
сообщение 29.03.10, 7:09
Сообщение #10

Говорящий
***
Группа: Пользователи
Сообщений: 84
Спасибо сказали: 2 раз
Рейтинг: 0

Я все сделал как показал пример alex1c вот а оно мне выдало ошибку в строке "Печать(1)" Слишком много фактических параметров. Э то что значит?


Signature
1С 7.7 7.70.027
Бух. учот релиз 7.70.272.
Я тока учусь, албанский знаю но плохо.

Vofka Подменю пользователя
сообщение 29.03.10, 7:33
Сообщение #11

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Попробуй просто "Печать();"

cRYSMAS Подменю пользователя
сообщение 29.03.10, 9:21
Сообщение #12

Говорящий
***
Группа: Пользователи
Сообщений: 84
Спасибо сказали: 2 раз
Рейтинг: 0

я понял почему у меня открывается в моей обработке а не печатается нужно было в документе "Командировочные удостоверения", что бы прояснить ситуацию нужно было еще в документ Командировочные удостоверение ставить текст программы:

// Для автоматической печати НН за период
//============================
Процедура Печать(ллСТР=4,прПросм = 0) Далее

//============================
Процедура ПриОткрытии()
//Меренков 7-07-06
// Для автоматической печати НН за период
ПарамВыз = Форма.Параметр;
Если ТипЗначенияСтр(ПарамВыз)="СписокЗначений" Тогда
Если ПарамВыз.Получить("Что")="ПЕЧАТЬ" Тогда
//Сообщить("Мы вызвали для печати");
лКопия = ПарамВыз.Получить("Страница");
лПросм = ПарамВыз.Получить("Метод");
Печать(лКопия,лПросм);
СтатусВозврата(0);
КонецЕсли;
КонецЕсли;
//
Но потом выдает ошибку процедура Печать() не найдена, значит я перенёс процедуру печать поставил перед вызовом этой процедуры, и мне написало вот такую ошибку "Процедура или функция с указанным именем объявлена, но не определена в текущем модуле (Печать)" что это может быть?


Signature
1С 7.7 7.70.027
Бух. учот релиз 7.70.272.
Я тока учусь, албанский знаю но плохо.

cRYSMAS Подменю пользователя
сообщение 30.03.10, 8:15
Сообщение #13

Говорящий
***
Группа: Пользователи
Сообщений: 84
Спасибо сказали: 2 раз
Рейтинг: 0

у меня все получилось все печатает, только есть одно но при установке флага "без предварительного просмотра" 1с все равно открывает предварительный просмотр и печатает сразу, а если не ставить флаг "без предварительно просмотра" то только открывает предварительный просмотр, но не печатает, как мне найти траблу что бы печатало без предварительно просмотра?.
ЗЫ код Вам в студию?


Signature
1С 7.7 7.70.027
Бух. учот релиз 7.70.272.
Я тока учусь, албанский знаю но плохо.

Batchir Подменю пользователя
сообщение 30.03.10, 11:28
Сообщение #14

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1426 раз
Рейтинг: 0

Если стоит без просмотра то не вызывать команду Показать() для таблицы, вроде так.

cRYSMAS Подменю пользователя
сообщение 30.03.10, 12:23
Сообщение #15

Говорящий
***
Группа: Пользователи
Сообщений: 84
Спасибо сказали: 2 раз
Рейтинг: 0

Цитата(Batchir @ 30.03.10, 13:28) *
Если стоит без просмотра то не вызывать команду Показать() для таблицы, вроде так.

Все спасибо нашол исправил), все работает так как надо, если кому не ясно могу подсказать.
Всем Большое СПАСИБО, извените если что не так я не програмер...Спасибо за понимание.
ЗЫ. темку можно закрывать.


Signature
1С 7.7 7.70.027
Бух. учот релиз 7.70.272.
Я тока учусь, албанский знаю но плохо.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 26.04.24, 10:12
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!