Имя: Пароль:
1C
1С v8
Перенос печатной внешней формы с 2.0 бух на 3.0
,
0 scorp364
 
26.02.16
08:03
Помогите, изменил модули под 3.0, при его проверки пишет синтаксических ошибок не обнаруженно! а при вызове формы вылазит ошибка:

{ВнешняяОбработка.scorp.МодульОбъекта(73)}: Ошибка при вызове метода контекста (Выполнить)
    Шапка = Запрос.Выполнить().Выбрать();
по причине:
{(19, 21)}: Не задано значение параметра "МассивОбъектов"
КУ_Заявка.Ссылка = <<?>>&МассивОбъектов



сам код, последняя часть:

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

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


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

    Макет = ПолучитьМакет("Макет");
    
    // Выводим шапку    
    ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    // руководитель
    Если Метаданные.Имя = "УправлениеПроизводственнымПредприятиемЖКХ" Тогда
        Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(МассивОбъектов.Организация, МассивОбъектов.Дата);
        ОбластьМакета.Параметры.ФИОРуководителя       = Руководители.Руководитель;
        ОбластьМакета.Параметры.РуководительДолжность = Руководители.РуководительДолжность;
    Иначе
        Руководители = ОбщегоНазначения.ОтветственныеЛица(МассивОбъектов.Организация, МассивОбъектов.Дата);
        ОбластьМакета.Параметры.ФИОРуководителя       = Руководители.РуководительПредставление;
        ОбластьМакета.Параметры.РуководительДолжность  = Руководители.РуководительДолжность;
    КонецЕсли;
    ТабДокумент.Вывести(ОбластьМакета);  
    ОбластьМакета = Макет.ПолучитьОбласть("СодержаниеЗаявки");
    Для Каждого СтрокаЗаявки Из МассивОбъектов.Заявки Цикл
        //ОбластьМакета.Параметры.НомерЗ =  Строка(СтрокаЗаявки.НомерСтроки)+".";
        ОбластьМакета.Параметры.СодержаниеЗаявки = СтрокаЗаявки.Заявка.Наименование;
        ТабДокумент.Вывести(ОбластьМакета);  
    КонецЦикла;
    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    ОбластьМакета.Параметры.ДатаВыполнения=Формат(Шапка.ДатаВыполнения,"ДФ=dd.MM.yyyy");
    ОбластьМакета.Параметры.ВремяВыполнения=Формат(Шапка.ВремяВыполнения,"ДЛФ=T");
    ТабДокумент.Вывести(ОбластьМакета);
    
    // шапка таблицы
    ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    ТабДокумент.Вывести(ОбластьМакета);
    
    // работы
    ОбластьМакета = Макет.ПолучитьОбласть("Раздел1");
    ТабДокумент.Вывести(ОбластьМакета);
    ОбластьМакета = Макет.ПолучитьОбласть("Строка");
    Ном = 1;
    ИтогоПоРазделу = 0;
    Для Каждого СтрокаТаблицы из ЗапросУслуги Цикл
        ОбластьМакета.Параметры.Заполнить(СтрокаТаблицы);
        ТабДокумент.Вывести(ОбластьМакета);
        Ном = Ном + 1;
        ИтогоПоРазделу = ИтогоПоРазделу + СтрокаТаблицы.Сумма;
    КонецЦикла;    
    ОбластьМакета = Макет.ПолучитьОбласть("ИтогоПоРазделу");
    ОбластьМакета.Параметры.ИтогоПоРазделу = "Итого по разделу I:";
    ОбластьМакета.Параметры.Сумма = ИтогоПоРазделу;
    ТабДокумент.Вывести(ОбластьМакета);
    
    // товары
    ИтогоПоРазделу = 0;
    ОбластьМакета = Макет.ПолучитьОбласть("Раздел2");
    ТабДокумент.Вывести(ОбластьМакета);
    ОбластьМакета = Макет.ПолучитьОбласть("Строка");
    Ном = 1;
    Для Каждого СтрокаТаблицы из ЗапросТовары Цикл
        ОбластьМакета.Параметры.Заполнить(СтрокаТаблицы);
        ОбластьМакета.Параметры.Ном = Ном;
        ТабДокумент.Вывести(ОбластьМакета);
        Ном = Ном + 1;
        ИтогоПоРазделу = ИтогоПоРазделу + СтрокаТаблицы.Сумма;
    КонецЦикла;    
    ОбластьМакета = Макет.ПолучитьОбласть("ИтогоПоРазделу");
    ОбластьМакета.Параметры.ИтогоПоРазделу = "Итого по разделу II:";
    ОбластьМакета.Параметры.Сумма = ИтогоПоРазделу;
    ТабДокумент.Вывести(ОбластьМакета);
    
    // сумма документа
    ОбластьМакета = Макет.ПолучитьОбласть("ИтогоПоДокументу");
    ОбластьМакета.Параметры.Сумма = МассивОбъектов.НарядЗаказ.Итог("Сумма");
    ТабДокумент.Вывести(ОбластьМакета);
    
    // подвал
    ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
    //Если Метаданные.Имя = "УправлениеПроизводственнымПредприятиемЖКХ" Тогда
        //ОбластьМакета.Параметры.ФИОРуководителя       = Руководители.Руководитель;
        //ОбластьМакета.Параметры.РуководительДолжность = Руководители.РуководительДолжность;
    //Иначе
    //    ОбластьМакета.Параметры.ФИОРуководителя       = Руководители.РуководительПредставление;
    //    ОбластьМакета.Параметры.РуководительДолжность  = Руководители.РуководительДолжность;
    //КонецЕсли;
    ОбластьМакета.Параметры.Заказчик  = МассивОбъектов.Заказчик;
    ТабДокумент.Вывести(ОбластьМакета);
    
    Возврат ТабДокумент;
    
КонецФункции
1 Качели
 
26.02.16
08:04
В первом запросе не передаешь параметр
2 scorp364
 
26.02.16
08:06
можете по конкретней, мне как новичку плохо понятно.
3 Качели
 
26.02.16
08:08
Функция ПечатьСправки(МассивОбъектов, ОбъектыПечати = Неопределено)
    ТабДокумент = Новый ТабличныйДокумент;
    Запрос = Новый Запрос("ВЫБРАТЬ
    |    КУ_Заявка.Ссылка,
    |    КУ_Заявка.Номер,
    |    КУ_Заявка.Дата,
    |    КУ_Заявка.Проведен,
    |    КУ_Заявка.Заказчик,
    |    КУ_Заявка.Заказчик КАК Заказчик,
    |    КУ_Заявка.Помещение КАК Адрес,
    |    КУ_Заявка.ДатаЗаказчика,
    |    КУ_Заявка.ДатаВыполнения,
    |    КУ_Заявка.ВремяВыполнения,
    |    КУ_Заявка.ОтветственныйЗаВыполнение,
    |    КУ_Заявка.Телефон,
    |    КУ_Заявка.ФлагВыполненияЗаявки,
    |    КУ_Заявка.Заказчик
      |ИЗ
    |    Документ.КУ_Заявка КАК КУ_Заявка
    |ГДЕ
    |    КУ_Заявка.Ссылка = &МассивОбъектов");            
// вот  
Запрос.УстановитьПараметр("Ссылка", МассивОбъектов);
  Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
4 Качели
 
26.02.16
08:11
Запрос.УстановитьПараметр("МассивОбъектов",МассивОбъектов);
Только так, а вообще какая-то каша у тебя.
5 Качели
 
26.02.16
08:12
Запрос.Текст =
    "ВЫБРАТЬ
    |    КУ_ЗаявкаНарядЗаказ.НомерСтроки КАК НомерСтроки,
    |    КУ_ЗаявкаНарядЗаказ.Номенклатура,
    |    КУ_ЗаявкаНарядЗаказ.Номенклатура.НаименованиеПолное КАК НоменклатураПредставление,
    |    КУ_ЗаявкаНарядЗаказ.Цена,
    |    КУ_ЗаявкаНарядЗаказ.Сумма,
    |    КУ_ЗаявкаНарядЗаказ.Количество,
    |    КУ_ЗаявкаНарядЗаказ.Номенклатура.Услуга,
    |    КУ_ЗаявкаНарядЗаказ.ЕдиницаИзмерения КАК ЕдиницаИзмерения
    |ИЗ
    |    Документ.КУ_Заявка.НарядЗаказ КАК КУ_ЗаявкаНарядЗаказ
    |ГДЕ
    |    КУ_ЗаявкаНарядЗаказ.Ссылка = &Ссылка
    |    И (КУ_ЗаявкаНарядЗаказ.Номенклатура.Услуга)
    |
    |УПОРЯДОЧИТЬ ПО
    |    НомерСтроки";
    Запрос.УстановитьПараметр("МассивОбъектов",МассивОбъектов);
    ЗапросУслуги = Запрос.Выполнить().Выгрузить();
    
Вот здесь
6 scorp364
 
26.02.16
08:14
вылезла та же самая ошибка

{ВнешняяОбработка.scorp.МодульОбъекта(76)}: Ошибка при вызове метода контекста (Выполнить)
  Шапка = Запрос.Выполнить().Выбрать();
по причине:
{(19, 24)}: Не задано значение параметра "МассивОбъектов"
КУ_Заявка.Ссылка = <<?>>&МассивОбъектов
7 Качели
 
26.02.16
08:17
(6) Вот смотри, что ты думаешь об этом сообщении, какие выводы делаешь?
8 Мимохожий Однако
 
26.02.16
08:23
Обычно встают отладчиком на строку с ошибкой и смотрят, что лежит в больном параметре.
9 scorp364
 
26.02.16
08:23
понял, парамтр не задан, сделал как ты написал, в модуле пишет

{ВнешняяОбработка.scorp.МодульОбъекта(184,31)}: Переменная не определена (ЗапросТовары)
    Для Каждого СтрокаТаблицы из <<?>>ЗапросТовары Цикл (Проверка: Сервер)
10 Качели
 
26.02.16
08:31
Отладчиком глянь после выполнения запроса что у тебя в ЗапросТовары
11 scorp364
 
26.02.16
08:57
(10) я не умею отладку для внешней формы использовать
12 Мимохожий Однако
 
26.02.16
09:01
(11)учись ). Для этого сделай форму для отладки или поищи в инете обработку для отладки внешних обработок.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn