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

Написание внешней обработки

Автор Rasdark, 10 мар 2017, 12:15

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

Rasdark

Добрый день! Я новичек в написании! Пожайлуста помогите разобратся! Пишу внешнюю обработку!И при открытии появляется ошибка Недостаточно фактических параметров.
Что я неправильно делаю!


Функция СведенияОВнешнейОбработке(ТабДок, Ссылка) Экспорт
ТабДок = новый ТабличныйДокумент;

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

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

ОбластьШапки.Параметры.Номерзаявки = СсылкаНаОбъект.Номер;
ОбластьШапки.Параметры.Дата = СсылкаНаОбъект.Дата;
ОбластьШапки.Параметры.ОбъектСтроительства = СсылкаНаОбъект.ОбъектСтроительства;
ТабДок.Вывести(ОбластьШапки);

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


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

Norfolk

Цитата: Rasdark от 10 мар 2017, 12:15
Добрый день! Я новичек в написании! Пожайлуста помогите разобратся! Пишу внешнюю обработку!И при открытии появляется ошибка Недостаточно фактических параметров.
Что я неправильно делаю!


Функция СведенияОВнешнейОбработке(ТабДок, Ссылка) Экспорт
ТабДок = новый ТабличныйДокумент;

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

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

ОбластьШапки.Параметры.Номерзаявки = СсылкаНаОбъект.Номер;
ОбластьШапки.Параметры.Дата = СсылкаНаОбъект.Дата;
ОбластьШапки.Параметры.ОбъектСтроительства = СсылкаНаОбъект.ОбъектСтроительства;
ТабДок.Вывести(ОбластьШапки);

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


ТабДок.Вывести(ОбластьДанные);
КонецФункции
Смотри туда, где еще вызываешь данную функцию. Сколько параметров указано в местах вызова функции? А вообще бы код все обработки глянуть. Много наворотил туда?

Rasdark

Ничего не понял! Все делал по описанию..
Добавлено: 10 мар 2017, 16:18


Вы не могли бы указать где я сделал неправильно :dfbsdfbsdf:

alex0402

Цитата: Rasdark от 10 мар 2017, 16:16Вы не могли бы указать где я сделал неправильно :dfbsdfbsdf:

ну. полный текст ошибки в студию, пожалуйста.
Спасибо за Сказать спасибо

Jackshi

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

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

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

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

ПараметрыПечати = Неопределено;

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

КонецПроцедуры

Функция НапечататьДокументы(МассивОбъектов) Экспорт

ТабДок = новый ТабличныйДокумент;

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

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

ОбластьШапки.Параметры.Номерзаявки = СсылкаНаОбъект.Номер;
ОбластьШапки.Параметры.Дата = СсылкаНаОбъект.Дата;
ОбластьШапки.Параметры.ОбъектСтроительства = СсылкаНаОбъект.ОбъектСтроительства;
ТабДок.Вывести(ОбластьШапки);

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


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

КонецФункции


Это пример кода для управляемой формы. И тут не передается СсылкаНаОбъект, а МассивОбъектов

Теги:

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

Рейтинг@Mail.ru

Поиск