Имя: Пароль:
1C
1С v8
БСП: подключить "Печать"
0 dft2014
 
29.09.17
17:47
Сделала тестовое обновление с ЗУП 3.1.2 на 3.1.3 и обнаружила, что у самописных документов исчезла кнопка Печать, т.к. теперь в БСП (библиотека стандартных подсистем) по-другому подключаются команды печати. Сделала, как написано здесь, но не помогло: http://downloads.v8.1c.ru/content/SSL/2_3_5_44/change.htm


Как раньше было в форме документа (все работало):
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма)
КонецПроцедуры


Теперь адаптировала к новой БСП, а кнопка Печать все равно не появляется:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
КонецПроцедуры
1 dft2014
 
29.09.17
17:48
Опечатка, читать так:

Теперь адаптировала к новой БСП, а кнопка Печать все равно не появляется:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтаФорма);
КонецПроцедуры
2 igork1966
 
29.09.17
17:50
(0) там же не только это еще в Подключаемый_
3 Aloex
 
29.09.17
17:59
Тут допиши Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт
4 dft2014
 
04.10.17
10:50
Ниже мой код, но он так и не заработал - команды печати не появились! В комментариях я указала, где я адаптировала код для новой БСП.


Код в модуле формы документа:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    //    УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма);    //прежняя БСП
    ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтаФорма);  //адаптация к новой БСП
КонецПроцедуры


&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
    
    Если Параметры.Ключ.Пустая() Тогда
        ДополнительныеПараметры = Новый Структура;
        ДополнительныеПараметры.Вставить("Команда", Команда);
        
        ТекстВопроса = НСтр("ru = 'Данные еще не записаны.
        |Выполнение печати возможно только после записи данных.
        |Данные будут записаны.'");
        
        ОписаниеОповещения = Новый ОписаниеОповещения("ВыполнитьПодключаемуюКомандуПечатиПодтверждениеЗаписи", ЭтотОбъект, ДополнительныеПараметры);
        ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ОКОтмена);
        Возврат;
    КонецЕсли;
    
    Если Команда.Имя = "ФормаКоманднаяПанельПодменюПечатьКомандаПечати1" Тогда  //ДополнительноеСоглашение
        НазваниеФайла = ПолучитьИмяВременногоФайла("doc");    
        Макет = ВернутьМакет(Команда.Имя);
        Макет.Записать(НазваниеФайла);
    ИначеЕсли Команда.Имя = "ФормаКоманднаяПанельПодменюПечатьКомандаПечати0" Тогда  //Смена графика
        Макет = ВернутьМакет(Команда.Имя);
    Иначе
        //    УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтаФорма, Объект);   //прежняя БСП
        ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтаФорма, Команда, Объект);  //адаптация к новой БСП
    КонецЕсли;
    
КонецПроцедуры



Код в модуле менеджера:

Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
    
    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.Идентификатор = "ДополнительноеСоглашение";
    КомандаПечати.Представление = НСтр("ru = 'Дополнительное соглашение'");
    КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
    
    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.Представление = НСтр("ru = 'Смена графика'");
    КомандаПечати.Порядок = 10;
    КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;        

КонецПроцедуры
5 RomaH
 
naïve
04.10.17
11:13
// Определяет объекты конфигурации, в модулях менеджеров которых размещена процедура ДобавитьКомандыПечати,
// формирующая список команд печати, предоставляемых этим объектом.
// Синтаксис процедуры ДобавитьКомандыПечати см. в документации к подсистеме.
//
// Параметры:
//  СписокОбъектов - Массив - менеджеры объектов с процедура ДобавитьКомандыПечати.
//
Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт
6 dft2014
 
04.10.17
12:01
(5) Спасибо, куда эту процедуру вставлять и что в ней написать?
7 DrShad
 
04.10.17
12:04
(6) она в одном из общих модулей, откроешь поймешь что дописывать
8 dft2014
 
04.10.17
12:45
(5), (7) Кнопка Печать появилась, но печатная форма не формируется! Может быть еще что-то надо добавить?


Я добавила строчку в ОбщийМодуль.ЗарплатаКадрыРасширенный:

Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт
...
СписокОбъектов.Добавить(Документы.ДополнительноеСоглашение);  //адаптация к новой БСП
...
КонецПроцедуры
9 dft2014
 
04.10.17
13:38
(8) Ап!
10 Happy Bear
 
04.10.17
13:47
(9) А печатная форма внешняя? В меню Печать она появляется?
11 dft2014
 
04.10.17
14:18
(10) Нет, это не внешняя печатная форма. Печать я делаю из самописного документа "ДополнительноеСоглашение".
12 makaorel
 
04.10.17
14:30
(8) УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати
13 dft2014
 
04.10.17
14:49
(12) УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати скачет по процедурам и в итоге останавливается на ОбщийМодуль.ЗарплатаКадрыРасширенный.ПриОпределенииОбъектовСКомандамиПечати.

А там я уже прописала - см. (8).


ПОМОГИТЕ!!! Кнопка Печать появилась, но печатная форма не формируется!!!!
14 Happy Bear
 
04.10.17
15:33
а режим во внешней печатной форме Безопасный?
15 makaorel
 
04.10.17
15:39
(13) достаточно в написать в (12)
16 dft2014
 
04.10.17
16:12
(14) Это не внешняя печатная форма!!! См.(11).
17 Happy Bear
 
04.10.17
17:13
а, ну тогда модуль печати смотреть нужно - может там условие на документ стоит