Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Янв 2017, 15:03
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Несоответствие типов СхемаКомпоновкиДанных Третий день бьюсь, помогите, пожалуйста!  (Прочитано 568 раз)

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

Оффлайн corben1979

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-06-09
  • Сайт: 
  • Профессия: Программист 1С
Здравствуйте! Нужно изменить стандартный отчет Карточка количественно-суммового учета МЦ. Сохранил его во внешний, добился, чтобы запускалась форма. Но вот при формировании отчета постоянно ошибка. Конфигурация БГУ 2.0, платформа 8.3.8.1675. Управляемое приложение. Третий день бьюсь. Помогите пожалуйста!

Ошибка при вызове метода контекста (Выполнить)

МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиДляКомпоновкиМакета, ДанныеРасшифровкиОбъект);
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиДляКомпоновкиМакета, ДанныеРасшифровкиОбъект);
по причине:
Несоответствие типов (параметр номер '1')

В данном методе первый параметр должен иметь тип СхемаКомпоновкиДанных, а получается строка

СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(ПараметрыОтчета.Схема);
Вот вся процедура

Процедура СформироватьОтчет(Знач ПараметрыОтчета, Результат, ДанныеРасшифровки, СтандартнаяОбработка) Экспорт 
   
+ Code
   Результат.Очистить();
   
   Если ПараметрыОтчета.Свойство("Схема") тогда
       Если ЭтоАдресВременногоХранилища(ПараметрыОтчета.Схема) Тогда
          //ОтчетОбъект = РеквизитФормыВЗначение("Отчет");

          //СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");


           СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(ПараметрыОтчета.Схема);
          //СхемаКомпоновкиДанных = РеквизитФормыВЗначение("Объект").ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

       КонецЕсли;
   КонецЕсли;                                                                                 
   
   ПередКомпоновкойМакета(ПараметрыОтчета.КомпоновщикНастроек, ПараметрыОтчета);
   
   ОтборыДляВложеннойСхемы(ПараметрыОтчета.КомпоновщикНастроек);
   
   НастройкиДляКомпоновкиМакета = ПараметрыОтчета.КомпоновщикНастроек.ПолучитьНастройки();
   
   ДанныеРасшифровкиОбъект = Неопределено;
   
  //Сгенерируем макет компоновки данных при помощи компоновщика макета

   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   
  //Попытка

       
       МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиДляКомпоновкиМакета, ДанныеРасшифровкиОбъект);
      //МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиДляКомпоновкиМакета);

       
      //Создадим и инициализируем процессор компоновки

       ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
       ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровкиОбъект, Истина);
       
       ДанныеРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровкиОбъект, ПараметрыОтчета.УникальныйИдентификатор);
       
      //Создадим и инициализируем процессор вывода результата

       ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
       ПроцессорВывода.УстановитьДокумент(Результат);
       
      //Обозначим начало вывода

       ПроцессорВывода.НачатьВывод();
       
       Массив = Новый Массив;
      //ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);       

       Пока Истина Цикл
                   
          //ОбработкаПрерыванияПользователя();

          //Получим следующий элемент результата компоновки

           ЭлементРезультата = ПроцессорКомпоновки.Следующий();
                   
           Если ЭлементРезультата = Неопределено Тогда
              //Следующий элемент не получен - заканчиваем цикл вывода

               Прервать;
           Иначе
               
              //Элемент получен - выведем его при помощи процессора вывода

               ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
               
               Если ЭлементРезультата.Макет = "Макет3" Тогда               
                   Массив.Добавить(Результат.ВысотаТаблицы);                               
               КонецЕсли;
               
           КонецЕсли;
       КонецЦикла;
      //вставка разрыва страниц

       ЭтоПервый = Истина;
       КонечнаяОбласть = Неопределено;
       ОбластьСтрок = Неопределено;
       Пока Истина Цикл
           Если ЭтоПервый Тогда
               НайденнаяОбласть = Результат.НайтиТекст("Карточку заполнил");
               ЭтоПервый = Ложь;
           Иначе
               НайденнаяОбласть = Результат.НайтиТекст("Карточку заполнил",КонечнаяОбласть);
           КонецЕсли;
           Если НайденнаяОбласть = Неопределено Тогда
               Прервать;
           КонецЕсли;
            КонечнаяОбласть = Результат.НайтиТекст("Дата",НайденнаяОбласть);
           Если КонечнаяОбласть<>Неопределено Тогда
               ОбластьСтрок = Результат.Область(Лев(КонечнаяОбласть.Имя,Найти(КонечнаяОбласть.Имя,"C")-1));
               ОбластьСтрок.КонецСтраницы = Истина;
           КонецЕсли;
       КонецЦикла;
      //убираем последний разрыв страницы

       Если НЕ ОбластьСтрок = Неопределено Тогда
           ОбластьСтрок.КонецСтраницы = Ложь;
       КонецЕсли;
       
       КолСтрок = Массив.Количество() - 1;
       Для инд = 0 По КолСтрок Цикл
           
           Ном = КолСтрок - инд;
           
           Результат.Область("R"+Формат(Массив[Ном],"ЧГ=0")).Видимость = Ложь;
               
       КонецЦикла;
               
  //Исключение

  //    ИнформацияОбОшибке = ИнформацияОбОшибке();

  //    Пока ИнформацияОбОшибке.Причина <> Неопределено Цикл

  //        ИнформацияОбОшибке = ИнформацияОбОшибке.Причина;

  //    КонецЦикла;

  //    ТекстСообщения = НСтр("ru = 'Отчет не сформирован!'") + Символы.ПС + ИнформацияОбОшибке.Описание;

  //    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);

  //    Отказ = Истина;

  //КонецПопытки;

   
   
КонецПроцедуры
Буду благодарен за любые идеи и подсказки.


Оффлайн Летящий в даль

  • **
  • Сообщений: 56
  • РЕПУТАЦИЯ: 12
  • КПД: 21%
  • 1с - это диагенез :D
  • Регистрация: 2016-05-16
  • Сайт: 
  • Профессия: Программист 1С
Попробуйте запустить на отладку отчет старый, посмотрите, откуда он берет эту схему

Оффлайн corben1979

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-06-09
  • Сайт: 
  • Профессия: Программист 1С
Попробуйте запустить на отладку отчет старый, посмотрите, откуда он берет эту схему

Берется из макета. Я кстати, уже как только не пробовал получать макет. Ошибка одна и та же. Например, так:
СхемаКомпоновкиДанных = РеквизитФормыВЗначение("Объект").ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Добавлено: 09 Июн 2016, 16:35

СхемаКомпоновкиДанных11 =
ПолучитьИзВременногоХранилища(ПараметрыОтчета.Схема);

получить нужный объект удалось. Только дальше пошло что-то не так. В этой же строке ошибка, только уже синтаксическая.

ВнешнийОтчет.КарточкаКоличественноСуммовогоУчетаМЦ0504041.Форма.ФормаОтчета.Форма(552)}: Ошибка при вызове метода контекста (Выполнить)
        МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных11, НастройкиДляКомпоновкиМакета, ДанныеРасшифровкиОбъект);
по причине:
Ошибка компоновки макета
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка

Последний раз редактировалось: corben1979; 09 Июн 2016, 16:35. Причина: Объединение сообщений


Теги:
 

Помогите срочно!! В вкладке "Сервис"--> "Журнал регистрации" отражаются все операции как можно определить сделаны ли операции "задним числом" и как вычислить первоначальную информацию какой расчет поменял на другой?

Автор 2ronРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 1510
Последний ответ 24 Дек 2015, 15:34
от дфтын
Помогите подобрать Back-office и Front-office

Автор avrnskРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 3508
Последний ответ 07 Сен 2010, 12:01
от mohock
Помогите с отчётами в УТ 10.3. (Ведомость по товарам и ведомость по заказам)

Автор chum710Раздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 3801
Последний ответ 28 Мар 2012, 13:02
от chum710
Помогите с отчетом "Валовая прибыль"

Автор Dm109Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 1649
Последний ответ 10 Сен 2015, 13:57
от Dm109
помогите с отчетом "характеристики контрагентов"

Автор Vasya PovarРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 175
Последний ответ 07 Дек 2016, 15:53
от Kironten

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
157 Сообщений
alex0402
74 Сообщений
alexandr_ll
38 Сообщений
LexaK
31 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
crow1983
31 Сообщений
sertak sertak
24 Сообщений
BuhRust
18 Сообщений
дфтын дфтын
17 Сообщений
Vzonder
17 Сообщений

* Кто онлайн

  • Точка Гостей: 921
  • Точка Скрытых: 0
  • Точка Пользователей: 14
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal