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

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

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

UP

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

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

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

Так вот, когда вы загрузили файл внешней обработки, у вас на форме элемента должны заполнится параметры указанные в процедуре СведенияОВнешнейОбработке(). Если в параметрах регистрации в модуле объекта внешней обработки не указаны назначения (или назначения написаны некорректно), то на форме элемента внешней обработки этот параметр назначение (размещение) будет "не определено". Нажимаете на гиперссылку "Не определено" и выбираете из дерева метаданных нужный вам справочник.
Если же назначение на форме заполнено, то вопрос следующий. А вы переоткрывали после добавления (сохранения) внешней обработки формы списка и элемента справочника, к которому подключили печатную форму, чтобы обновился список команд печати?
10. dandykry 12 12.05.21 14:25 Сейчас в теме
(8) В обычных формах разве используется СведенияОВнешнейОбработке ? Я лет 6 на обычные формы не делал внешки. Поменялось что-то?
11. AgnepuS 12 12.05.21 14:28 Сейчас в теме
(10) Не видел, что это неуправляемые формы.
13. Adilgeriy 24 12.05.21 14:30 Сейчас в теме
4. Adilgeriy 24 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 24 12.05.21 14:34 Сейчас в теме
сори. праздники были тяжелыми. регистрировал не как печатную форму
Оставьте свое сообщение

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