Имя: Пароль:
1C
1С v8
печатная форма КА 2.0
0 1newb
 
02.12.16
08:05
Привет, подскажите пожалуйста как сделать внеш.печатную форму "печать комплекта документов с настройкой" для задние на перевозку
так, как это сделано для реализации товаров и услуг
1 1newb
 
02.12.16
08:06
внеш.печ формы делал, но с этой чето понять не могу..
2 Мимохожий Однако
 
02.12.16
08:09
Должна быть вторая команда для печати комплектом в процедурах регистрации обработки
3 1newb
 
02.12.16
08:11
(2) Ну в документе получается есть Печать - Комплект документов на принтер
и
Коплект документов с настройкой..
4 Мимохожий Однако
 
02.12.16
08:16
Изъясняйся подробнее. С утра трудно телепатить
5 1newb
 
02.12.16
08:32
(4) Я с БСП не работал и на УФ мало работал, мне не совсем понятно как сделать внешнюю печатную форму, если нет типовой
6 1newb
 
02.12.16
08:33
Задача стоит сделать внешнюю печатную форму комплекта документов с настройкой для задание на перевозку
сижу чет туплю
7 Мимохожий Однако
 
02.12.16
08:38
(6) На ИТС есть описание БСП. А в нём раздел по использованию внешних обработок. Есть примеры. Кроме того в инете и на 1С-ных форумах куча ВПФ. Там и смотри.
8 1newb
 
02.12.16
08:39
(7) не нашел для КА )
9 Мимохожий Однако
 
02.12.16
08:41
(8) БСП используется и в КА и в других программах. Любую бери.http://its.1c.ru/db/bspdoc#content:427:hdoc
10 1newb
 
02.12.16
08:43
(9) Я имел ввиду, что не нашел в инете печ форму
11 Мимохожий Однако
 
02.12.16
08:45
(10) Зайди на инфостарт. Там этого мусора...))
12 1newb
 
02.12.16
08:45
(11) Да там СМы какие то нужны я хз
13 Мимохожий Однако
 
02.12.16
08:48
(12) Если нет СМ, то нужны рубли. Если нет рублей, то копай знания. Могу только морально поддержать: "Дерзай, брат!" ))
14 1newb
 
02.12.16
08:52
(13) ДА это ппц, качать за 1200
15 Cyberhawk
 
02.12.16
08:55
Сколько платят за решение вопроса?
16 Мимохожий Однако
 
02.12.16
08:55
(14)на сайте ИТС или диске есть печатная форма http://its.1c.ru/db/metod81#content:4448:hdoc
можно взять за образец
17 1newb
 
02.12.16
08:56
(16) Образец "СведенияОВнешнейОбработке" и т д ? Это мне и так понятно
18 1newb
 
02.12.16
08:59
(15) стотыщ
19 Мимохожий Однако
 
02.12.16
08:59
(17) Тогда приведи куски кода, которые не понятны.
20 Cyberhawk
 
02.12.16
09:00
(18) Валюта какая?
21 1newb
 
02.12.16
09:01
(20) фунты
22 1newb
 
02.12.16
09:01
(19) Не понятно что делать, я вообще растерялся, когда увидел печ форму без макета
23 Cyberhawk
 
02.12.16
09:02
(21) Подробнее
24 1newb
 
02.12.16
09:04
(23) да отстань
25 Мимохожий Однако
 
02.12.16
09:05
(22) Макет может быть в конфигурации или в общих макетах или в объектах. Ты в код загляни
26 Cyberhawk
 
02.12.16
09:07
(24) Почему?
27 1newb
 
02.12.16
09:08
(25) Я в коде и не вижу никакого макета
Я и как таковой печатной формы не вижу, принтера нет, хз как протестить, всё что я там нашел

Функция ПечатьКомплектаДокументовСНастройкой(ОписаниеКоманды) Экспорт
    
    ОткрытьФорму(
        "РегистрСведений.НастройкиПечатиОбъектов.Форма.НастройкаПечатиКомплекта",
        Новый Структура("Объекты", ОписаниеКоманды.ОбъектыПечати));
    
КонецФункции
28 1newb
 
02.12.16
09:08
(26) Ну просто
29 Cyberhawk
 
02.12.16
09:09
(28) Я ж помочь хочу тебе
30 1newb
 
02.12.16
09:09
(27) Ну т.е. это не всё, просто мне не понятно
31 Мимохожий Однако
 
02.12.16
09:10
(27) Поставь точку останова, а дальше отладчиком дойди до создания печатной формы. Где-нибудь там и увидишь макет.
(26) Обиделся он на тебя.
32 1newb
 
02.12.16
09:11
(31) А ставить её в этой функции чтоли ?
33 1newb
 
02.12.16
09:14
(31) я даже не могу найти процедуру печать для этой кнопки !!!!
34 Мимохожий Однако
 
02.12.16
09:19
(32) Да
35 Мимохожий Однако
 
02.12.16
09:19
(33) Для того и отладчик придумали, чтобы пошагово дойти до нужного места.
36 1newb
 
02.12.16
09:20
(35) Да я прошелся
37 1newb
 
02.12.16
09:29
8(
38 1newb
 
02.12.16
09:31
(35) А как эта штука вообще работает ? она по идее настройки только же выставляет, а печать происходит уже из процедуры печать ?
39 h-sp
 
02.12.16
09:35
(14) на инфостарте просто трындеть надо на форуме. Ты там тусуешься и см-ки капают. На мелкие обработки вполне хватает, можно не залезать в рубли.
40 Мимохожий Однако
 
02.12.16
09:36
Возьми свою ВПФ и в модуле объекта найди примерно такой кусок
//ФОРМИРОВАНИЕ ПЕЧАТНОЙ ФОРМЫ

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода = Неопределено)  экспорт
    
    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, <"ИдентификаторКоманды1">) Тогда
        
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
        КоллекцияПечатныхФорм,
        <"ИдентификаторКоманды1">, //тот же - что и в функции "СведенияОВнешнейОбработке"!
        <"Имя закладки 1 при печати комплектом">,
        СформироватьПечатнуюФорму1(МассивОбъектов, ОбъектыПечати)//исполняющая функция (в этом же модуле)
        );
    КонецЕсли;
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, <"ИдентификаторКоманды2">) Тогда
        
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
        КоллекцияПечатныхФорм,
        <"ИдентификаторКоманды2">, //тот же - что и в функции "СведенияОВнешнейОбработке"!
        <"Имя закладки 2 при печати комплектом">,
        СформироватьПечатнуюФорму2(МассивОбъектов, ОбъектыПечати)//исполняющая функция (в этом же модуле)
        );
    КонецЕсли;
    
КонецПроцедуры
41 1newb
 
02.12.16
09:39
(40) У меня пока что нету ВПФ, но, я нашел этот кусок и как он относится именно к этой пф я не понимаю!
42 1newb
 
02.12.16
09:41
(41) Ну не именно этот кусок, а процедуру печать и я не вижу там никакого обращения к Комплект документов с настройкой
43 Мимохожий Однако
 
02.12.16
09:47
(41) Начти с ВПФ. Остальное тебе пока рано.
44 Мимохожий Однако
 
02.12.16
09:48
(42) Обращение идёт к регистру сведений, в котором хранится ВПФ.
45 1newb
 
02.12.16
09:49
(43) Сделать ВПФ Комплект документов на принтер ? (44) "РегистрСведений.НастройкиПечатиОбъектов.Форма.НастройкаПечатиКомплекта"  где ?
46 ГеннадийУО
 
02.12.16
09:52
(45) Скачай демку БСП, посмотри как там сделано, сделай по аналогии.
47 1newb
 
02.12.16
09:54
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "МаршрутныйЛист") Тогда
        
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
                КоллекцияПечатныхФорм,
                "МаршрутныйЛист",
                НСтр("ru = 'Маршрутный лист'"),
                СформироватьПечатнуюФормуМаршрутныйЛист(
                    МассивОбъектов,
                    ОбъектыПечати));
        
    КонецЕсли;
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ТТН") Тогда
        СтруктураРаспоряжения = ПолучитьМассивРаспоряжений(МассивОбъектов);
        Для Каждого СсылкаЗадание Из СтруктураРаспоряжения.ПустыеЗадания Цикл
            ТекстСообщения = НСтр("ru = 'Не удалось напечатать товарно-транспортные накладные по документу ""%Задание%"": не заполнены распоряжения на доставку.'");
            ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Задание%", СсылкаЗадание);
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
        КонецЦикла;
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
                КоллекцияПечатныхФорм,
                "ТТН",
                НСтр("ru = 'Товарно-транспортная накладная'"),
                Обработки.ПечатьТТН.СформироватьПечатнуюФормуТТН(
                    СтруктураРаспоряжения.Распоряжения,
                    ОбъектыПечати,
                    ПараметрыПечати));
    КонецЕсли;
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ТранспортнаяНакладная") Тогда
        СтруктураРаспоряжения = ПолучитьМассивРаспоряжений(МассивОбъектов);
        Для Каждого СсылкаЗадание Из СтруктураРаспоряжения.ПустыеЗадания Цикл
            ТекстСообщения = НСтр("ru = 'Не удалось напечатать транспортные накладные по документу ""%Задание%"": не заполнены распоряжения на доставку.'");
            ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Задание%", СсылкаЗадание);
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
        КонецЦикла;
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
                КоллекцияПечатныхФорм,
                "ТранспортнаяНакладная",
                НСтр("ru = 'Транспортная накладная'"),
                Обработки.ПечатьТранспортнойНакладной.СформироватьПечатнуюФормуТранспортнойНакладной(
                    СтруктураРаспоряжения.Распоряжения,
                    ОбъектыПечати));
    КонецЕсли;
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СертификатыНоменклатурыРеестр") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            "СертификатыНоменклатурыРеестр",
            НСтр("ru = 'Сертификаты (реестр)'"),
            Справочники.СертификатыНоменклатуры.СформироватьПечатнуюФормуРеестрСертификатовНоменклатуры(МассивОбъектов, ОбъектыПечати, Неопределено),
            ,
            "Справочник.СертификатыНоменклатуры.ПФ_MXL_РеестрСертификатов");
    КонецЕсли;
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СертификатыНоменклатурыИзображенияИзДокументов") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            "СертификатыНоменклатурыИзображенияИзДокументов",
            НСтр("ru = 'Сертификаты (по каждой позиции документа)'"),
            Справочники.СертификатыНоменклатуры.СформироватьПечатнуюФормуИзображенияСертификатовИзДокументов(МассивОбъектов, ОбъектыПечати, Неопределено),
            ,
            "Справочник.СертификатыНоменклатуры.ПФ_MXL_ИзображенияСертификатов");
    КонецЕсли;
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СертификатыНоменклатурыИзображенияИзДокументовБезДублей") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            "СертификатыНоменклатурыИзображенияИзДокументовБезДублей",
            НСтр("ru = 'Сертификаты (по одному на сертификат)'"),
            Справочники.СертификатыНоменклатуры.СформироватьПечатнуюФормуИзображенияСертификатовИзДокументовБезДублей(МассивОбъектов, ОбъектыПечати, Неопределено),
            ,
            "Справочник.СертификатыНоменклатуры.ПФ_MXL_ИзображенияСертификатов");
    КонецЕсли;
        
КонецПроцедуры
48 1newb
 
02.12.16
09:55
Скажите, где тут КОмплексная печать документов? Почему я не вижу?

Я посмотрел пример бсп, там процедура печати тупо скопипащена из типовой пф, где тут она у меня?
49 1newb
 
02.12.16
09:55
(46) Мне непонятно как именно комплексная печать и комплексная печать с настройкой сделана
обычные пф мне понятны и как сделать впф из них тоже
50 1newb
 
02.12.16
10:01
Может быть кто-нибудь понял, что именно мне не понятно и может подсказать ?
51 1newb
 
02.12.16
10:08
Постараюсь объяснить: Я посмотрел пример бсп, там впф сделана как:
СведенияОВнешнейОбработке
ПолучитьНазначениеОбработки
Получить Таблицу Команд
ДобавитьКоманду
И потом процедура Печать, а в ней копипаста с типовой процедуры Печать
так вот, я залез в модуль менеджер, раскрыл Печать, а там нет печати Комплексной печати документов
Почему так ?
52 Мимохожий Однако
 
02.12.16
10:10
(51) Создай свою процедуру печати.
53 1newb
 
02.12.16
10:11
(52) Ну она же должна быть где то в конфигураторе, может быть подскажете где
54 1newb
 
02.12.16
10:14
ой, не комплексная, а Комплект документов
55 Мимохожий Однако
 
02.12.16
10:14
(53) Она может быть (или не быть) в модуле менеджера документа. Но для начала рекомендую создать печатную форму свою
56 1newb
 
02.12.16
10:16
(55) Я же говорю, процедура печать в модуле менеджера есть, там в коде нет обращение к комплекту
57 1newb
 
02.12.16
10:16
(55) Как я создам свою без печати?
58 Мимохожий Однако
 
02.12.16
10:18
(57) Через конфигуратор. Ваш КЭП
59 1newb
 
02.12.16
10:18
Вот всё,что я нашел

// Комплект документов на принтер
    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.Обработчик = "УправлениеПечатьюУТКлиент.ПечатьКомплектаДокументов";
    КомандаПечати.МенеджерПечати = "";
    КомандаПечати.Идентификатор = "КомплектДокументов";
    КомандаПечати.СразуНаПринтер = Истина;
    КомандаПечати.Представление = НСтр("ru = 'Комплект документов на принтер'");
    КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
60 1newb
 
02.12.16
10:24
(58) Ну и делаю я процедуру печать
И какое там имя макета если макета нет и он много печатает доков
61 Мимохожий Однако
 
02.12.16
10:26
В конфигураторе: Файл - Новый - Обработка.
Помолиться и дальше. Открыть модуль этой обработки. Скопировать туда обязательные процедуры. Дойти до функции печать. В ней сформировать печать хотя бы пустого табличного документа типа "Хелло ворд" и подцепить к конфигурации. Убедившись, что всё получилось,  начать свои исследования заново.
62 1newb
 
02.12.16
10:31
(61) Да я сделал это
Я спрашиваю именно про печать
63 1newb
 
02.12.16
10:32
(61)  УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("РегистрСведений.НастройкиПечатиОбъектов","КомплектДокументов",ОписаниеКоманды.ОбъектыПечати,Новый Структура);


что не так
64 Мимохожий Однако
 
02.12.16
10:33
(62) Без комплекта печатает?
65 1newb
 
02.12.16
10:33
(64) печатает
я если сделал так же как в примере то чо не будет то печатать
66 Мимохожий Однако
 
02.12.16
10:38
(65) Теперь покажи функцию регистрации из модуля объекта твоей ВПФ
67 1newb
 
02.12.16
10:46
(66) Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = Новый Структура;
    
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", ПолучитьНазначениеОбработки());
    ПараметрыРегистрации.Вставить("Наименование", НСтр("ru = '1Комплексная печать документов'"));
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
    ПараметрыРегистрации.Вставить("Информация", НСтр("ru = '1Комплексная печать документов""'"));
    
    ТаблицаКоманд = Получить Таблицу Команд();
    
    ДобавитьКоманду(Таблица Команд,
                    НСтр("ru = '1Комплексная печать документов'"),
                    "1КомплекснаяПечатьДокументов",
                    "ВызовСерверногоМетода",
                    Истина,
                    "ПечатьMXL");
    
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    
    Возврат ПараметрыРегистрации;
    
КонецФункции
68 1newb
 
02.12.16
10:47
Функция ПолучитьНазначениеОбработки()
    
    Назначение = Новый Массив;
    
    Назначение.Добавить("Документ.ЗаданиеНаПеревозку");
    назначение.добавить("Документ.РеализацияТоваровИУслуг");
    
    Возврат Назначение;
    
КонецФункции
69 1newb
 
02.12.16
10:47
Функция Получить Таблицу Команд()
    
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    
    Возврат Команды;
    
КонецФункции
70 1newb
 
02.12.16
10:47
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
    
КонецПроцедуры
71 1newb
 
02.12.16
10:53
м?
72 Мимохожий Однако
 
02.12.16
10:54
Покажи Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода = Неопределено)  экспорт
73 1newb
 
02.12.16
10:55
(72) Я её стёр, я как бы пытаюсь сделать комплект документов
74 Мимохожий Однако
 
02.12.16
11:00
(73) Зря. Возьми за образец эту функцию из ветки.Вставь в свою ВПФ. Только поменяй ссылки на функцию печати.
75 Мимохожий Однако
 
02.12.16
11:01
Еще должна быть функция СформироватьПечатнуюФорму1(МассивОбъектов, ОбъектыПечати//исполняющая функция (в этом же модуле)

        );
76 1newb
 
02.12.16
11:17
(74) я всё скопировал эту из своей впф
я не знаю как процедуру печать сделать для этой фигни
77 1newb
 
02.12.16
11:18
(75) я как делал:
копировал из типовой процедуры печать нужную и потом по ней выдёргивал всё остальное
78 1newb
 
02.12.16
11:19
а сейчас так не выходит т.к. нету в печати этой штуки
79 1newb
 
02.12.16
11:22
80 Мимохожий Однако
 
02.12.16
11:29
в (65) ты сообщил, что твоя ВПФ печатает. Покажи\напиши функцию, которая формирует табличный документ.
81 1newb
 
02.12.16
11:31
(80) я скинул впф в (79), но там уже всё другое и макета нет
82 Мимохожий Однако
 
02.12.16
11:33
(81) У тебя печать ВПФ работает после того, как ты подключил к базе?
83 1newb
 
02.12.16
11:36
(82) ты понимаешь что у меня она сейчас даже без макета
84 1newb
 
02.12.16
11:37
подключиться то подключилась
85 Мимохожий Однако
 
02.12.16
11:38
(83) Так и есть. Не понимаю. Дай прямой ответ. Твоя ВПФ подлкючена к базе? Она печатает что-нибудь на экран? После этого покажи функцию Печать() из рабочей ВПФ. После этого можно что-то обсуждать.
PS. Дальше не смогу с тобой беседовать. Надо ехать к клиентам
86 1newb
 
02.12.16
11:44
{ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(242)}: В обработчике печати не был сформирован табличный документ для: 1КомплекснаяПечатьДокументов
            ВызватьИсключение(ТекстСообщенияОбОшибке);
87 1newb
 
02.12.16
11:50
Ugol выручай