Добавление команд печати в конфигурациях на БСП 2.4.3 (в частности, в самописных документах в Бухгалтерии 3.0 после релиза 3.0.52.35)

18.09.17

Разработка - БСП (Библиотека стандартных подсистем)

В статье https://infostart.ru/public/237013/ пользователя nick max рассматривался список действий для подключения команд печати в Бухгалтерии 3.0, работающей на БСП 2.3.6. В новом релизе Бухгалтерии 3.0.52.35 от 15.09.2017г. стала использоваться БСП 2.4.3, из-за чего произошли изменения в процедурах общих модулей, связанных с механизмом печати, и в процедурах их вызова в формах документов и в формах списков. Рассмотрим их.

В статье //infostart.ru/public/237013/ пользователя nick max  рассматривался список действий для подключения команд печати в Бухгалтерии 3.0, работающей на БСП 2.3.6.
В новом релизе Бухгалтерии 3.0.52.35 от 15.09.2017г. стала использоваться БСП 2.4.3, из-за чего произошли изменения в процедурах общих модулей, связанных с механизмом печати, и в процедурах их вызова в формах документов и в формах списков.
Рассмотрим их.

1. В процедуре ПриСозданииНаСервере изменился код с:

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

на:

&НаСервере 
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
           // СтандартныеПодсистемы.ПодключаемыеКоманды
           ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
           // Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры

Замечание: Подменю ГруппаПечать на форме теперь не нужно создавать и передавать в параметр.

2. В Форме Документа вместо процедуры

&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
          УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтаФорма, Объект)
КонецПроцедуры  

теперь целых три:

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте 
Процедура Подключаемый_ВыполнитьКоманду(Команда)
          ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры 

&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
          ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры 

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
          ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры 
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

 

а в Формы Списка вместо:

(помним, что Объект заменяется на Элементы.Список)

&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
         УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтаФорма, Элементы.Список)
КонецПроцедуры

будет четыре:

&НаСервере
Процедура НастройкиДинамическогоСписка()
         Отчеты.РеестрДокументов.НастройкиДинамическогоСписка(ЭтотОбъект);
КонецПроцедуры

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте 
Процедура Подключаемый_ВыполнитьКоманду(Команда)
         Если Команда.Имя = "ПодменюПечатьОбычное_Реестр" Тогда 
             НастройкиДинамическогоСписка();
         КонецЕсли;
         ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры

&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
          ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
          ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

 

3. И то, чего нет в указанной статье:

В общем модуле УправлениеПечатьюПереопределяемый, в процедуре ПриОпределенииОбъектовСКомандамиПечати  нужно добавить свои созданные документы, для которых нужна печать:

Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт
               ....
               СписокОбъектов.Добавить(Документы.ФормированиеЗаписейРаздела7ДекларацииНДС);
               ////////////////////Свои документы
               СписокОбъектов.Добавить(Документы.МойДокумент1);
               СписокОбъектов.Добавить(Документы.МойДокумент2);
               ....
КонецПроцедуры 

 

В Модуле Менеджера всё остается без изменений.

(для полноты приведен урезанный код примера Модуля Менеджера из указанной статьи //infostart.ru/public/237013/ )

Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт 
                  КомандаПечати = КомандыПечати.Добавить();
                  КомандаПечати.Идентификатор = "Акт";
                  КомандаПечати.Представление = "Дополнительный акт";
                  КомандаПечати.Обработчик    = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
                  КомандаПечати.СписокФорм    = "ФормаСписка,ФормаДокумента";
КонецПроцедуры 

Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт 
                ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
                Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Акт") Тогда  УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Акт", "Акт",
                               СформироватьНесколькоАктов(МассивОбъектов),"Документ.Приказ.Акт");
                КонецЕсли;
КонецПроцедуры 

Функция   СформироватьНесколькоАктов(МассивОбъектов)
            ТабДокумент = Новый ТабличныйДокумент;
            Для каждого Ссылка из МассивОбъектов Цикл
                       ТабДокументОбъекта = СформироватьАкт(Ссылка);
                       Если ТабДокумент.ВысотаТаблицы > 0 И ТабДокументОбъекта.ВысотаТаблицы > 0 Тогда 
                                   ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц()
                       КонецЕсли;
                       ТабДокумент.Вывести(ТабДокументОбъекта)
           КонецЦикла;
           Возврат ТабДокумент
КонецФункции 

Функция  СформироватьАкт(Ссылка)
             ТабДокумент = Новый ТабличныйДокумент;
             // подготовка ТабДокумента
             Возврат ТабДокумент
КонецФункции 

 

 

БСП 2.4.3 БСП 2.3.6 релиз Бухгалтерии 3.0.52.35 команды печати механизм печати печатные формы Бухгалтерия 3.0 БП 3.0 самописный документ свой документ новый документ нетиповой документ.

См. также

БСП (Библиотека стандартных подсистем) Программист Платные (руб)

Синтакс-помощник БСП - cправочник по библиотеке стандартных подсистем. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП.

1800 руб.

21.11.2024    158    1    0    

2

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

В статье описан алгоритм для включения документа или справочника в систему БСП. Будет полезно программистам 1С, начинающим работать с БСП.

24.10.2024    1129    PROSTO-1C    0    

13

БСП (Библиотека стандартных подсистем) Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

В материале описан универсальный механизм работы с добавленными элементами на общую форму «ФормаОтчета». Думаю, облегчит работу многим разработчикам.

08.10.2024    1007    PROSTO-1C    4    

12

БСП (Библиотека стандартных подсистем) Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

04.10.2024    1856    MadRave    11    

24

БСП (Библиотека стандартных подсистем) Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пример отслеживания прогресса фонового выполнения дополнительной обработки с использованием программного интерфейса длительных операций БСП.

10.09.2024    1849    MadRave    1    

17

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

А что, если долгожданная реализация Паузы в 1С смутно напоминает старую, проверенную? А?!

06.09.2024    1267    n_mezentsev    10    

8

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Добавим дополнительные свойства в новый документ средствами БСП

02.09.2024    4125    John_d    10    

52

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

Всё больше организаций выбирает для серверов под 1С операционные системы Linux. Одним из отличий систем Windows и Linux является отсутствие COM объектов, которые зачастую использовались для формирования печатных форм офисных документов (Word). Конечно, можно выполнять печать и на клиенте, но есть риск импортозамещения. В работе у меня случались проблемы с зависанием процесса Word, поэтому я не люблю его использовать.

29.07.2024    5379    PROSTO-1C    12    

52
Отзывы
2. Vladimir Litvinenko 2896 18.09.17 13:42 Сейчас в теме
Насколько понимаю эта информация относится в целом к БСП 2.4.3 https://its.1c.ru/db/bsp243doc#content:9323:hdoc , не только к Бухгалтерии 3.0.52.35. А значит справедлива для предстоящих обновлений всех типовых конфигураций. Сравните с документацией по БСП 2.3.6 https://its.1c.ru/db/bsp23doc#content:1728:hdoc.

Было бы хорошо изменить заголовок публикации. Тема касается большего количества пользователей, чем может заинтересовать заголовок.
keller; Shmell; +2 Ответить
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dkonakov 10 18.09.17 13:07 Сейчас в теме
Спасибо, очень вовремя написанная статья!
2. Vladimir Litvinenko 2896 18.09.17 13:42 Сейчас в теме
Насколько понимаю эта информация относится в целом к БСП 2.4.3 https://its.1c.ru/db/bsp243doc#content:9323:hdoc , не только к Бухгалтерии 3.0.52.35. А значит справедлива для предстоящих обновлений всех типовых конфигураций. Сравните с документацией по БСП 2.3.6 https://its.1c.ru/db/bsp23doc#content:1728:hdoc.

Было бы хорошо изменить заголовок публикации. Тема касается большего количества пользователей, чем может заинтересовать заголовок.
keller; Shmell; +2 Ответить
3. dkonakov 10 18.09.17 13:47 Сейчас в теме
(2) Первыми столкнулись именно пользователи БП 3.0.
4. and_r 18.09.17 20:13 Сейчас в теме
Большое спасибо за статью! Уже голову сломал как вернуть печать, все сделал кроме общего модуля
Death_eye; portal2011; +2 Ответить
5. Бубузяка 62 20.09.17 09:14 Сейчас в теме
1. Что касается БП 3.0, то эта статья для тех кто не знает, что это можно прочитать в файле "UpdateSSLhtm" в каталоге, куда устанавливается БСП 2.4. Скачайте БСП 2.4 и получите порядок обновления этой подсистемы и прочих, которые поменялись в 2.4. К тому же 1С поставляет обработку, которая модифицирует код старой версии БСП в объектах, подключенных к БСП при внедрении.

2. Порядок внедрения БСП изложен в документации https://its.1c.ru/db/bsp244doc/ в картинках и кусках кода для вставки, если делать по шагам, то проблем не возникает.
Death_eye; Vyacheslav_Kochnev; user705522_constantin_h; berezdetsky; h00k; ixijixi; +6 Ответить
6. vicmos 42 25.09.17 23:16 Сейчас в теме
Большое спасибо за помощь!!!!!!!!
7. shumvlesu 26.09.17 17:34 Сейчас в теме
&НаКлиенте 
Процедура Подключаемый_ВыполнитьКоманду(Команда)
         Если Команда.Имя = "ПодменюПечатьОбычное_Реестр" Тогда 
             НастройкиДинамическогоСписка();
         КонецЕсли;
         ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры


У меня ругалось на ВыполнитьКоманду пока не глянул в параметры этой процедуры. Элементы.Список должен содержать поле - Ссылка. Версия БСП - 2.4.2.25
keller; Светлый ум; CepeLLlka; LosevI; LomayaZakat; +5 Ответить
8. Korolev 49 28.09.17 10:17 Сейчас в теме
Благодарю за публикацию. Пригодилась! :)
9. l2qweit 28.09.17 15:09 Сейчас в теме
Огромное человеческое спасибо !!! особенно за.

В общем модуле УправлениеПечатьюПереопределяемый, в процедуре ПриОпределенииОбъектовСКомандамиПечати нужно добавить свои созданные документы, для которых нужна печать:
Death_eye; Genda; +2 Ответить
10. nipil 03.10.17 18:32 Сейчас в теме
Есть косяк именно в бухгалтерии 3.0.52.*.
Для подключенных "Дополнительных отчетов и обработок" в "ФормеСписка" для документов пропала кнопка - "Отчеты...".
Причем в БСП все нормально работает.
Глубоко не копал. Тестовую конфигурацию вылечил:

...."Включить возможность изменения"
Документы.ПлатежныеПоручения.ФормаСписка
ГруппаКоманднаяПанель добавил ПодменюПечать.

Сейчас пытаюсь написать дополнительную обработку которая по кнопке "Печать " восстановит кнопку "Отчеты...". (Опять зубы через задницу лечить...)
11. nipil 04.10.17 19:22 Сейчас в теме
Решил расширением конфигурации.
Общий модуль - Подключаемые команды
&После("ВывестиКоманды")
Процедура рПП_ВывестиКоманды(Форма, Команды, ПараметрыРазмещения)
	Если Форма.Имяформы = "Документ.ПлатежноеПоручение.Форма.ФормаСписка" Тогда
		// Сменим родителя ПодменюОтчеты
			ЭлементПодменюОтчеты = Форма.Элементы.Найти("ПодменюОтчеты");
			ЭлементГруппаКоманднаяПанель = Форма.Элементы.Найти("ГруппаКоманднаяПанель");
			Форма.Элементы.Переместить(ЭлементПодменюОтчеты,ЭлементГруппаКоманднаяПанель);
	КонецЕсли;
КонецПроцедуры
Показать
12. Dunda 48 06.10.17 15:16 Сейчас в теме
ОООООООО спасибо огромное! Методом тыка нашла лишние процедуры, теперь по вашей статье попробую до конца доделать
13. Alex_1974 37 09.10.17 13:28 Сейчас в теме
Присоединяюсь к благодарившим, очень вовремя, просто спасли!!!
14. iiceberg 92 18.10.17 10:18 Сейчас в теме
Добавлю свои 5 копеек.
Когда добавляете (переписываете) под БСП 2.4 свои объекты, по мимо действий указанных в статье, по крайней мере для ERP 2.4, необходимо проделать еще несколько манипуляций, что бы вся эта магия от 1С версии 2.4 заработала.
А конкретно надо сделать следующее:
Для Добавления команд Отчеты, ввод на основании надо указать БСП, что для этого объекта надо использовать механизм "стандартных подсистем". Делаем следующее:
- для отчетов: Общий модуль "ВариантыОтчетовПереопределяемый" процедура "ОпределитьОбъектыСКомандамиОтчетов" добавляем свой объект в массив.

- для Ввода на основании: Общий модуль "СозданиеНаОснованииПереопределяемый" процедура "ПриОпределенииОбъектовСКомандамиСозданияНаОсновании" добавляем свой объект в массив.

для печати, заполнения и проч. видимо тоже есть процедуры, но я их не искал и не использовал из-за ненадобности (пока еще) =).

надеюсь сэкономил полчаса работы.
keller; programmer_87; sandra; bugtester; +4 Ответить
15. agent00mouse 256 26.10.17 10:02 Сейчас в теме
Обе статьи актуальны, т.к. есть и самописаные конфы, созданные ещё во времена динозавров.
16. Shaldryn 01.11.17 12:16 Сейчас в теме
Статья пригодилась, спасибо, как раз делали переход с КА 2.2 на 2.4
правда я так понял команда печати для формы регистра сведений это не прокатит, там идет сравнение типов, на этом все и рушится, по старой схеме раньше работало все...
17. serg0776 5 16.11.17 10:16 Сейчас в теме
т.е. при следующем обновлении эта процедура затрется ПриОпределенииОбъектовСКомандамиПечати
И так отслеживать это постоянно.
19. aldan 22 22.11.17 14:46 Сейчас в теме
(17) Меня тоже это печалит. Уже несколько раз добавлял свои документы после обновления. Не возникло идей, каким образом можно избавиться от редактирования "ПриОпределенииОбъектовСКомандамиПечати" чтобы после обновления не пропадали печатные печатные формы в "своих" документах?
18. serg0776 5 16.11.17 10:29 Сейчас в теме
Такое ощущение, что студенты писали код
Как будто нельзя через Метаданные это сделать!
Супер универсальность.
т.е. если завтра у разработчиков будет новый объект, и если они забыли про этот модуль то печати не будет в этом объекте. КЛАСС.

Функция УниверсальнаяСтруктураОписанияОбъектовПодключаемыхКоманд() Экспорт
	
	//:::Справочники
	ИменаСправочников = Новый Массив;
	ИменаСправочников.Добавить("Банки");
	ИменаСправочников.Добавить("БанковскиеСчета");
	ИменаСправочников.Добавить("ВидыНалогов");
	ИменаСправочников.Добавить("ВидыСкидокНаценок");
	ИменаСправочников.Добавить("ВидыЦен");
	ИменаСправочников.Добавить("ВидыЦенКонтрагентов");
	ИменаСправочников.Добавить("ВнеоборотныеАктивы");
	ИменаСправочников.Добавить("ДоговорыКонтрагентов");
	ИменаСправочников.Добавить("Кассы");
	ИменаСправочников.Добавить("КассыККМ");
	ИменаСправочников.Добавить("Комиссии");
	ИменаСправочников.Добавить("КлючевыеРесурсы");
	ИменаСправочников.Добавить("КонтактныеЛица");
	ИменаСправочников.Добавить("Контрагенты");
	ИменаСправочников.Добавить("НаправленияДеятельности");
	ИменаСправочников.Добавить("Номенклатура");
	ИменаСправочников.Добавить("КатегорииНоменклатуры");
	ИменаСправочников.Добавить("НомераГТД");
	ИменаСправочников.Добавить("Организации");
	ИменаСправочников.Добавить("ПартииНоменклатуры");
	ИменаСправочников.Добавить("СценарииПланирования");
	ИменаСправочников.Добавить("ПравилаОбменаСПодключаемымОборудованиемOffline");
	ИменаСправочников.Добавить("Проекты");
	ИменаСправочников.Добавить("Сотрудники");
	ИменаСправочников.Добавить("Спецификации");
	ИменаСправочников.Добавить("СтатьиДвиженияДенежныхСредств");
	ИменаСправочников.Добавить("СтруктурныеЕдиницы");
	ИменаСправочников.Добавить("ФизическиеЛица");
	ИменаСправочников.Добавить("ХарактеристикиНоменклатуры");
	ИменаСправочников.Добавить("Ячейки");
	
	//:::Документы
	ИменаДокументов = Новый Массив;
	ИменаДокументов.Добавить("АвансовыйОтчет");
	ИменаДокументов.Добавить("АктВыполненныхРабот");
	ИменаДокументов.Добавить("АмортизацияВА");
	ИменаДокументов.Добавить("Бюджет");
	ИменаДокументов.Добавить("ВводНачальныхОстатков");
	ИменаДокументов.Добавить("Взаимозачет");
	ИменаДокументов.Добавить("ВыработкаВА");
	ИменаДокументов.Добавить("Доверенность");
	ИменаДокументов.Добавить("ДополнительныеРасходы");
	ИменаДокументов.Добавить("ЗаданиеНаРаботу");
	ИменаДокументов.Добавить("ЗаказНаПроизводство");
	ИменаДокументов.Добавить("ЗаказПокупателя");
	ИменаДокументов.Добавить("ЗаказПоставщику");
	ИменаДокументов.Добавить("ЗакрытиеМесяца");
	ИменаДокументов.Добавить("ИзменениеПараметровВА");
	ИменаДокументов.Добавить("ИнвентаризацияЗапасов");
	ИменаДокументов.Добавить("КадровоеПеремещение");
	ИменаДокументов.Добавить("КорректировкаРеализации");
	ИменаДокументов.Добавить("КорректировкаРегистров");
	ИменаДокументов.Добавить("МаршрутныйЛист");
	ИменаДокументов.Добавить("НачислениеЗарплаты");
	ИменаДокументов.Добавить("НачислениеНалогов");
	ИменаДокументов.Добавить("НачисленияПоКредитамИЗаймам");
	ИменаДокументов.Добавить("Операция");
	ИменаДокументов.Добавить("ОперацияПоПлатежнымКартам");
	ИменаДокументов.Добавить("ОприходованиеЗапасов");
	ИменаДокументов.Добавить("ОтчетКомиссионера");
	ИменаДокументов.Добавить("ОтчетКомитенту");
	ИменаДокументов.Добавить("ОтчетОПереработке");
	ИменаДокументов.Добавить("ОтчетОРозничныхПродажах");
	ИменаДокументов.Добавить("ОтчетПереработчика");
	ИменаДокументов.Добавить("ПередачаВА");
	ИменаДокументов.Добавить("ПеремещениеДС");
	ИменаДокументов.Добавить("ПеремещениеДСПлан");
	ИменаДокументов.Добавить("ПеремещениеЗапасов");
	ИменаДокументов.Добавить("ПеремещениеПоЯчейкам");
	ИменаДокументов.Добавить("ПереоценкаВРозницеСуммовойУчет");
	ИменаДокументов.Добавить("ПересортицаЗапасов");
	ИменаДокументов.Добавить("ПланПродаж");
	ИменаДокументов.Добавить("ПлатежнаяВедомость");
	ИменаДокументов.Добавить("ПлатежноеПоручение");
	ИменаДокументов.Добавить("ПоступлениеВКассу");
	ИменаДокументов.Добавить("ПоступлениеДСПлан");
	ИменаДокументов.Добавить("ПоступлениеНаСчет");
	ИменаДокументов.Добавить("ПриемИПередачаВРемонт");
	ИменаДокументов.Добавить("ПриемНаРаботу");
	ИменаДокументов.Добавить("ПринятиеКУчетуВА");
	ИменаДокументов.Добавить("ПриходнаяНакладная");
	ИменаДокументов.Добавить("ПриходныйОрдер");
	ИменаДокументов.Добавить("ПрочиеРасходы");
	ИменаДокументов.Добавить("РаспределениеЗатрат");
	ИменаДокументов.Добавить("РасходДСПлан");
	ИменаДокументов.Добавить("РасходИзКассы");
	ИменаДокументов.Добавить("РасходнаяНакладная");
	ИменаДокументов.Добавить("РасходныйОрдер");
	ИменаДокументов.Добавить("РасходСоСчета");
	ИменаДокументов.Добавить("РезервированиеЗапасов");
	ИменаДокументов.Добавить("СборкаЗапасов");
	ИменаДокументов.Добавить("СведенияОЗастрахованныхЛицахСЗВ_М");
	ИменаДокументов.Добавить("СверкаВзаиморасчетов");
	ИменаДокументов.Добавить("СдельныйНаряд");
	ИменаДокументов.Добавить("Событие");
	ИменаДокументов.Добавить("СписаниеВА");
	ИменаДокументов.Добавить("СписаниеЗапасов");
	ИменаДокументов.Добавить("СправкаНДФЛ");
	ИменаДокументов.Добавить("СчетНаОплату");
	ИменаДокументов.Добавить("СчетНаОплатуПоставщика");
	ИменаДокументов.Добавить("СчетФактура");
	ИменаДокументов.Добавить("СчетФактураПолученный");
	ИменаДокументов.Добавить("Табель");
	ИменаДокументов.Добавить("Увольнение");
	ИменаДокументов.Добавить("УчетВремени");
	ИменаДокументов.Добавить("ЧекККМ");
	ИменаДокументов.Добавить("ЧекККМВозврат");
	
	СтруктураОписания = Новый Структура;
	СтруктураОписания.Вставить("Справочники", ИменаСправочников);
	СтруктураОписания.Вставить("Документы", ИменаДокументов);
	
	Возврат СтруктураОписания;
	
КонецФункции 
Показать
kbulygin; MikeI; +2 Ответить
45. MikeI 73 12.12.19 14:31 Сейчас в теме
(18) Класс - это очень емко. У меня только не цензурная лексика.
55. belalex 27.04.22 03:31 Сейчас в теме
(18)не понятно зачем в принципе это фильтр делать если форма вызывает этот можудь значет ег нужно исполнить а не дополнительно фильтровтаь по обекту...
20. kosikov_oleg 27.11.17 10:59 Сейчас в теме
Спасибо! Очень своевременно.
21. user705522_constantin_h 37 27.11.17 11:53 Сейчас в теме
Спасибо! Хорошая статья.
22. yase 24.12.17 16:34 Сейчас в теме
Спасибо. Добавлю еще неочевидный момент:
в форме списка в динамическом списке ОБЯЗАТЕЛЬНО должна быть Ссылка (писали выше). Но если ее видимость отключить в пользовательском режиме (или в конфигураторе - не важно), то печать перестает работать.
Выход: в настройках поля включить флаг "Использовать всегда".
Вот цитата с итс:
Внимание. Поле Ссылка динамического списка формы должно быть доступно в обработчике команды. Для этого необходимо в свойствах поля Ссылка, вложенного в реквизит формы типа ДинамическийСписок, включить флажок Использовать всегда.
Suslik_Johns; CepeLLlka; Boyborodin; Thalt; LomayaZakat; +5 Ответить
48. Suslik_Johns 30.12.19 13:40 Сейчас в теме
(22) Спасибо! Вы меня спасли!
23. Saifa 32 20.02.18 13:49 Сейчас в теме
Вот это да! Сутки промучилась, прежде чем нашла пилюлю... Слов нет. Спасибо вам!
Suslik_Johns; +1 Ответить
24. sandra 25.02.18 15:16 Сейчас в теме
Спасибо! Я тоже несколько часов убила, пока нашла в чем дело. А надо было сначала статьи от умных людей почитать))
В итоге от добавления команд печати средствами БСП решила отказаться - перспектива при каждом обновлении восстанавливать затертый код не радует(((
newvideo; +1 Ответить
25. arshanskiyav 31 09.03.18 21:03 Сейчас в теме
Делаю расширение со своим док-ом, из-за этого момента чуть не забросил мысль о расширении.
Скрытый текст
26. nysysimara 26 10.05.18 13:42 Сейчас в теме
спасибо за подробное описание
27. demetrius2003 23.06.18 15:55 Сейчас в теме
Что то я не понимаю. Разве никто не наткнулся на нескладушки? Статья нихрена не универсальная! В УТ (11.4.1.273), к примеру, нет УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати!
КомандаПечати.Обработчик    = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";

Не будет работать! Более того, в УправлениеПечатьюУТКлиент нет ничего похожего на ВыполнитьКомандуПечати! Т. е. как быть в случае с УТ вообще непонятно! Не работает эта херня в УТ!
newvideo; +1 Ответить
29. LosevI 15.08.18 09:18 Сейчас в теме
(27) Да, в УТ это не работает, такого общего модул, конечно же, нет.
А если пользоваться "УправлениеПечатьюКлиент.ВыполнитьКомандуПечати", то выдает уже другую ошибку:
Обращение к процедуре объекта как к функции (ВыполнитьКомандуПечати)
Вообщем, как адаптировать для УТ пока не разобрался. У вас нашлось решение?
vtolstenev; +1 Ответить
43. TimoninD 02.10.19 05:12 Сейчас в теме
(29) Если убрать обработчик "КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати" "
, то в УТ все будет работать.
vtolstenev; Suslik_Johns; +2 Ответить
54. Evgeniia_S 28.06.21 22:35 Сейчас в теме
(43) Я тоже запуталась с УТ, у меня 11.0.9.14. Там нет ни УправлениеПечатью.ПриСозданииНаСервере, ни ПодключаемыеКоманды.ПриСозданииНаСервере
28. ПрестарелыйЗаяц 28.06.18 22:01 Сейчас в теме
У меня все работает, чего там у тебя не работает непонятно. Автору респект.
30. kiyamov 3 23.08.18 16:20 Сейчас в теме
ЗУП 3.1. Ни в какую не появляется кнопка "Печать" в справочнике "Справки физических лиц". Делаю через расширение. Добавил в ПриОпределенииОбъектовСКомандамиПечати СписокОбъектов.Добавить(Справочники.СправкиФизическихЛиц). Прописал в ПриСозданииНаСервере ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект). Толку нет. Кнопка не пояляется. Что я делаю не так?
31. oksimisis 20.09.18 03:28 Сейчас в теме
Спасибо большущее! Сутки голову ломаю, найти не могла где собака порылась.
32. BadMadJohn 34 16.10.18 22:02 Сейчас в теме
Спасибо большое. Чутье подсказывало, что где-то теперь нужно указывать документы в которых должны подключаться команды, думал в каком-то регистре сведений. Хорошо что есть гугл, который по запросу "команды печати 1с БСП" вывел прямиком на вашу статью. Не пришлось долго искать.
33. Геннадьевич 20 17.10.18 13:28 Сейчас в теме
Спасибо. Очень полезно.
Как сделать добавление под кнопку "Печать" внешних печатных форм добавленных в базу?
34. scarabey2006 31 21.11.18 10:31 Сейчас в теме
Спасибо, пригодилось, не получилось пока с журналом документов и формой списка, ругается по всякому, буду разбираться
35. natik_82 21.12.18 08:09 Сейчас в теме
Отличная статья! Очень помогла!!!
36. user619273_alevtina 27.12.18 12:04 Сейчас в теме
Спасибо! Во время, очень помогло.
37. user619273_alevtina 27.12.18 12:05 Сейчас в теме
Спасибо! Очень помогли. Очень вовремя увидела вашу статью.
38. demetrius2003 11.01.19 13:08 Сейчас в теме
Апну немного тему! Граждане! Общего описания этого загадошного механизма нет ни у кого? УТ так и не работает данный вариант. Более того! В самой УТ в разных доках реализовано это по разному! И от релиза к релизу ботва эта меняется со скоростью света! Может кто описать процесс? В общих чертах?
39. newvideo 27.01.19 14:22 Сейчас в теме
во всех статьях в сети УправлениеПечатьюБПКлиент

В УНФ 1.6.5. БСП 2.3.1.53
в модуле УправлениеПечатьюСлужебныйКлиент
в процедуре ВыполнитьПодключаемуюКомандуПечатиПодготовкаОбъектовПечати
вываливается:

{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(125)}: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода Результат = Вычислить(Обработчик);
по причине:
{(1,1)}: Переменная не определена (УправлениеПечатьюБПКлиент)
<<?>>УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати(ОписаниеКоманды)

Менял в Модуле Менеджера Документа
УправлениеПечатьюБПКлиент на УправлениеПечатьюКлиент и также на
Подключаемый_ВыполнитьКомандуПечати
всёравно ошибки, куда же копать?

БПКлиент только в Бух и работает, кто-нибудь нашел решение для других конфигураций?
40. newvideo 27.01.19 14:28 Сейчас в теме
Уточню в УНФ 1.6.5. БСП 2.3.2.53
Глянул в отладчике какой параметр у КомандаПечати.Обработчик в стандартной печати, оказывается никакого нет.
Поэтому указал КомандаПечати.Обработчик = "";
Заработало
Suslik_Johns; +1 Ответить
41. selez-a 18 21.05.19 08:53 Сейчас в теме
Спасибо автору. Сэкономил уйму времени.
42. Sergynia 4 08.06.19 00:32 Сейчас в теме
44. Alani 15.11.19 16:04 Сейчас в теме
Благодарю!!! Тоже намучилась с этой кнопкой печати при обновлении. "3. И то, чего нет в указанной статье:" помогло, поскольку остальное я уже на сто раз проверила.
46. нинас 27.12.19 11:08 Сейчас в теме
Спасибо за статью. И мне помогло
47. Suslik_Johns 30.12.19 13:39 Сейчас в теме
Вдруг кто-то тоже мучается - напишу о своем)

Кнопка печати в форме документа была и работала.
В форме списка была, но не активна.

Решилось так:
Кнопка стала активна после добавления:
в модуле менеджера:
Процедура ДобавитьКомандыПечати(КомандыПечати)
строчки:
КомандаПечати.СписокФорм = "ФормаСписка,ФормаДокумента"; (не было этой строчки вообще)

Но все же при нажатии не работала, Вылезала ошибка:
"Команда не может быть выполнена для указанного объекта".

Решение следующее:
В форме списка документа добавила еще одно поле - поле Ссылка. После этого печать заработала (вдруг кому еще пригодится)!
Прочитала об этом выше в комментариях:
http://forum.infostart.ru/forum8/topic178004/message1903429/#message1903429

Спасибо всем за помощь!)
49. z_serg_v 523 06.02.20 13:24 Сейчас в теме
БП 3.0.75.70
Создал расширение:Расш_1 добавил 2 общих модуля в расширение и добавил в общие модули старые процедуры ПриСозданииНаСервере(.......


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


ОбщиеМодули.ДополнительныеОтчетыИОбработки

// Устарела. Следует использовать ПодключаемыеКоманды.ПриСозданииНаСервере.
//
// Параметры:
//   Форма - УправляемаяФорма - Форма.
//   ТипФормы - Строка - Тип формы.
//
Процедура ПриСозданииНаСервере(Форма, ТипФормы = Неопределено) Экспорт
	Возврат;
КонецПроцедуры
Показать


Тоже заработало
50. BigBoss 2 13.01.21 13:03 Сейчас в теме
По нажатию на появившуюся кнопку печати на форме самописного документа, не происходит ничего... Даже точка останова не срабатывает в процедуре "Печать" в модуле менеджера... С чем может быть связанно? БП 3.0
51. BigBoss 2 14.01.21 06:39 Сейчас в теме
(50) Решил проблему нужно было встроить подсистему "Подключаемые команды".
52. Xershi 1555 16.01.21 12:26 Сейчас в теме
БСП 3.0.1.434
Форма обработки с ДС нужного документа
В при создании теперь так:
// СтандартныеПодсистемы.ПодключаемыеКоманды
	Массив = Новый Массив;
	Массив.Добавить(Тип("ДокументСсылка.СверкаВзаиморасчетов"));
	ПараметрыРазмещения = Новый Структура("Источники, КоманднаяПанель, ПрефиксГрупп", Новый ОписаниеТипов(Массив), Элементы.СписокДокументов.КоманднаяПанель, "");
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	

Нужный документ - СверкаВзаиморасчетов, ДС - СписокДокументов.
53. frodoirbit 23.05.21 13:17 Сейчас в теме
Добрый день, пожалуйста помогите с ошибкой
Расширение в ЗУП 3.1.17.171
В менеджере объекта следующий код
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт 
                  КомандаПечати = КомандыПечати.Добавить();
                  КомандаПечати.Идентификатор = "Акт";
                  КомандаПечати.Представление = "Дополнительный акт";
                  КомандаПечати.Обработчик    = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
                  КомандаПечати.СписокФорм    = "ФормаСписка,ФормаДокумента";
КонецПроцедуры 

Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт 
                ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
                Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Акт") Тогда  УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Акт", "Акт",
                               СформироватьНесколькоАктов(МассивОбъектов),"Документ.СПР_СправкаПособиеРР.Акт");
                КонецЕсли;
КонецПроцедуры 

Функция   СформироватьНесколькоАктов(МассивОбъектов)
            ТабДокумент = Новый ТабличныйДокумент;
            Для каждого Ссылка из МассивОбъектов Цикл
                       ТабДокументОбъекта = СформироватьАкт(Ссылка);
                       Если ТабДокумент.ВысотаТаблицы > 0 И ТабДокументОбъекта.ВысотаТаблицы > 0 Тогда 
                                   ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц()
                       КонецЕсли;
                       ТабДокумент.Вывести(ТабДокументОбъекта)
           КонецЦикла;
           Возврат ТабДокумент
КонецФункции 

Функция  СформироватьАкт(Ссылка)
             ТабДокумент = Новый ТабличныйДокумент;
             // подготовка ТабДокумента
             Возврат ТабДокумент
КонецФункции
Показать


В форме документа

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
		
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
КонецПроцедуры

#Область ПодключаемыеКоманды

&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
	ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры

#КонецОбласти
Показать

В форме списка

&НаСервере
Процедура НастройкиДинамическогоСписка()
         Отчеты.РеестрДокументов.НастройкиДинамическогоСписка(ЭтотОбъект);
КонецПроцедуры

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте 
Процедура Подключаемый_ВыполнитьКоманду(Команда)
         Если Команда.Имя = "ПодменюПечатьОбычное_Реестр" Тогда 
             НастройкиДинамическогоСписка();
         КонецЕсли;
         ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры

&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
          ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);
КонецПроцедуры

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


В общий модуль добавил
&Перед("ПриОпределенииОбъектовСКомандамиПечати")
Процедура СПР_ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов)
    СписокОбъектов.Добавить(Документы.СПР_СправкаПособиеРР);
КонецПроцедуры

Кнопки выходят на формы но при нажатии выходит ошибка
Прикрепленные файлы:
56. Ctrl P 193 09.08.22 16:44 Сейчас в теме
Добавить в расширение модуль УправлениеПечатьюПереопределяемый, вставить код, и ОБЯЗАТЕЛЬНО снять защиту от опасных действий...

&Вместо("ПриОпределенииОбъектовСКомандамиПечати")
Процедура ПриОпределенииОбъектовСКомандамиПечати_tmc(СписокОбъектов) Экспорт
	
	ПродолжитьВызов(СписокОбъектов);
	
	СписокОбъектов.Добавить(Документы.ЗаявкаНаВыдачуТМЦ);	
	
КонецПроцедуры
keller; Tommy82; +2 Ответить
Оставьте свое сообщение