Имя: Пароль:
1C
1С v8
Ошибка при вызове метода контекста (Выполнить) ☑
0 3463
 
31.07.13
✎
15:36
Здравствуйте,помогите пожалуйста!вся запуталась уже.делаю гарантийный лист предприятие 8.2 УП 10.3. выдает ошибку :
Не удалось сформировать внешнюю печатную форму!
Метод объекта не обнаружен (Выбрать)

Функция Печать() Экспорт

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

    КонтактнаяИнформацияОрганизации = ПолучитьКонтактнуюИнформацию(Шапка.Организация);
    СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, ТекущаяДата());
    
    Если Шапка.Организация.Наименование="ООО ""Оптион""" Тогда
        ОбластьЗаголовок = Макет.ПолучитьОбласть("ЗаголовокОПТИОН");
    ИначеЕсли Шапка.Организация.Наименование="ООО ""Единая Региональная Торговая Компания""" Тогда
        ОбластьЗаголовок = Макет.ПолучитьОбласть("ЗаголовокЕРТК");
    Иначе
        ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    КонецЕсли;
    
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьТаблицаШапка = Макет.ПолучитьОбласть("ТаблицаШапка");
    
    ОбластьЗаголовок.Параметры.Заполнить(Шапка);
    ОбластьШапка.Параметры.Заполнить(Шапка);
    ОбластьТаблицаШапка.Параметры.Заполнить(Шапка);
    
    СтрокаРеквизитов = "";
    Если СведенияОбОрганизации.ИНН<>"" Тогда    СтрокаРеквизитов = СтрокаРеквизитов + "ИНН "+СведенияОбОрганизации.ИНН;            КонецЕсли;
    Если СведенияОбОрганизации.КПП<>"" Тогда    СтрокаРеквизитов = СтрокаРеквизитов + ", КПП "+СведенияОбОрганизации.ИНН;        КонецЕсли;
    Если СведенияОбОрганизации.Свидетельство<>"" Тогда    СтрокаРеквизитов = СтрокаРеквизитов + " "+СведенияОбОрганизации.Свидетельство;            КонецЕсли;
    
    ОбластьЗаголовок.Параметры.ОрганизацияАдрес = СведенияОбОрганизации.ФактическийАдрес;
    ОбластьЗаголовок.Параметры.ОрганизацияРеквизиты = СтрокаРеквизитов;
    Если СведенияОбОрганизации.Телефоны<>0 Тогда        ОбластьЗаголовок.Параметры.ОрганизацияТелефон = "телефон: "+СведенияОбОрганизации.Телефоны;        КонецЕсли;
    
    
    стрСайт = КонтактнаяИнформацияОрганизации.Найти("Сайт", "Вид");
    Если стрСайт<>Неопределено Тогда    ОбластьЗаголовок.Параметры.ОрганизацияСайт = "сайт: "+стрСайт.Представление;        КонецЕсли;
    
    стрEmail = КонтактнаяИнформацияОрганизации.Найти("Email", "Вид");
    Если стрEmail<>Неопределено Тогда    ОбластьЗаголовок.Параметры.ОрганизацияПочта = "электронная почта: "+стрEmail.Представление;        КонецЕсли;
    
    ТабДокумент.Очистить();
    ТабДокумент.Вывести(ОбластьЗаголовок);    
    ТабДокумент.Вывести(ОбластьШапка);    
    ТабДокумент.Вывести(ОбластьТаблицаШапка);
    ТабДокумент.НачатьАвтогруппировкуСтрок();

    ОбластьЗаголовок = Макет.ПолучитьОбласть("ЗаголовокОПТИОН");
    ОбластьЗаголовок = Макет.ПолучитьОбласть("ЗаголовокЕРТК");
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьТаблицаШапка = Макет.ПолучитьОбласть("ТаблицаШапка");
        
    ОбластьНоменклатура   = Макет.ПолучитьОбласть("ТабНоменклатура");
    ОбластьСерийныйНомер  = Макет.ПолучитьОбласть("ТабСерийныйНомер");
Индекс = 0;
    ТекНоменклатура   = Неопределено;
    ТекХарактеристика = Неопределено;
    ТекСерия          = Неопределено;
    
    РезультатЗапроса = Запрос.Выполнить();
    Обход = РезультатЗапроса.Выгрузить().Выбрать();
    Пока Обход.Следующий() Цикл
    
        Если ТекНоменклатура   <> Обход.Номенклатура
         ИЛИ ТекХарактеристика <> Обход.Характеристика
         ИЛИ ТекСерия          <> Обход.Серия Тогда
        
            Индекс = Индекс + 1;
            
            ТекНоменклатура   = Обход.Номенклатура;
            ТекХарактеристика = Обход.Характеристика;
            ТекСерия          = Обход.Серия;
            
            ОбластьНоменклатура.Параметры.НомСтр          = Индекс;
            ОбластьНоменклатура.Параметры.ПечНоменклатура = Обход.ПечНоменклатура + ФормированиеПечатныхФорм.ПредставлениеСерий(Обход);
            ОбластьНоменклатура.Параметры.Номенклатура    = Обход.Номенклатура;
            ОбластьНоменклатура.Параметры.ЕдИзм           = Обход.ЕдиницаИзмерения;
            ОбластьНоменклатура.Параметры.ПечЕдИзм        = Обход.ПечЕдиницаИзмерения;
            ОбластьНоменклатура.Параметры.Количество      = Обход.Количество;
            ТабДокумент.Вывести(ОбластьНоменклатура);
            
        КонецЕсли;
            
        ОбластьСерийныйНомер.Параметры.ПечСерийныйНомер = Обход.СерийныйНомер;
        ОбластьСерийныйНомер.Параметры.СерийныйНомер    = Обход.СерийныйНомер;
        ОбластьСерийныйНомер.Параметры.ГарантийныйСрок  = Обход.Гарантия;
        
        ТабДокумент.Вывести(ОбластьСерийныйНомер);
        
    КонецЦикла;
    

    КоличествоЭкземпляров = 1;
    НаПринтер = Истина;
    ТабДокумент.РазмерСтраницы="A4";
    ТабДокумент.Автомасштаб=истина;
    ТабДокумент.ПолеСлева=20;
    ТабДокумент.ПолеСправа=10;
    ТабДокумент.ПолеСверху=10;
    ТабДокумент.ПолеСнизу=10;
    ТабДокумент.Показать("Гарантийный талон");
    Возврат ТабДокумент;
    Возврат Неопределено;

    УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, 1, Ложь, "Гарантийный талон");

КонецФункции;
1 salvator
 
31.07.13
✎
15:37
Запрос = Новый Запрос;    
Шапка = Запрос.Выбрать();
Это чо?
2 Starhan
 
31.07.13
✎
15:38
(0)
1. фотку в личку поставь
2. Покажи на какую строчку ругается.
3 3463
 
31.07.13
✎
15:39
я хотела в шапку записать "гарантийный талон"
4 3463
 
31.07.13
✎
15:39
Шапка = Запрос.Выбрать();
на эту ругается
5 salvator
 
31.07.13
✎
15:40
(4) А у Запрос есть метод Выбрать()?
6 3463
 
31.07.13
✎
15:42
А что нет?Выгрузить надо?((((((((((((
7 wangoff
 
31.07.13
✎
15:43
Алена, тебе (1) все сказал. Ты текст запроса сделала.
А потом обнулила, сделав новый запрос.
Вот потому и ругается.
Короче, удали строчку  

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

Перед

Шапка = Запрос.Выбрать();
8 Starhan
 
31.07.13
✎
15:44
(6)
Запрос = Новый Запрос;    
    Шапка = Запрос.Выбрать();
    Шапка = "ГАРАНТИЙНЫЙ ТАЛОН" ;
    Макет.ПолучитьОбласть("Шапка");
    
    Шапка = Запрос.Выполнить().Выбрать();

нет ты же создала заново пустой запрос.
Тут вообще чехарда какая-то
9 salvator
 
31.07.13
✎
15:45
Еще удали строку
Шапка = "ГАРАНТИЙНЫЙ ТАЛОН" ;

и поудаляй строки, где по 100 раз переопределяешь переменные.
10 3463
 
31.07.13
✎
15:48
вы все очень хорошие и даже не ругаетесь, пока.но все равно ошибка эта
Не удалось сформировать внешнюю печатную форму!
Метод объекта не обнаружен (Выбрать)

сидела бы дома борщи варила,нет ведь понесло меня
11 salvator
 
31.07.13
✎
15:49
(10) Что тебе нужно было доработать в существующей, работающей печатной форме?
12 3463
 
31.07.13
✎
15:50
с чего ты взял,что работающая она была.гарантийный талон надо сделать
13 salvator
 
31.07.13
✎
15:51
РезультатЗапроса = Запрос.Выполнить();
Обход = РезультатЗапроса.Выгрузить().Выбрать();

замени на

РезультатЗапроса = Запрос.Выполнить();
Обход = РезультатЗапроса.Выбрать();
14 3463
 
31.07.13
✎
15:54
((( он все равно на это поле ругается    
Шапка = Запрос.Выбрать();
15 Fish
 
гуру
31.07.13
✎
15:57
(14) Убери эти строки:
    Запрос = Новый Запрос;    
    Шапка = Запрос.Выбрать();
    Шапка = "ГАРАНТИЙНЫЙ ТАЛОН" ;
16 Fish
 
гуру
31.07.13
✎
15:58
А вообще, надо убрать весь текст из (0) и написать заново.
17 3463
 
31.07.13
✎
15:59
Легко сказать
18 Fish
 
гуру
31.07.13
✎
16:00
(17) (15) сделала?
19 3463
 
31.07.13
✎
16:00
{ОбщийМодуль.УниверсальныеМеханизмы.Модуль(1051)}: Значение не является значением объектного типа (АвтоМасштаб)
    Если НЕ ПечДокумент.АвтоМасштаб

новая ошибка,сил моих дамских нет
20 3463
 
31.07.13
✎
16:00
да и вот результат
21 Капитан О
 
31.07.13
✎
16:03
(19) ну и зачем ты в общий модуль всякую хню передаёшь?
22 3463
 
31.07.13
✎
16:04
честно,не знаю,что сказать(
23 3463
 
31.07.13
✎
16:04
не передавала я
24 Капитан О
 
31.07.13
✎
16:06
(23) оно само?
25 salvator
 
31.07.13
✎
16:06
Зачем тебе это
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, 1, Ложь, "Гарантийный талон");
в функции, которая возвращает табличный документ?
26 Fish
 
гуру
31.07.13
✎
16:06
(22) А почему ты вообще решила делать этот гарантийный лист? Судя по коду из (0) у тебя нету даже малейшего представления о том, что ты делаешь. Попробуй почитать для начала умные книжки, посмотреть типовые примеры.
27 Fish
 
гуру
31.07.13
✎
16:07
(25) У неё эта строчка никогда не выполнится, т.к. пере ней стоит:
   Возврат ТабДокумент;
    Возврат Неопределено;
28 Капитан О
 
31.07.13
✎
16:07
(25) она к этой строке даже через два возврата дошла, заметил? ;)
29 salvator
 
31.07.13
✎
16:08
(27)(28) Да, слона-то я и не приметил
30 3463
 
31.07.13
✎
16:10
вот я все убрала,что вы сказали,все рано этот автомасштаб
31 salvator
 
31.07.13
✎
16:11
Возврат Неопределено; - убери
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, 1, Ложь, "Гарантийный талон"); - вызывай из процедуры печати, а не из функции получения Табличного Документа
32 Капитан О
 
31.07.13
✎
16:11
имхается мне, заставлять думать девушку бесполезно. ей нужен принц, который возьмёт и сделает
33 Fish
 
гуру
31.07.13
✎
16:13
(31) Судя по ошибке (19) у неё и так эта функция вызывается откуда-то. Но понимания, как это работает вообще даже приблизительно имхо нет. Хотел было посоветовать отладчик, но сомневаюсь, что поможет.
34 3463
 
31.07.13
✎
16:13
яведь день с ним сижу,и вот уж ни как не жду ,что мне кто-то что-то сделает
35 Капитан О
 
31.07.13
✎
16:14
(34) ну пиши письму, посмотрим, чо там
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой