Если у элемента справочника 1С отсутствует значение, то при обмене данными происходит сбой

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Ярослав Бровин
  • Группа: Клиент
  • Сообщений: 81
  • Регистрация: 21.06.2013

15.10.2013 20:17

Добрый вечер

Синхронизируем боевую базу 1С Управление торговлей с сайтом. В ходе синхронизации возникает ошибка:

[Df_1C_Model_Cml2_Import_Data_Entity_ReferenceListPart_Item::getName]
Результат метода забракован проверяющим «df_result_string».
Сообщения проверяющего:
Требуется строка, но вместо неё получена переменная типа «NULL».


Разбор логов "rm.1c.log" и "rm.log" показал, что ошибка возникает, когда модуль формирует справочник и пытается добавить свойство без значения, то возникает эта ошибка. Это видно из файла импорта import.xml. У первого значения справочника "Видео формат Xvid" нету значения.

<Свойство>
	<Ид>14196403-178e-11e3-a8aa-001517451451</Ид>
	<Наименование>Видео формат Xvid</Наименование>
	<ТипЗначений>Справочник</ТипЗначений>
	<ВариантыЗначений>
		<Справочник>
			<ИдЗначения>00000000-0000-0000-0000-000000000000</ИдЗначения>
		</Справочник>
		<Справочник>
			<ИдЗначения>14196404-178e-11e3-a8aa-001517451451</ИдЗначения>
			<Значение>-</Значение>
		</Справочник>
		<Справочник>
			<ИдЗначения>14196405-178e-11e3-a8aa-001517451451</ИдЗначения>
			<Значение>+</Значение>
		</Справочник>
	</ВариантыЗначений>
	<ДляТоваров>true</ДляТоваров>
</Свойство>


Несмотря на то, что такая ситуация недопустима для Магенто (значение свойства без значения), ее успешно генерирует 1С.
Я предлагаю добавить проверку для такой ситуации, не прерывать синхронизацию и не пытаться добавлять "ошибочные" варианты справочника, для которых отсутствует узел Значение.

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

15.10.2013 20:20

Пришлите проблемную конфигурацию и информационную базу, я потестирую.

#3 Ярослав Бровин
  • Группа: Клиент
  • Сообщений: 81
  • Регистрация: 21.06.2013

15.10.2013 20:47

Завтра вечером заказчик скинет конфигурацию и базу и я вам ее передам.

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

Такая ситуация возникает из-за бага в обновлении конфигурации 1С. Старая конфигурация (10.3.8.9) позволяла сохранять значения свойств без значения.
Новая конфигурация (10.3.22.2) не дает возможности сохранить значения. Но при обновлении конфигурации с 10.3.8.9 на 10.3.22.2 такие свойства с пустыми значениями успешно переносятся в новую базу.

Так же в старой версии не было отдельной выгрузки всех характеристик отдельным справочником. Поэтому в старой конфигурации при выгрузке для товара указывались только свойства с заполненными значениями. В новой же напротив, выгружается полностью все свойства в том числе и без значения, что и приводит к ошибке на стороне магенты.

#4 Ярослав Бровин
  • Группа: Клиент
  • Сообщений: 81
  • Регистрация: 21.06.2013

16.10.2013 22:39

Конфигурацию и информационную базу выгрузил.
Чтобы воспроизвести ошибку нужно выгрузить все товары в ПЛАНШЕТЫ и HD МЕДИА-ПЛЕЕРЫ

#5 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

07.11.2013 20:52

Исправлено в версии 2.22.7.

Поделиться темой: