Печать непроведенных документов в УТ 11

13.05.21

Учетные задачи - Печатные формы

Печать непроведенных документов (в частности, из внешних печатных форм).

Столкнулся я с забавной историей - в УТ 11 большинство печатных форм документов перед формированием требуют проведения документа. Кое-где это оправдано (когда используются данные, получаемые при проведении или движения документов), кое-где, наверно, нет. У меня, в частности, встал вопрос о печати документа "УстановкаЦенНоменклатуры", да еще и разработанной внешней формой (через дополнительные обработки). 

Некоторое время я гуглил, нашел несколько толковых статей. Наверно, самая подробная вот Печать непроведенных документов (через расширение). Однако, я столкнулся с тем, что, независимо от флагов в параметрах (ни "ПроверкаПроведенияПередПечатью", ни "РежимЗаписи"), если это печатная форма внешняя, УТ все равно хотела проведенности.

Спасибо доброму человеку из комментариев вышеприведенной статьи (dexxxqqq), я-таки нашел, где это обойти, ну и чтобы кому-то еще это помогло, далее привожу код.

Это делалось мной через расширение конфигурации - модуль "УправлениеПечатьюСлужебныйКлиент"

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

тут "ВашИденификаторИзМодуляОбработки" - это то, как вы назвали "ИдентификаторКоманды" в функции "СведенияОВнешнейОбработке()".

Тестировалось на:

1С:Предприятие 8.3 (8.3.17.1549)

Управление торговлей, редакция 11 (11.4.13.51) 

Windows 7 x64 и Windows Server 2008 R2 (опять же, если это важно).

Вступайте в нашу телеграмм-группу Инфостарт

Печать УТ непроведенные документы

См. также

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Библиотека стандартных подсистем Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    29634    78    30    

104

Печатные формы Учет рабочего времени Учет ОС и НМА Бухгалтер 1С v8.3 Бухгалтерский учет Оперативный учет Управляемые формы 1С:ERP Управление предприятием 2 1C:ERP Транспорт, автопарки, такси Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Платные (руб)

Программа для автоматизации учета путевых листов в 1С - расширение, добавляющее в конфигурацию "ERP", документ Путевой лист и печатные формы установленных образцов для легковых и грузовых авто, расчет и списание нормативного количества топлива, отчет "Реестр путевых листов" с отбором по автомобилю и по водителю (через настройки) Позволит контролировать расход топлива, потому что сразу будет виден сверхнормативный расход.

25200 руб.

23.07.2025    2159    6    0    

6

Печатные формы Взаиморасчеты Оптовая торговля Производство готовой продукции (работ, услуг) Акт сверки Бухгалтер Пользователь Оперативный учет Управляемые формы 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Задайте для каждой организации свою печать и для каждого физического лица свою подпись. Выберите в документе печатную форму "... с печатью и подписью" - и автоматически сформируется табличный документ с печатью и подписями той организации и ответственных лиц, которые указаны в документе.

14400 руб.

13.03.2018    66781    242    80    

122

Печатные формы Бухгалтер 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Транспорт, автопарки, такси Бухгалтерский учет Платные (руб)

Учет путевых листов выполнен в виде расширения. Предназначен для учета путевых листов в конфигурации БП 3.0., УТ 11.5 и КА 2.5 Печатная форма: Типовая межотраслевая форма № 3. Утверждена постановлением Госкомстата России от 28.11.97 № 78. Типовая межотраслевая форма № 4-П от 18.09.2008 г. N 152 с учетом изменений указанных в Приказе Министерства транспорта Российской Федерации №368 от 11 сентября 2020 г. №368, Типовая межотраслевая форма № ЭСМ-7, и др. ЭСМ-2, 4-С, 3 спец., 6 спец., ПЛ для Автомобильного крана.

5000 руб.

14.10.2019    42846    300    216    

201

Печатные формы Производство готовой продукции (работ, услуг) Бухгалтер 1С v8.3 Бухгалтерский учет Оперативный учет 1С:Бухгалтерия 3.0 Строительство Россия Бухгалтерский учет Платные (руб)

Откройте для себя заполнение КС-2 и КС-3 в "1С:Бухгалтерия 3.0". Вы получаете удобство, скорость и систему, чтобы заполнить, распечатать и сохранить формы КС-2 и КС-3 из документов "Оказание производственных услуг" или "Реализация товаров услуг". Вы можете заполнить дополнительную информацию о материалах из документов "Требование-накладная" и указать сведения, которые не предусмотрены типовой конфигурацией "1С:Бухгалтерия 3.0". Так же доступно множество настроек для формирования КС-2 и КС-3.

9600 руб.

13.02.2019    109405    478    46    

469

Печатные формы Программист Пользователь 1С v8.3 Управляемые формы 1C:Бухгалтерия 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Платные (руб)

Научите вашу 1C печатать из 1С в файл Word (Например: трудовые договоры, договоры с контрагентами, спецификации, дополнительные соглашения, приказы, коммерческие предложения, акты, накладные, карточки партнера или любого справочника и многие другие). Универсальная печать предназначена для формирования печатных форм на основе шаблонов в формате Word из любой конфигурации 1С. С помощью данного инструмента можно самостоятельно заполнить шаблон реквизитами справочника или документа 1С и сформировать печатные формы на основании ссылки на любой объект.

6192 руб.

08.10.2019    52710    349    107    

184

Печатные формы Логистика, склад и ТМЦ Бухгалтер 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Обработки для "1С:Бухгалтерия предприятия 3.0", которые формируют акты МХ-1 и МХ-3 для документов "ПоступлениеТоваровУслуг", "Реализация товаров услуг", "Возврат товаров поставщику", "Передача материалов в эксплуатацию" соответственно. Так же можно сформировать акты с факсимиле, которая загружена в 1С:Бухгалтерия предприятия 3.0.

6000 руб.

18.02.2019    69715    253    15    

201
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. stdstd 56 14.12.21 19:15 Сейчас в теме
Работает в ЗУП 3.1.20.36, спасибо!
2. Loxmatij 24.12.21 08:25 Сейчас в теме
Управление торговлей, редакция 11 (11.4.13.85) - Работает! Спасибо!
3. deda 514 25.04.22 14:08 Сейчас в теме
Работает на УТ 11.5 Спасибо!
4. olbir 07.06.22 10:27 Сейчас в теме
Работает на УАТ . Спасибо!
5. Eugene_Elhaz 20.07.22 18:08 Сейчас в теме
&Вместо("ВыполнитьОткрытиеПечатнойФормы")
Процедура РФ_ВыполнитьОткрытиеПечатнойФормы(ИсточникДанных, ИдентификаторКоманды, ОбъектыНазначения, Форма, СтандартнаяОбработка)
	
	Если ТипЗнч(ИсточникДанных) = Тип("СправочникСсылка.ДополнительныеОтчетыИОбработки") Тогда
		врПараметры = Новый Структура;
		врПараметры.Вставить("Форма", Форма);
		врПараметры.Вставить("ИсточникДанных", ИсточникДанных);
		врПараметры.Вставить("ИдентификаторКоманды", ИдентификаторКоманды);
		ВыполнитьОткрытиеПечатнойФормыЗавершение(ОбъектыНазначения, врПараметры);
	Иначе
		//__ если эта форма нас не интересует, то пусть идет, как и шла
		ПродолжитьВызов(ИсточникДанных, ИдентификаторКоманды, ОбъектыНазначения, Форма, СтандартнаяОбработка);
	КонецЕсли;
	
КонецПроцедуры
Показать


Немножко универсальнее сделал
user1882149; HIgor; +2 Ответить
7. atdonya 128 21.02.23 20:17 Сейчас в теме
(5)В целом, имеет место, но, не факт, что все внешние формы должны печататься не проведенными.
6. zavladaev 526 21.02.23 16:17 Сейчас в теме
Проще в процедуре ДополнительныеОтчетыИОбработкиКлиентПереопределяемый.ПередВыполнениемКомандыПечатиВнешнейПечатнойФормы присвоить переменной СтандартнаяОбработка значение Ложь.
Но там будет применено для всех печатных форм, можно только по типу объектов печати отфильтровать.
8. serg_art 19 21.04.23 07:15 Сейчас в теме
9. atdonya 128 21.04.23 11:12 Сейчас в теме
(8) не проверял, не было необходимости, но должно - эта подсистема принципиально не менялась.
10. pentanom 31 21.04.23 14:59 Сейчас в теме
(8)
а на 11.5 работает?
Посмотрите (3)
11. radeal 25.08.23 13:42 Сейчас в теме
Спасибо за идею. Немного видоизменил, но смысл тот же:
&ИзменениеИКонтроль("ВыполнитьОткрытиеПечатнойФормы")
Процедура РНВ_ВыполнитьОткрытиеПечатнойФормы(ИсточникДанных, ИдентификаторКоманды, ОбъектыНазначения, Форма, СтандартнаяОбработка)

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

КонецПроцедуры
Показать
12. zhry 7 20.09.23 14:53 Сейчас в теме
Если при печати во внешней обработке использовать вызов клиентского метода, эти танцы с расширениями не нужны. Нет проверки на проведенность при вызове "печать" на клиенте. Справедливо для "Управление торговлей, редакция 11 (11.5.13.98)"
13. Pashkaa 16 10.11.25 09:00 Сейчас в теме
В УТ 11.5.24.52 сделал грубо, при условии что выполняется печать через подключаемую команду формы. Вроде работает.

&Вместо("ВыполнитьКоманду")
Процедура ПНД_ВыполнитьКоманду(Форма, Команда, Источник)
	
	ИмяКоманды = Команда.Имя;
	АдресНастроек = Форма.ПараметрыПодключаемыхКоманд.АдресТаблицыКоманд;
	ОписаниеКоманды = ПодключаемыеКомандыКлиентПовтИсп.ОписаниеКоманды(ИмяКоманды, АдресНастроек);
	
	ПараметрыВыполнения = ПараметрыВыполненияКоманды();
	ПараметрыВыполнения.ОписаниеКоманды = Новый Структура(ОписаниеКоманды);
	ПараметрыВыполнения.Форма           = Форма;
	ПараметрыВыполнения.Источник        = Источник;
	ПараметрыВыполнения.ЭтоФормаОбъекта = ТипЗнч(Источник) = Тип("ДанныеФормыСтруктура");
	// Служебные параметры.
	ПараметрыВыполнения.ТребуетсяЗапись  = ПараметрыВыполнения.ЭтоФормаОбъекта И ОписаниеКоманды.РежимЗаписи <> "НеЗаписывать";
	ПараметрыВыполнения.ТребуетсяПроведение = ОписаниеКоманды.РежимЗаписи = "Проводить"
		И (Не ПараметрыВыполнения.ЭтоФормаОбъекта Или Источник.Свойство("Проведен"));
	ПараметрыВыполнения.ТребуетсяРаботаСФайлами = ОписаниеКоманды.ТребуетсяРаботаСФайлами;
	
	// {{ ДОБАВЛЕНО: 
	Если ОписаниеКоманды.РежимЗаписи = "Проводить" Тогда
		ПараметрыВыполнения.ТребуетсяПроведение = ложь;
	КонецЕсли;
	// }} ДОБАВЛЕНО
	
	ПродолжитьВыполнениеКоманды(ПараметрыВыполнения);
	
КонецПроцедуры


&Вместо("НачатьВыполнениеКоманды")
Процедура ПНД_НачатьВыполнениеКоманды(Форма, Команда, Знач Источник)
	
	ИмяКоманды = Команда.Имя;
	АдресНастроек = Форма.ПараметрыПодключаемыхКоманд.АдресТаблицыКоманд;
	ОписаниеКоманды = ПодключаемыеКомандыКлиентПовтИсп.ОписаниеКоманды(ИмяКоманды, АдресНастроек);

	Если Источник = Неопределено Тогда
		Источник = ПодключаемыеКомандыКлиентСервер.ВладелецКомандыПоИмениКоманды(ИмяКоманды, Форма);
	КонецЕсли;
	
	ПараметрыВыполнения = ПараметрыВыполненияКоманды();
	ПараметрыВыполнения.ОписаниеКоманды = Новый Структура(ОписаниеКоманды);
	ПараметрыВыполнения.Форма           = Форма;
	ПараметрыВыполнения.Источник        = Источник;
	
	ПараметрыВыполнения.ЭтоФормаОбъекта = ТипЗнч(Источник) = Тип("ДанныеФормыСтруктура");
	// Служебные параметры.
	ПараметрыВыполнения.ТребуетсяЗапись         = ПараметрыВыполнения.ЭтоФормаОбъекта И ОписаниеКоманды.РежимЗаписи <> "НеЗаписывать";
	ПараметрыВыполнения.ТребуетсяПроведение = ОписаниеКоманды.РежимЗаписи = "Проводить"
		И (Не ПараметрыВыполнения.ЭтоФормаОбъекта Или Источник.Свойство("Проведен"));
	ПараметрыВыполнения.ТребуетсяРаботаСФайлами = ОписаниеКоманды.ТребуетсяРаботаСФайлами;
	ПараметрыВыполнения.ВызовСервераЧерезОбработкуОповещения = Истина;
	
	// {{ ДОБАВЛЕНО:
	Если ОписаниеКоманды.РежимЗаписи = "Проводить" Тогда
		ПараметрыВыполнения.ТребуетсяПроведение = ложь;
	КонецЕсли;
	// }} ДОБАВЛЕНО
	
	ПродолжитьВыполнениеКоманды(ПараметрыВыполнения);
	
КонецПроцедуры
Показать
14. Vinzor 118 14.11.25 16:24 Сейчас в теме
Сегодня только что у нас в системе решал подобный запрос.
Но сделал по своему (конфигурация ЗУП КОРП).
Моё решение работает для только внешних печатных форм, зато для подключения / отключения команды печати в код конфигурации лезть не надо, только в код обработки печатной формы

Захватил в расширение ПодключаемыеКоманды.ПриСозданииНаСервере с аннтацией "ИзменениеИКонтроль".
Врезал такую вставку
КэшФормы = ПодключаемыеКомандыПовтИсп.КэшФормы(ИмяФормы, ИсточникиЧерезЗапятую, ЭтоФормаОбъекта);
#Вставка 
// + 14.11.25 ....
	Если КэшФормы.Свойство("Команды") Тогда
		Для каждого ком из КэшФормы.Команды Цикл
			Если ком.Вид = "Печать" И ком.РежимЗаписи = "Проводить" и СтрНайти(ком.Представление, Символы.НПП) > 0 Тогда
				ком.РежимЗаписи = "Записывать";
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
// + 14.11.25 ....
#КонецВставки
	ПараметрыРазмещения.Вставить("ЕстьУсловияВидимости", КэшФормы.ЕстьУсловияВидимости);
Показать


Всё, теперь во внешней печатной форме в методе СведенияОВнешнейОбработке()
в представлении команды печати достаточно добавить этот спецсимвол
ДобавитьКоманду(ТаблицаКоманд,
		"ВПФ Приказ о доплате (индивидуальный)"+Символы.НПП, // Представление команды в пользовательском интерфейсе
		"ВПФ_ВПФ_ПриказОДоплатеИнд",	 // Уникальный идентификатор команды
	);
, внешнюю форму обновить в базе, и она печатается из непроведенного документа
Для отправки сообщения требуется регистрация/авторизация