Имя: Пароль:
1C
1С v8
Печать документа
0 Тоненький Клиент
 
16.02.13
20:47
Сломал башку себе, прошу помощи...
Сделал документ в конфе, добавил универсальный механизм печати
код (все его знают...)
на форме

Перем мДеревоМакетов;

// Хранит элемент управления подменю печати
Перем мПодменюПечати;

// Хранит элемент управления кнопку печать по умолчанию
Перем мПечатьПоУмолчанию;

// Процедура устанавливает подменю "Печать" и кнопку "Печать по умолчанию" при необходимости
//
Процедура УстановитьКнопкиПечати()
   
   мДеревоМакетов = УниверсальныеМеханизмы.ПолучитьДеревоМакетовПечати(Ссылка, ПолучитьСтруктуруПечатныхФорм(), Новый Действие("ОсновныеДействияФормыПечать"), Новый Действие("ОсновныеДействияФормыУстановитьПечатьПоУмолчанию"));

   УниверсальныеМеханизмы.УстановитьПодменюПечати    (мПодменюПечати, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов);
   УниверсальныеМеханизмы.УстановитьПечатьПоУмолчанию(мПечатьПоУмолчанию, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов, Метаданные().Имя,Новый Действие("ОсновныеДействияФормыПечатьПоУмолчанию"));

   Если Не мПодменюПечати = Неопределено Тогда
       УниверсальныеМеханизмы.СформироватьПодменю(мДеревоМакетов, мПодменюПечати,Истина,Истина);
   КонецЕсли;
   
КонецПроцедуры // УстановитьКнопкиПечати()

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
   // Установка кнопок печати
УстановитьКнопкиПечати();

КонецПроцедуры
// Процедура - обработчик события "ПередОткрытием" формы.
Процедура ОсновныеДействияФормыПечатьПоУмолчанию(Кнопка)
УниверсальныеМеханизмы.ПечатьПоДополнительнойКнопке(мДеревоМакетов, ЭтотОбъект, ЭтаФорма, Кнопка.Текст);
КонецПроцедуры // Основные Действия Формы Печать По Умолчанию


Процедура ОсновныеДействияФормыПечать(Кнопка)
УниверсальныеМеханизмы.ПечатьПоДополнительнойКнопке(мДеревоМакетов, ЭтотОбъект, ЭтаФорма, Кнопка.Текст);
КонецПроцедуры // Основные Действия Формы Печать


Процедура ОсновныеДействияФормыУстановитьПечатьПоУмолчанию(Кнопка)
Если УниверсальныеМеханизмы.НазначитьКнопкуПечатиПоУмолчанию(мДеревоМакетов, Метаданные().Имя) Тогда
УстановитьКнопкиПечати();
КонецЕсли;
КонецПроцедуры // ОсновныеДействияФормы УстановитьПечатьПоУмолчанию

В модуле документа


Функция ПолучитьСтруктуруПечатныхФорм() Экспорт
Возврат Новый Структура("12345","Карточка");
КонецФункции // Получить Структуру Печатных Форм()

Функция ПечатьДокумента(Тип)
///ну тут всякие запросы и т.д.

Возврат (ТабДокумент);
КонецФункции

Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь, НепосредственнаяПечать = Ложь) Экспорт
// Получить экземпляр документа на печать
Если ИмяМакета = "12345" Тогда
ТабДокумент = ПечатьДокумента (ИмяМакета);
КонецЕсли;
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект, ""), НепосредственнаяПечать);
КонецПроцедуры // Печать

//ТабДокумент.Показать();
//Сообщить (НачПериода);
//Сообщить (КонПериода);


Всё замечательно, но после нажатия на кнопку печати документ становится модифицированным и требует подтверждения или сохранения изменений (перепроведения).
Что не так?
Спасибо!
1 Михаил Козлов
 
16.02.13
20:50
Проверьте, не модифицируется ли документ в процедуре печати.
2 Тоненький Клиент
 
16.02.13
21:02
(1) спасибо, но не могу в отладчике понять, как это сделать
3 Тоненький Клиент
 
16.02.13
21:07
или где вообще это выяснить
4 aka AMIGO
 
16.02.13
21:13
а нет-ли случайного совпадения реквизитов в модуле печати и в документе?
5 aka AMIGO
 
16.02.13
21:14
+4 вполне вероятно - переменная и реквизит совпадают.. бывало и не раз :)
6 aka AMIGO
 
16.02.13
21:17
подумал.. посмотрел твой код.. ерунду я сказал..
7 mikecool
 
16.02.13
21:31
(2) ты чо - троллишь? про модифицированность() не знаешь?
8 Тоненький Клиент
 
16.02.13
21:37
(7) да знаю, просто почти не юзал никогда - повода не было
9 lEvGl
 
гуру
16.02.13
22:54
/ Процедура - обработчик события "ПередОткрытием" формы.

Процедура ОсновныеДействияФормыПечатьПоУмолчанию(Кнопка)
УниверсальныеМеханизмы.ПечатьПоДополнительнойКнопке(мДеревоМакетов, ЭтотОбъект, ЭтаФорма, Кнопка.Текст);
КонецПроцедуры // Основные Действия Формы Печать По Умолчанию



Процедура ОсновныеДействияФормыПечать(Кнопка)
УниверсальныеМеханизмы.ПечатьПоДополнительнойКнопке(мДеревоМакетов, ЭтотОбъект, ЭтаФорма, Кнопка.Текст);
КонецПроцедуры // Основные Действия Формы Печать
10 lEvGl
 
гуру
16.02.13
22:55
ну вот две процедуры, которые отдают куда то объект, мб там изменяется, если в самом документе ничего не менял