Изменения телефонов контактов

Добрый день!
Внес изменения в структуру контактов, касаемую телефонов. Добавлено 2 поля телефон и мобильный, имеющие ссылки на телефоны контрагентов (в виде справочника из AccountCommunication).
Создал справочник средств связи:

  • на основе данных (ds_AccountCommunication)
  • имеющие форму для окна реестра (wnd_CommunicationsGridArea)
  • окна редактирования (wnd_CommunicationEdit).

При добавлении нового телефона (кнопка добавить) вылетает ошибка. не передает id контрагента, не инициализирует датасет.

Нравится

8 комментариев

Здравствуйте, Константин!

В данном случае необходимо произвести отладку программного кода на Ваших добавленных сервисах.

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

Инструкция по выгрузке сервисов: http://www.community.terrasoft.ua/blogs/6281

Инструкция по установке отладчика: http://www.community.terrasoft.ua/blogs/7804

Справочник создавался на основе данных ds_communication, а там AccountId как строка идет, может быть в нем дело?

Здравствуйте, Константин!

Наиболее вероятная причина проблемы - Вами не инициализаруется корректно окно. Однако сказать точно я смогу только когда увижу Ваши сервисы, т.к. даже при наличии скриншотов все равно не очевидно, какие изменения были Вами внесены в базовую логику, соответственно, сложно предположить причину.

Доброе утро. Высылаю сервисы.

Константин, уточните, пожалуйста, в какие сервисы Вами вносились изменения?

В приложении недостаточно информации для анализа сбоя, либо же Вами производилось редактирование сервисов не по инструкции.

В таблицу (запрос и датасет) Contact добавлены 2 поля Телефон и Мобильный, имеющие ссылки на AccountCommunication.
фото 0
При выборе телефона у контакта через поле телефон применяется лишь фильтр (показывает все телефоны контрагента)

function FilterLookupDataControlLookupDatasetByTel(LookupDataControl, 
		AccountIDValue) {
	var Dataset = LookupDataControl.DataField.LookupDataset;
		var tel='DBCB6A43-D99F-45AE-9B41-037DE595242E'   // тип средства связи - телефон
		ApplyDatasetFilter(Dataset, 'AccountID', AccountIDValue, true);
		ApplyDatasetFilter(Dataset, 'CommunicationTypeID', tel, true);
}

Открывается корректно. Выбирается тоже корректно.
Через Средства связи в модуле контрагентов, добавляется корректно.
Нормальный вид wnd_CommunicationsGridArea (добавлено для отображения поле AccountID)
фото 1
А вот при выборе у контакта телефона и добавлении нового, не идентифицирует AccountID и wnd_CommunicationsGridArea выглядит следующим образом (открывается другая форма)
фото 2

Создан справочник средств связи через клиентское приложение:
на основе данных (ds_AccountCommunication)
имеющие форму для окна реестра (wnd_CommunicationsGridArea)
окна редактирования (wnd_CommunicationEdit).
Они стандартные, лишь добавлено поле AccountID для отладки

Контсантин, если поля добавлены только в запрос, то редактировать их не получится, т.к. запрос Post не выполняется для таблицы AccountCommunication. Таким образом можно только добавить поля для показа.

В Вашем случае оптимальный вариант реализации будет следующим:

1. Добавить эти поля в датасет как вычисляемые.
2. В случае изменения значения в карточке менять содержимое tbl_AccountCommunication отдельным запросом.

Показать все комментарии