Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
08 апр 2025, 02:59

Невозможно подключить дополнительную обработку

Автор Алексей Малков, 22 ноя 2018, 11:08

0 Пользователей и 1 гость просматривают эту тему.

Алексей Малков

розница 8.3.10, не могу добавить обработку:
Функция Печать() Экспорт
ТабДок = новый ТабличныйДокумент;

Макет = ПолучитьМакет("Макет");

ОбластьШапки   = Макет.ПолучитьОбласть("Шапка");
ОбластьДанные  = Макет.ПолучитьОбласть("Данные");
ОбластьПодвал  = Макет.ПолучитьОбласть("Подвал");

ОбластьШапки.Параметры.ТекстЗаголовка      = "Печатная форма "+СсылкаНаОбъект.Номер;
ОбластьШапки.Параметры.Организация         = СсылкаНаОбъект.Организация;
ОбластьШапки.Параметры.Контрагент          = СсылкаНаОбъект.Контрагент;
ОбластьШапки.Параметры.ДоговорКонтрагента  = СсылкаНаОбъект.ДоговорКонтрагента;
ОбластьШапки.Параметры.ДатаПоступления     = СсылкаНаОбъект.Дата;

ТабДок.Вывести(ОбластьШапки);

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ
               | ПоступлениеТоваровУслугТовары.Номенклатура,
               | ПоступлениеТоваровУслугТовары.Сумма,
               | ПоступлениеТоваровУслугТовары.Цена,
               | ПоступлениеТоваровУслугТовары.Количество,
               | ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаНаСегодня
               |ИЗ
               | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
               | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ТекущаяДата, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
               | ПО ПоступлениеТоваровУслугТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
               |ГДЕ
               | ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка";
   
Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект);
Запрос.УстановитьПараметр("ТекущаяДата",ТекущаяДата());
Запрос.УстановитьПараметр("ТипЦен",СсылкаНаОбъект.ТипЦен);
   
Выборка = Запрос.Выполнить().Выбрать();

ИтогоСумма      = 0;
ИтогоКоличество = 0;

Пока Выборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);

ИтогоСумма = ИтогоСумма + Выборка.Сумма;
ИтогоКоличество = ИтогоКоличество + Выборка.Количество;

ТабДок.Вывести(ОбластьДанные);
КонецЦикла;

ОбластьПодвал.Параметры.ИтогоКоличество = ИтогоКоличество;
ОбластьПодвал.Параметры.ИтогоСумма      = ИтогоСумма;

ТабДок.Вывести(ОбластьПодвал);
   
возврат ТабДок;
КонецФункции

Невозможно подключить дополнительную обработку из файла.
Возможно, она не подходит для этой версии программы.
Подскажите пожалуйста решение проблемы. Код находится в модуле макета.

ДмитрийФ

Наверно в модуле обработки нет: Функция СведенияОВнешнейОбработке

Алексей Малков

Цитата: ДмитрийФ от 22 ноя 2018, 12:45Наверно в модуле обработки нет:

Объясните пожалуйста чайнику.

ДмитрийФ

Цитата: Алексей Малков от 22 ноя 2018, 13:06
Цитата: ДмитрийФ от 22 ноя 2018, 12:45Наверно в модуле обработки нет:

Объясните пожалуйста чайнику.
Пример функции в модуле ВПФ(она обязательна для подключения)
Функция СведенияОВнешнейОбработке() Экспорт
   
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.ДоговорРаботыУслуги"); //здесь мы добавляем в наш массив документ или несколько документов(если несколько - такой же строкой кода добавляем еще вид) к которому делаем внешнюю печ. форму

ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть – ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...Здесь выбираем вид, в нашем случае это Печатная форма
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений); //Добавляем наш массив со списком документов
    ПараметрыРегистрации.Вставить("Наименование", "Договор ГПХ"); //здесь будет имя под которым обработка будет зарегестрирована в справочнике внешних обработок
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Информация", "Договора ГПХ в формате MS WORD"); //здесь пишем описание
    ТаблицаКоманд = ПолучитьТаблицуКоманд(); // добавляем строки команд, особо не мудря можно оставить все по стандарту
    ДобавитьКоманду(ТаблицаКоманд, "Договор ГПХ (в формате MS WORD)", "МакетСохр", "ВызовКлиентскогоМетода", Истина, ""); // заполняем наши строки данными из параметров
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); // создаём те самые сведения о ВПФ которые запросит управляемое приложение при добавлении оной в конфигурацию.
   
    Возврат ПараметрыРегистрации; //возвращаем их при запросе конфигурации
   
КонецФункции

Добавлено: 22 ноя 2018, 13:54


И еще дополнительно:
Функция ПолучитьТаблицуКоманд()
   
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); //как будет выглядеть описание ВПФ для пользователя
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета ВПФ
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода или Клиентского метода
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    Возврат Команды;
   
КонецФункции

И
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
   
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
   
КонецПроцедуры


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск