Карточка детали Платежные реквизиты Контрагента - что было задумано?

Доброго времени суток, коллеги!

Занимаюсь разработкой конфигурации на BPMonline 7.1. По ТЗ задача - добавить пару полей в деталь "Платежные реквизиты" в разделе Контрагенты. Добавил, проверяю - создал запись, изменил ее - все ок, но вот когда попробовал нажать на просмотр - "Шеф! Все пропало!". Выпадает исключение "Uncaught Terrasoft.UnsupportedTypeException: null is unsuported type"
После N-го количества времени самобичевания за кривые руки (что ж тут сложного-то добавить поля в карточку детали) начал разбираться. Кучу раз перепроверил свой код - мало ли... Все верно. Закомментировал доработку - история не изменилась. Посмотрел в "коробку" - хм, то же самое. Полез в демку посмотреть - о ужас! И там так же...

Короче говоря, убил уйму времени и только тогда понял - надо же разобраться в чем дело.

Оказалось, что "собака зарыта" в переопределении функции getItemViewHeader

this.getItemViewHeader = function() {
  return {
    columns: [
      {
        type: Terrasoft.ViewModelSchemaItem.ATTRIBUTE,
        name: 'AccountBillingInfo',
        columnPath: 'AccountBillingInfo',
        viewVisible: true,
        labelClass: 'campaign-campaignname'
      }
    ]
  };
};

Естественно, указанной выше колонки не существует, и начинаются проблемы.
Ну и, собственно, вопрос - а какой правильный вариант функции? Раз она добавлена, то в шапку карточки все же должна быть вынесена какая-то информация. Не хочется как-то тупо ставить заглушку и все

Нравится

1 комментарий

Здравствуйте, Constantine!

Действительно была такая ошибка в ранних версиях 7.1.
По крайней мере, в 7.1.0.423 исправлено. Правильный код:

this.getItemViewHeader = function() {
				return {
					columns: [
						{
							type: Terrasoft.ViewModelSchemaItem.ATTRIBUTE,
							name: 'Account',
							columnPath: 'Account',
							viewVisible: true,
							labelClass: 'account-accountname'
						}
					]
				};
			};
Показать все комментарии