xDrivenDevelopment / xUnitFor1C

Unit testing tools for 1C:Enterprise 8 platform (http://v8.1c.ru)
Apache License 2.0
348 stars 126 forks source link

Ошибка при вызове создания макета данных на основании запроса. #777

Closed astrizhachuk closed 6 years ago

astrizhachuk commented 6 years ago

Описание

При попытке из "Инструментов разработчика" вызвать создание макета данных на основании запроса возникает исключение:

{ВнешняяОбработка.СериализаторMXL.МодульОбъекта(2195)}: Поле объекта не обнаружено (ВидДвижения) ЗначениеРеквизита = ОписательОбъекта.Реквизиты[имяРеквизита];

Шаги для воспроизведения

  1. Запрос
    ВЫБРАТЬ
    "РегистрыНакопления.ПТР_Сертификаты.СоздатьНаборЗаписей().Метаданные()" КАК __Метаданные,
    "ЗаписьРегистра" КАК __Префикс,
    ПТР_Сертификаты.Период,
    ПТР_Сертификаты.Регистратор,
    ПТР_Сертификаты.НомерСтроки,
    ПТР_Сертификаты.Активность,
    ПТР_Сертификаты.ВидДвижения,
    ПТР_Сертификаты.Сертификат,
    ПТР_Сертификаты.Состояние,
    ПТР_Сертификаты.Организация,
    ПТР_Сертификаты.Подразделение,
    ПТР_Сертификаты.Склад,
    ПТР_Сертификаты.Номенклатура,
    ПТР_Сертификаты.Заказ,
    ПТР_Сертификаты.Количество
    ИЗ
    РегистрНакопления.ПТР_Сертификаты КАК ПТР_Сертификаты
    ГДЕ
    ПТР_Сертификаты.Регистратор = &Регистратор
  2. 
    Путь_xUnitFor1C = "....\xUnitFor1C\Plugins\";
    ПутьГенератораМакета = Путь_xUnitFor1C + "СериализаторMXL.epf";

СоздательМакета = ВнешниеОбработки.Создать(ПутьГенератораМакета); Макет = СоздательМакета.СоздатьМакетДанныхНаОснованииЗапроса(мРезультатЗапроса); Макет.Показать();


3. Возникает ошибка.

**Ожидаемое поведение:**
Макет.

**Текущее поведение:**
В коде `ЗначениеРеквизита = ОписательОбъекта.Реквизиты[имяРеквизита]` , но в ОписательОбъекта.Реквизиты находится пара "КлючИЗначение" и такой вызов, как сейчас, вызывает исключение. 

**Укажите:**
* Версия 4-0-0-7
* 8.2
* Толстый клиент, обычные формы

**Прикладывайте скриншоты**
![default](https://user-images.githubusercontent.com/25724999/34987330-d080f7ca-facb-11e7-8cce-69602b610569.jpg)
artbear commented 6 years ago

Версия для 8.2 сейчас официально уже не поддерживается :( Можете попробовать версию для 8.3 (из веток master или develop) Вроде бы эта ошибка уже была исправлена.

astrizhachuk commented 6 years ago

Эта проблема и в последней версии серилизатора. Массовых правок не видел. Судя по тому, что СоздатьМакетДляГенерацииДанных работает, то, скорее всего, криво отрабатывает парсинг параметров и в реквизиты прилетают уже "кривые" РеквизитыЗаписи (описаниеЗаписиРегистраСведений1.Вставить("Реквизиты", РеквизитыЗаписи);).

artbear commented 6 years ago

Исправлено в #778