авторегистрация печатной формы

1. Adilgeriy 25 12.05.21 12:37 Сейчас в теме
скачал обработку с инфостара. у нее есть авторегистрация. добавил как внешнюю сделал авторегитрацию. но в справочнике отображается только встроенная форма
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
8. AgnepuS 11 12.05.21 14:17 Сейчас в теме +0.8 $m
(5)В публикации, на которую вы дали ссылку есть описание как в пользовательском режиме подключать внешнюю обработку:
Для регистрации внешней печатной формы в Полном интерфейсе заходим Сервис - Дополнительные внешние отчеты и обработки - Печатные формы, создаем новый элемент справочника ВнешниеОбработки и загружаем в него файл Внешней обработки.

Так вот, когда вы загрузили файл внешней обработки, у вас на форме элемента должны заполнится параметры указанные в процедуре СведенияОВнешнейОбработке(). Если в параметрах регистрации в модуле объекта внешней обработки не указаны назначения (или назначения написаны некорректно), то на форме элемента внешней обработки этот параметр назначение (размещение) будет "не определено". Нажимаете на гиперссылку "Не определено" и выбираете из дерева метаданных нужный вам справочник.
Если же назначение на форме заполнено, то вопрос следующий. А вы переоткрывали после добавления (сохранения) внешней обработки формы списка и элемента справочника, к которому подключили печатную форму, чтобы обновился список команд печати?
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. dandykry 10 12.05.21 14:15 Сейчас в теме
(1) Обычные формы?

UP

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

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

Если не поможет, то хз че там не так
7. Adilgeriy 25 12.05.21 14:17 Сейчас в теме
9. dandykry 10 12.05.21 14:18 Сейчас в теме
(7) Перешел по ссылке, увидел. Дописал в 1 сообщение
3. AgnepuS 11 12.05.21 13:46 Сейчас в теме
В форме элемента дополнительной обработки, что указано в назначении? Если "Не определено", то укажите необходимый справочник руками. А вообще после добавления внешней обработки перезаходили в формы списка или элемента справочника, чтобы обновился список команд печати?
5. Adilgeriy 25 12.05.21 13:50 Сейчас в теме
(3) может я чего не понимаю. с таким способом я не сталкивался
8. AgnepuS 11 12.05.21 14:17 Сейчас в теме +0.8 $m
(5)В публикации, на которую вы дали ссылку есть описание как в пользовательском режиме подключать внешнюю обработку:
Для регистрации внешней печатной формы в Полном интерфейсе заходим Сервис - Дополнительные внешние отчеты и обработки - Печатные формы, создаем новый элемент справочника ВнешниеОбработки и загружаем в него файл Внешней обработки.

Так вот, когда вы загрузили файл внешней обработки, у вас на форме элемента должны заполнится параметры указанные в процедуре СведенияОВнешнейОбработке(). Если в параметрах регистрации в модуле объекта внешней обработки не указаны назначения (или назначения написаны некорректно), то на форме элемента внешней обработки этот параметр назначение (размещение) будет "не определено". Нажимаете на гиперссылку "Не определено" и выбираете из дерева метаданных нужный вам справочник.
Если же назначение на форме заполнено, то вопрос следующий. А вы переоткрывали после добавления (сохранения) внешней обработки формы списка и элемента справочника, к которому подключили печатную форму, чтобы обновился список команд печати?
10. dandykry 10 12.05.21 14:25 Сейчас в теме
(8) В обычных формах разве используется СведенияОВнешнейОбработке ? Я лет 6 на обычные формы не делал внешки. Поменялось что-то?
11. AgnepuS 11 12.05.21 14:28 Сейчас в теме
(10) Не видел, что это неуправляемые формы.
13. Adilgeriy 25 12.05.21 14:30 Сейчас в теме
4. Adilgeriy 25 12.05.21 13:50 Сейчас в теме
нет формы элемента. есть макет. макет авторегистрации. в модуле обработки:
// Процедура выводит в табличный документ раздел спецификации.
//
Процедура ВывестиРазделСпецификации(ТабДокумент, Макет, ВыборкаСтрок, ТекстЗаголовка)
	
	Если ВыборкаСтрок.Количество() = 0 Тогда
		Возврат;
	КонецЕсли;
	
	ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
	Колонка = "";
	Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
		ВыводитьКоды = Истина;
		Колонка = "Артикул";
	ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
		ВыводитьКоды = Истина;
		Колонка = "Код";
	Иначе
		ВыводитьКоды = Ложь;
	КонецЕсли;
	
	ОбластьМакета = Макет.ПолучитьОбласть("ШапкаЗаголовок");
	ОбластьМакета.Параметры.ТекстЗаголовка = ТекстЗаголовка;
	ТабДокумент.Вывести(ОбластьМакета);
	
	Область = Макет.ПолучитьОбласть(?(ВыводитьКоды, "ШапкаСКодом", "Шапка"));
	
	Если ВыводитьКоды Тогда
		Область.Параметры.ИмяКолонкиКодов = Колонка;
	КонецЕсли;
	ТабДокумент.Вывести(Область);
	
	Область = Макет.ПолучитьОбласть(?(ВыводитьКоды, "СтрокаСКодом", "Строка"));
	
	Ном = 0;
	
	// Выборка выходных изделий.
	Пока ВыборкаСтрок.Следующий() Цикл
		
		Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда
			ОбщегоНазначения.Сообщение("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
			Продолжить;
		КонецЕсли;
		
		Ном = Ном + 1;
		
		Область.Параметры.Заполнить(ВыборкаСтрок);
		Область.Параметры.НомерСтроки = Ном;
		Если Колонка = "Артикул" Тогда
			Область.Параметры.Артикул = ВыборкаСтрок.Артикул;
		ИначеЕсли Колонка = "Код" Тогда
			Область.Параметры.Артикул = ВыборкаСтрок.Код;
		КонецЕсли;
		Область.Параметры.Номенклатура = СокрЛП(ВыборкаСтрок.Наименование) + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрок);
		Область.Параметры.НоменклатураРасшифровка = ВыборкаСтрок.Номенклатура;
		ТабДокумент.Вывести(Область);
		
	КонецЦикла;
	
	// Вывести подвал
	Область = Макет.ПолучитьОбласть("Подвал");
	ТабДокумент.Вывести(Область);
	
КонецПроцедуры // ВывестиРазделСпецификации()

// Функция формирует табличный документ с печатной формой спецификации
// по ГОСТ 2.106-96.
//
// Возвращаемое значение:
//  Табличный документ - печатная форма спецификации
//
Функция Печать() Экспорт
	
	ТабДокумент = Новый ТабличныйДокумент;
	ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Спецификация";
	
	Макет = ПолучитьМакет("Спецификация");
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ТекущийЭлемент", СсылкаНаОбъект);
	Запрос.Текст = "
	|ВЫБРАТЬ
	|	СпецификацииНоменклатуры.Код 		 				КАК Код,
	|	СпецификацииНоменклатуры.Наименование 				КАК Наименование,
	|	СпецификацииНоменклатуры.Ответственный.Наименование КАК ОтветственныйНаименование
	|ИЗ
	|	Справочник.СпецификацииНоменклатуры КАК СпецификацииНоменклатуры
	|ГДЕ
	|	СпецификацииНоменклатуры.Ссылка = &ТекущийЭлемент
	|";
	
	Шапка = Запрос.Выполнить().Выбрать();
	Шапка.Следующий();
	
	// Выводим шапку накладной
	ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
	ОбластьМакета.Параметры.ТекстЗаголовка = "Спецификация номенклатуры: " + Шапка.Наименование;
	ТабДокумент.Вывести(ОбластьМакета);
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ТекущийЭлемент", СсылкаНаОбъект);
	Запрос.Текст = "
	|ВЫБРАТЬ
	|	СпецификацииНоменклатуры.Номенклатура.Код 		 		КАК Код,
	|	СпецификацииНоменклатуры.Номенклатура.Артикул 		 	КАК Артикул,
	|	СпецификацииНоменклатуры.Номенклатура 					КАК Номенклатура,
	|	ВЫРАЗИТЬ(СпецификацииНоменклатуры.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Наименование,
	|	СпецификацииНоменклатуры.ХарактеристикаНоменклатуры 	КАК Характеристика,
	|	NULL 													КАК Серия,
	|	СпецификацииНоменклатуры.Количество 					КАК Количество,
	|	СпецификацииНоменклатуры.ЕдиницаИзмерения 				КАК ЕдиницаИзмерения
	|ИЗ
	|	Справочник.СпецификацииНоменклатуры.ВыходныеИзделия КАК СпецификацииНоменклатуры
	|ГДЕ
	|	СпецификацииНоменклатуры.Ссылка = &ТекущийЭлемент
	|";
	
	ВыборкаСтрок = Запрос.Выполнить().Выбрать();
	
	ТекстЗаголовка = "Выходные изделия";
	ВывестиРазделСпецификации(ТабДокумент, Макет, ВыборкаСтрок, ТекстЗаголовка);
	
	/////////Выходные изделия
	Отбор = Новый Структура("СписаниеКомплектующей", Перечисления.ВариантыСписанияКомплектующих.Всегда);
	ТаблицаКомплектующих = УправлениеПроизводством.ПолучитьМатериалыПоСпецификации(СсылкаНаОбъект, 1, Отбор, ТекущаяДата(), Ложь);	
	
	МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
	
	Запрос.Текст="ВЫБРАТЬ
	|	ТаблицаКомплектующих.Номенклатура,
	|	ТаблицаКомплектующих.ХарактеристикаНоменклатуры,
	|	ТаблицаКомплектующих.ЕдиницаИзмерения,
	|	ТаблицаКомплектующих.Количество
	|ПОМЕСТИТЬ ТаблицаКомплектующих
	|ИЗ
	|	&ТаблицаКомплектующих КАК ТаблицаКомплектующих";
	
	Запрос.УстановитьПараметр("ТаблицаКомплектующих", ТаблицаКомплектующих);
	Запрос.Выполнить();
	
	
	////
	
	Запрос.Текст = "ВЫБРАТЬ
	|	ВременнаяТаблица.Номенклатура.Код КАК Код,
	|	ВременнаяТаблица.Номенклатура.Артикул КАК Артикул,
	|	ВременнаяТаблица.Номенклатура КАК Номенклатура,
	|	ВЫБОР
	|		КОГДА ВременнаяТаблица.Номенклатура.НаименованиеПолное ЕСТЬ NULL 
	|			ТОГДА ВременнаяТаблица.Номенклатура
	|		ИНАЧЕ ВЫРАЗИТЬ(ВременнаяТаблица.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
	|	КОНЕЦ КАК Наименование,
	|	ВременнаяТаблица.ХарактеристикаНоменклатуры КАК Характеристика,
	|	NULL КАК Серия,
	|	ВременнаяТаблица.Количество КАК Количество,
	|	ВременнаяТаблица.ЕдиницаИзмерения КАК ЕдиницаИзмерения
	|ИЗ
	|	ТаблицаКомплектующих КАК ВременнаяТаблица
	|
	|УПОРЯДОЧИТЬ ПО
	|	Наименование";
	
	ВыборкаСтрок = Запрос.Выполнить().Выбрать();
	
	ТекстЗаголовка = "Исходные комплектующие";
	ВывестиРазделСпецификации(ТабДокумент, Макет, ВыборкаСтрок, ТекстЗаголовка);
	
	////   Возвратные отходы
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ТекущийЭлемент", СсылкаНаОбъект);
	Запрос.Текст = "
	|ВЫБРАТЬ
	|	СпецификацииНоменклатуры.Номенклатура.Код 		 		КАК Код,
	|	СпецификацииНоменклатуры.Номенклатура.Артикул 		 	КАК Артикул,
	|	СпецификацииНоменклатуры.Номенклатура 					КАК Номенклатура,
	|	ВЫБОР КОГДА СпецификацииНоменклатуры.Номенклатура.НаименованиеПолное ЕСТЬ NULL ТОГДА
	|		СпецификацииНоменклатуры.Номенклатура
	|	ИНАЧЕ
	|		ВЫРАЗИТЬ(СпецификацииНоменклатуры.Номенклатура.НаименованиеПолное КАК Строка(1000))
	|	КОНЕЦ КАК Наименование,
	|	СпецификацииНоменклатуры.ХарактеристикаНоменклатуры 	КАК Характеристика,
	|	NULL 													КАК Серия,
	|	СпецификацииНоменклатуры.Количество 					КАК Количество,
	|	СпецификацииНоменклатуры.ЕдиницаИзмерения 				КАК ЕдиницаИзмерения
	|ИЗ
	|	Справочник.СпецификацииНоменклатуры.ВозвратныеОтходы КАК СпецификацииНоменклатуры
	|ГДЕ
	|	СпецификацииНоменклатуры.Ссылка = &ТекущийЭлемент
	|";
	
	ВыборкаСтрок = Запрос.Выполнить().Выбрать();
	
	ТекстЗаголовка = "Возвратные отходы";
	ВывестиРазделСпецификации(ТабДокумент, Макет, ВыборкаСтрок, ТекстЗаголовка);
	
	// Вывести подписи
	ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
	ОбластьМакета.Параметры.Заполнить(Шапка);
	ТабДокумент.Вывести(ОбластьМакета);
	
	// Зададим параметры макета.
	ТабДокумент.ОбластьПечати = ТабДокумент.Область(2,2,ТабДокумент.ВысотаТаблицы, ТабДокумент.ШиринаТаблицы);
	ТабДокумент.ПолеСверху              = 10;
	ТабДокумент.ПолеСлева               = 20;
	ТабДокумент.ПолеСнизу               = 10;
	ТабДокумент.ПолеСправа              = 10;
	ТабДокумент.РазмерКолонтитулаСверху = 0;
	ТабДокумент.РазмерКолонтитулаСнизу  = 0;
	ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Портрет;
	
	Возврат ТабДокумент;
	
КонецФункции // ПечатьСпецификации()

 
Показать
12. Andrekaa 12.05.21 14:28 Сейчас в теме +0.2 $m
Покажите карточку регистрации Печатной формы у вас в программе
14. Adilgeriy 25 12.05.21 14:34 Сейчас в теме
сори. праздники были тяжелыми. регистрировал не как печатную форму
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот