Имя: Пароль:
1C
1С v8
Вывод панели настроек в печатной форме документа
0 Yukoshkab
 
26.12.13
10:57
При создании печатной формы у меня не выходит панель настроек. Форма документа отображается как таблица , а не как табличный документ.
1 Любопытная
 
26.12.13
11:01
Чего? Можно в картинках?
2 Yukoshkab
 
26.12.13
11:03
//функция формирует табличный документ с печатной формой листа приемки
Функция ВывестиПечатнуюФормуЛистаПриемки(Выборка)Экспорт
  
    ТабличныйДокумент = Новый ТабличныйДокумент;
  
    Если КатегорияЗакупа.Наименование="А" Тогда
         Макет = Документы.ЗаказПоставщику.ПолучитьМакет("Печать11");
    ИначеЕсли  КатегорияЗакупа.Наименование="А1"  Тогда
        Макет = Документы.ЗаказПоставщику.ПолучитьМакет("Печать11");
    ИначеЕсли  КатегорияЗакупа.Наименование="Б1"  Тогда
        Макет =Документы.ЗаказПоставщику.ПолучитьМакет("Печать11");
    ИначеЕсли  КатегорияЗакупа.Наименование="В"  Тогда
        Макет = Документы.ЗаказПоставщику.ПолучитьМакет("Печать11");
    ИначеЕсли  КатегорияЗакупа.Наименование="Д"  Тогда
        Макет = Документы.ЗаказПоставщику.ПолучитьМакет("Печать11");
    ИначеЕсли КатегорияЗакупа.Наименование="Б2" Тогда
        Макет = Документы.ЗаказПоставщику.ПолучитьМакет("Печать13");
    Иначе
        Макет = Документы.ЗаказПоставщику.ПолучитьМакет("Печать12");
         КонецЕсли;
    Индекс = 0;
  
    //Заголовок
    Область = Макет.ПолучитьОбласть("Заголовок");
    ТабличныйДокумент.Вывести(Область);
    //Шапка  
    Шапка = Макет.ПолучитьОбласть("Шапка");
    Шапка.Параметры.Заполнить(ЭтотОбъект);
    Шапка.Параметры.Склад=Выборка.Склад;
    ТабличныйДокумент.Вывести(Шапка);
    //ТоварыШапка
    ТоварыШапка=Макет.ПолучитьОбласть("ТоварыШапка");
    ТоварыШапка.Параметры.Заполнить(ЭтотОбъект);
    ТабличныйДокумент.Вывести(ТоварыШапка);
    //Товар
    Товар = Макет.ПолучитьОбласть("Товар");
    Индекс = Индекс + 1;
    Товар.Параметры.НомерСтроки= Индекс;
    Товар.Параметры.НомерВЕвфрате = Выборка.НомерВЕвфрате;
    Товар.Параметры.Номер = Выборка.Номер;
    Товар.Параметры.Номенклатура = Выборка.Номенклатура;
    Товар.Параметры.ЕдиницаИзмерения = Выборка.ЕдиницаИзмерения;
    Товар.Параметры.Количество = Выборка.Количество;
    ТабличныйДокумент.Вывести(Товар);
    //Подвал
    Подвал=Макет.ПолучитьОбласть("Подвал");
    Подвал.Параметры.Заполнить(ЭтотОбъект);
    ТабличныйДокумент.Вывести(Подвал);
  
    ТабличныйДокумент.ОтображатьСетку = Ложь;
    ТабличныйДокумент.Защита = Ложь;
    ТабличныйДокумент.ТолькоПросмотр = Ложь;
    ТабличныйДокумент.ОтображатьЗаголовки = Ложь;
    ТабличныйДокумент.Показать();
  
    Возврат ТабличныйДокумент;
  
КонецФункции  
//печатает лист приемки
Функция ПечатьЛистаПриемки(Тип)
  
    ТабличныйДокумент = Новый ТабличныйДокумент;
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
    Запрос.Текст ="ВЫБРАТЬ
                  |    ЗаказПоставщику.Номер,
                  |    ЗаказПоставщику.НомерВЕвфрате,
                  |    ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура,
                  |    ЗаказПоставщикуТовары.Количество КАК Количество,
                  |    ЗаказПоставщикуТовары.ЕдиницаИзмерения,
                  |    ЗаказПоставщикуТовары.Склад КАК Склад,
                  |    ЗаказПоставщику.Контрагент
                  |ИЗ
                  |    Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
                  |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказПоставщику
                  |        ПО ЗаказПоставщикуТовары.Ссылка = ЗаказПоставщику.Ссылка
                  |ГДЕ
                  |    ЗаказПоставщикуТовары.Ссылка = &ТекущийДокумент
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    ЗаказПоставщикуТовары.Склад,
                  |    ЗаказПоставщикуТовары.Номенклатура,
                  |    ЗаказПоставщику.Контрагент,
                  |    ЗаказПоставщику.Номер,
                  |    ЗаказПоставщикуТовары.ЕдиницаИзмерения,
                  |    ЗаказПоставщику.НомерВЕвфрате,
                  |    ЗаказПоставщикуТовары.Количество";
                
    Выборка=Запрос.Выполнить().Выбрать();
  
        Пока Выборка.Следующий() Цикл
    
    ВывестиПечатнуюФормуЛистаПриемки(Выборка);
      
    КонецЦикла;
  
Возврат ТабличныйДокумент;  
  
КонецФункции
3 Yukoshkab
 
26.12.13
11:04
вывела печатную форму, но оно выходит как таблица, а надо как табличный документ что бы появилась панель настроек.
привожу код
4 Wobland
 
26.12.13
11:04
(0) поздравлять?
5 Любопытная
 
26.12.13
11:04
я вообще-то просила картинки...
6 Любопытная
 
26.12.13
11:05
в типовых есть общая форма ПечатьДокументов. Видимо, ТС хочет вывести свою печатную форму в нее
7 Любопытная
 
26.12.13
11:06
Или я не права?
8 СэдКС
 
26.12.13
11:50
В стандартных печатных формах документа есть сверху панель, где команды печать, сохранить копию и т.д.
У ТС выходит печатная форма с заголовком формы как Таблица, без панели. Ей и нужна эта панель
9 Yukoshkab
 
26.12.13
11:51
СэдКС, Вы правы!!!!!!!!!!!!!!
10 Wobland
 
26.12.13
11:51
(9) Любопытная тоже
11 Yukoshkab
 
26.12.13
11:52
да, да
12 Yukoshkab
 
26.12.13
11:52
это можно как-то реализовать?
13 Yukoshkab
 
26.12.13
11:56
картинки скидывать?
14 Любопытная
 
26.12.13
11:57
(12) управляемые формы или так себе?
Посмотри, как в других местах реализовано и сделай так же
15 Yukoshkab
 
26.12.13
11:58
так себе. смотрела. все сделано по примеру
16 Любопытная
 
26.12.13
11:58
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект), Ссылка);
Это в неуправляемых
17 Любопытная
 
26.12.13
11:59
В реквизит ТабДокумент нужно засунуть твой табличный документ
18 Yukoshkab
 
26.12.13
12:00
это прописывается к конце функции печати?
19 Любопытная
 
26.12.13
12:02
(18) тебе скинуть целиком процедуру Печать? Конфа какая? Усть ли в ней общий модуль УниверсальныеМеханизмы? Есть ли в этих универсальных механизмах процедура НапечататьДокумент?
20 Любопытная
 
26.12.13
12:02
Чет голова болит сегодня
21 Wobland
 
26.12.13
12:02
(18) найди уже у себя нужный пример и сделай так же
22 Yukoshkab
 
26.12.13
12:03
8,2 . есть такая
// Процедура осуществляет печать документа. Можно направить печать на
// экран или принтер, а также распечатать необходмое количество копий.
//
//  Название макета печати передается в качестве параметра,
// по переданному названию находим имя макета в соответствии.
//
// Параметры:
//  НазваниеМакета - строка, название макета.
//
Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт

    Если ЭтоНовый() Тогда
        Предупреждение("Документ можно распечатать только после его записи");
        Возврат;
    ИначеЕсли Не УправлениеПользователями.РазрешитьПечатьНепроведенныхДокументов(Проведен) Тогда
        Предупреждение("Недостаточно полномочий для печати непроведенного документа!");
        Возврат;
    КонецЕсли;

    Если Не РаботаСДиалогами.ПроверитьМодифицированность(ЭтотОбъект) Тогда
        Возврат;
    КонецЕсли;

        // Получить экземпляр документа на печать
    Если ИмяМакета      = "Заказ" Тогда

        // печать заявки от покупателя
        ТабДокумент     = ПечатьСчетаЗаказа(ИмяМакета);
        
    ИначеЕсли ИмяМакета   = "ЛистПриемки" Тогда
        ТабДокумент = ПечатьЛистаПриемки(ИмяМакета);

        
    ИначеЕсли ИмяМакета      = "ЗаказПоДаннымПоставщика" Тогда

        // печать заявки от покупателя
        ТабДокумент     = ПечатьСчетаЗаказа(ИмяМакета);
        
            
        

    ИначеЕсли ИмяМакета = "ПереченьМатериалов" тогда
        
        Если НЕ(Материалы.Количество() > 0) Тогда
            Сообщить("Нет материалов в переработку!");
            Возврат;
        КонецЕсли;
        
        ТабДокумент = ПечатьПеречняМатериалов(ИмяМакета);
        
        
    КонецЕсли;

    УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, РаботаСДиалогами.СформироватьЗаголовокДокумента(ЭтотОбъект, Строка(ВидОперации), глСписокПрефиксовУзлов), Ссылка);

КонецПроцедуры // Печать
23 Wobland
 
26.12.13
12:04
(22) ты молодец?
24 Любопытная
 
26.12.13
12:05
Ну и?
25 Yukoshkab
 
26.12.13
12:06
не работает
26 Wobland
 
26.12.13
12:07
(25) двоечница
27 Yukoshkab
 
26.12.13
12:08
)))))
28 Любопытная
 
26.12.13
12:08
Функция ВывестиПечатнуюФормуЛистаПриемки из (2) где находится?
29 Любопытная
 
26.12.13
12:08
(27)печатная форма внешняя?
30 Yukoshkab
 
26.12.13
12:08
нет, не внешняя
31 Yukoshkab
 
26.12.13
12:09
чуть выше
32 Любопытная
 
26.12.13
12:09
(30) ну тогда где в процедуре Печать твои функции??? Как ты их вообще выводишь? отдельные кнопки сделала?
33 Yukoshkab
 
26.12.13
12:10
нет. у меня 2 функции. первая формирует печатный документ, а вторая ссылаясь на функцию формирования печататет
34 Любопытная
 
26.12.13
12:10
(33) где они?
35 Любопытная
 
26.12.13
12:11
Мы, в общем, друг друга не понимаем.
36 Yukoshkab
 
26.12.13
12:11
вам код нужен?
37 Любопытная
 
26.12.13
12:12
(36) мне? нет. Мне нужно понять как печатные формы печатаются,  в обход процедуры Печать()
38 Любопытная
 
26.12.13
12:12
Хотя и это мне тоже не нужно
39 Yukoshkab
 
26.12.13
12:13
сейчас скину процедуру Печать
40 Yukoshkab
 
26.12.13
12:14
Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт

    Если ЭтоНовый() Тогда
        Предупреждение("Документ можно распечатать только после его записи");
        Возврат;
    ИначеЕсли Не УправлениеПользователями.РазрешитьПечатьНепроведенныхДокументов(Проведен) Тогда
        Предупреждение("Недостаточно полномочий для печати непроведенного документа!");
        Возврат;
    КонецЕсли;

    Если Не РаботаСДиалогами.ПроверитьМодифицированность(ЭтотОбъект) Тогда
        Возврат;
    КонецЕсли;

        // Получить экземпляр документа на печать
    Если ИмяМакета      = "Заказ" Тогда

        // печать заявки от покупателя
        ТабДокумент     = ПечатьСчетаЗаказа(ИмяМакета);
        
    ИначеЕсли ИмяМакета   = "ЛистПриемки" Тогда
        ТабДокумент = ПечатьЛистаПриемки(ИмяМакета);

        
    ИначеЕсли ИмяМакета      = "ЗаказПоДаннымПоставщика" Тогда

        // печать заявки от покупателя
        ТабДокумент     = ПечатьСчетаЗаказа(ИмяМакета);
        
            
        

    ИначеЕсли ИмяМакета = "ПереченьМатериалов" тогда
        
        Если НЕ(Материалы.Количество() > 0) Тогда
            Сообщить("Нет материалов в переработку!");
            Возврат;
        КонецЕсли;
        
        ТабДокумент = ПечатьПеречняМатериалов(ИмяМакета);
        
        
    КонецЕсли;

    УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, РаботаСДиалогами.СформироватьЗаголовокДокумента(ЭтотОбъект, Строка(ВидОперации), глСписокПрефиксовУзлов), Ссылка);

КонецПроцедуры
41 Любопытная
 
26.12.13
12:14
Я это уже видела.
42 Yukoshkab
 
26.12.13
12:15
вот эта процедура и печататет
43 Любопытная
 
26.12.13
12:15
ВывестиПечатнуюФормуЛистаПриемки(Выборка) откуда вызывается?
44 Wobland
 
26.12.13
12:15
я б уж давно сказал, где собака порылась, но мешает отсутствие  внятности в описании проблемы
45 Yukoshkab
 
26.12.13
12:16
из функции с таким же названием
46 Yukoshkab
 
26.12.13
12:16
проблема в том что в печатной форме не появляется панель настроек(печать, сохранить в файл и т.д.)
47 Любопытная
 
26.12.13
12:16
(45) чё?
48 Любопытная
 
26.12.13
12:17
В общем, я ничего не поняла. ТС, похоже тоже
49 Wobland
 
26.12.13
12:17
(46) или ты врёшь, или НапечататьДокумент() этого тупо не умеет
50 Любопытная
 
26.12.13
12:19
(49) у нее табДок не попадает в форму печати. Она ее не вызывает вообще. И в процедуру Печать она со своими макетами не ходит, у нее отдельная кнопка для этого есть. Но понять это человек не хочет, прикольней долбать своими велосипедами
51 Wobland
 
26.12.13
12:20
всё, марш делать по аналогии
52 Yukoshkab
 
26.12.13
12:22
вы все не так понимаете
53 Wobland
 
26.12.13
12:24
(52) на самом деле просто не выходит панель настроек?
54 Yukoshkab
 
26.12.13
12:24
да!!!!!!!!!!!!!!!!!!!!
55 Yukoshkab
 
26.12.13
12:25
а так-то все работатет и осуществляется, только панель не выходит автоматически.
56 Wobland
 
26.12.13
12:26
занавес
57 Yukoshkab
 
26.12.13
12:27
что это такое? я вообще недавно на этом форуме. Зарезервированные слова еще не знаю
58 Любопытная
 
26.12.13
12:29
картинки давай тогда, чтоб все поняли. Какую панельку ты хочешь и как сейчас выводится
59 Yukoshkab
 
26.12.13
12:30
сейчас
60 Yukoshkab
 
26.12.13
12:32
а как добавлять картинки?
61 Любопытная
 
26.12.13
12:33
http://savepic.net/4187414.htm
Такую панельку хочешь?
62 Yukoshkab
 
26.12.13
12:33
да!!!!!
63 Любопытная
 
26.12.13
12:33
(60) кидай в какой-нить альбом в инете
64 Yukoshkab
 
26.12.13
12:33
печать, радактировать и сохранить в фай
65 Любопытная
 
26.12.13
12:34
(64) Ну так сделай так, чтобы твой функции, которые формируют печатные формы, вызывались в процедуре ПЕЧАТЬ()!!!
66 Yukoshkab
 
26.12.13
12:35
через Универсальные механизмы?
67 Любопытная
 
26.12.13
12:37
через процедуру печать
68 Любопытная
 
26.12.13
12:38
ИначеЕсли ИмяМакета = "ЗдесьИмяТвоегоМакета" тогда
        
    
        ТабДокумент = ЗдесьИмяТвоейПроцедуры(ИмяМакета);
        
        
    КонецЕсли;

Вот такой код надо в процедуру Печать() добавить перед вызовом универсальных механизмов
69 Yukoshkab
 
26.12.13
12:38
как написать? что-то сообразить не могу.............
70 Yukoshkab
 
26.12.13
12:39
такое уже прописывала
71 Wobland
 
26.12.13
12:39
(68) а я думал, это она своё показывает.. полынй финиш
72 Yukoshkab
 
26.12.13
12:39
мое вот
    ИначеЕсли ИмяМакета   = "ЛистПриемки" Тогда
        ТабДокумент = ПечатьЛистаПриемки(ИмяМакета);
73 Wobland
 
26.12.13
12:40
можешь в аську постучаться часа через три. натыкаю носом
74 Yukoshkab
 
26.12.13
12:40
вы опять не правильно поняли,печатные формы выводятся!!!
75 Yukoshkab
 
26.12.13
12:41
просто они без панели настроек
76 Wobland
 
26.12.13
12:41
(74) успокойся, всё мы поняли
77 Yukoshkab
 
26.12.13
12:42
уфффф
78 Любопытная
 
26.12.13
12:43
(74) стотыщпятисотый раз спрашиваю: как вызывается ПечатьЛистаПриемки(Тип)?
79 Yukoshkab
 
26.12.13
12:44
http://savepic.net/4181289.htm у меня такая
80 Любопытная
 
26.12.13
12:45
(77)  ТабличныйДокумент.Показать(); убери вот это
81 Yukoshkab
 
26.12.13
12:45
вызывается она из Общей процедуры Печать()
82 RomaH
 
naïve
26.12.13
12:46
в управляемых - там еще надо объектыпечати заполнить?
83 Любопытная
 
26.12.13
12:47
(82) нет, это обычные
84 Yukoshkab
 
26.12.13
12:48
когда  ТабличныйДокумент.Показать() убираю - не выходит форма.
85 Любопытная
 
26.12.13
12:51
(84)     Пока Выборка.Следующий() Цикл ВывестиПечатнуюФормуЛистаПриемки(Выборка);
      
    КонецЦикла;
  
Возврат ТабличныйДокумент;  

А чему у тебя тут ТабличныйДокумент равно?
86 Yukoshkab
 
26.12.13
12:52
ТабличныйДокумент = Новый ТабличныйДокумент;
87 Yukoshkab
 
26.12.13
12:52
наверное что-то с этой срокой не так
88 Любопытная
 
26.12.13
12:53
(86) где? Ты в функцию ВывестиПечатнуюФормуЛистаПриемки ушла, твоего табличныйДокумент уже нет больше
89 Yukoshkab
 
26.12.13
12:54
убираю  тогда этот код
90 Yukoshkab
 
26.12.13
12:57
ни чего не изменилось........................................все по прежнему
91 Любопытная
 
26.12.13
13:00
логично. ведь в табличный документ ничего не попало
92 Yukoshkab
 
26.12.13
13:02
как быть? что делать?
93 Любопытная
 
26.12.13
13:03
вывести уже что-нибудь в табличный документ
94 Yukoshkab
 
26.12.13
13:04
как?
95 Yukoshkab
 
26.12.13
13:05
выводится же итак все. только не хватает панели настроек
96 Wobland
 
26.12.13
13:07
спасёт только хирургическое вмешательство
97 Yukoshkab
 
26.12.13
13:09
согласна
98 Wobland
 
26.12.13
13:10
(97) около 1530 мск помою руки
99 Любопытная
 
26.12.13
13:15
(98) это в час?)
100 vqwy
 
26.12.13
13:15
сто
101 Wobland
 
26.12.13
13:16
(99) ну не в миллиметрах же
102 Yukoshkab
 
26.12.13
13:16
я жду