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

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

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
Просмотров: 3987
Последний ответ 24 Дек 2015, 15:34
от дфтын
Помогите подобрать Back-office и Front-office

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

alex0402
91 Сообщений
oleg-x
83 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
67 Сообщений
Golickoff Golickoff
51 Сообщений
ilyay ilyay
44 Сообщений
AIFrame
42 Сообщений
Амал
30 Сообщений
Dethmontt Dethmontt
22 Сообщений
lansy
22 Сообщений
xproh
21 Сообщений

* Кто онлайн

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal