Добрый день!
Внес изменения в структуру контактов, касаемую телефонов. Добавлено 2 поля телефон и мобильный, имеющие ссылки на телефоны контрагентов (в виде справочника из AccountCommunication).
Создал справочник средств связи:
- на основе данных (ds_AccountCommunication)
- имеющие форму для окна реестра (wnd_CommunicationsGridArea)
- окна редактирования (wnd_CommunicationEdit).
При добавлении нового телефона (кнопка добавить) вылетает ошибка. не передает id контрагента, не инициализирует датасет.
Нравится
Здравствуйте, Константин!
В данном случае необходимо произвести отладку программного кода на Ваших добавленных сервисах.
Пожалуйста, предоставьте доработанные скрипты конфигурации и скриншот отладчика, где видно, на какой строке происходит сбой.
Инструкция по выгрузке сервисов: http://www.community.terrasoft.ua/blogs/6281
Инструкция по установке отладчика: http://www.community.terrasoft.ua/blogs/7804
Справочник создавался на основе данных ds_communication, а там AccountId как строка идет, может быть в нем дело?
Здравствуйте, Константин!
Наиболее вероятная причина проблемы - Вами не инициализаруется корректно окно. Однако сказать точно я смогу только когда увижу Ваши сервисы, т.к. даже при наличии скриншотов все равно не очевидно, какие изменения были Вами внесены в базовую логику, соответственно, сложно предположить причину.
Константин, уточните, пожалуйста, в какие сервисы Вами вносились изменения?
В приложении недостаточно информации для анализа сбоя, либо же Вами производилось редактирование сервисов не по инструкции.
В таблицу (запрос и датасет) Contact добавлены 2 поля Телефон и Мобильный, имеющие ссылки на AccountCommunication.
При выборе телефона у контакта через поле телефон применяется лишь фильтр (показывает все телефоны контрагента)
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)
А вот при выборе у контакта телефона и добавлении нового, не идентифицирует AccountID и wnd_CommunicationsGridArea выглядит следующим образом (открывается другая форма)
Создан справочник средств связи через клиентское приложение:
на основе данных (ds_AccountCommunication)
имеющие форму для окна реестра (wnd_CommunicationsGridArea)
окна редактирования (wnd_CommunicationEdit).
Они стандартные, лишь добавлено поле AccountID для отладки
Контсантин, если поля добавлены только в запрос, то редактировать их не получится, т.к. запрос Post не выполняется для таблицы AccountCommunication. Таким образом можно только добавить поля для показа.
В Вашем случае оптимальный вариант реализации будет следующим:
1. Добавить эти поля в датасет как вычисляемые.
2. В случае изменения значения в карточке менять содержимое tbl_AccountCommunication отдельным запросом.