Была поставлена задача руководством прикрепить к карточке контрагентов дополнительные поля (около 40 шт различного типа), редактирование которых было бы возможно при указании типа контрагента - "клиент".
что сделал:
создал таблицу с необходимыми полями (tbl_AddAccInfo), запрос на выборку (sq_AddAccInfo), датасет(ds_AddAccInfo).
к карточке контрагентов добавил второй датасет на странице не визуальных свойств и дополнительную область с вкладками куда разместил данные поля.
что получилось:
при открытии карточки редактирования контрагента открывается измененная карточка, однако все поля серые кроме bool data conrol`ов. Насколько я понимаю это от того, что в скрипт не добавлена инициализация второго датасета. Однако во всех примерах инициализации датасетов они прикреплены к окну как dlData, мой же прикреплен к окну контрагентов как dlAddData (так как dlData - стандартный). В связи с чем непонятно как реализовать работу с данным датасетом не сильно влезая в другие скрипты системы?
Заранее спасибо.

PS. версия системы TSXCRM 3.3.111. С реагированием на изменение типа контрагента пока не возился, хотелось бы сначала что бы просто работало, а потом уже остальные рюшечки.

Нравится

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

А не проще было добавить джойн в запрос sq_Account на свою табличку и оттуда выбрать нужные поля в датасете ds_Account?

"Черных Руслан" написал:А не проще было добавить джойн в запрос sq_Account на свою табличку и оттуда выбрать нужные поля в датасете ds_Account?

+1
и не бойтесь большого количества полей в таблицах, запросах и датасете:smile:

"Черных Руслан" написал:А не проще было добавить джойн в запрос sq_Account на свою табличку и оттуда выбрать нужные поля в датасете ds_Account?

Спасибо что откликнулись, я думал над этим, но тогда не совсем ясно как активировать поля ввода данных по смене типа контрагента, т.к. насколько я понимаю при такой реализации после загрузки карточки редактирования контрагента будут активны на изменения сразу все поля... хотя возможно я что то не до конца понимаю и был бы признателен если Вы подскажете где можно почитать про изменение свойства полей (активно/неактивно) при помощи скрипта.

Ну как вариант самый простой я б предложил сделать все поля как пользовательские стандартным методом.
При этом элемент fgUserFields вместе с содержимым выкинул бы на отдельную новую закладку в карточке наподобие закладки "финансы".

Здравствуйте, Сергей.

Данный функционал действительно проще всего реализовать через стандартные пользовательские поля (меню "Файл" - "Настройки" - "Пользовательские поля"), указав для этих полей тип контрагента = Клиент, и вынести их на отдельную закладку.

Инна Безверхняя,
II линия службы поддержки Terrasoft.

"Александр Кудряшов" написал:Черных Руслан пишет:
А не проще было добавить джойн в запрос sq_Account на свою табличку и оттуда выбрать нужные поля в датасете ds_Account?

+1
и не бойтесь большого количества полей в таблицах, запросах и датасете


Хм...хотя конечно 40 полей еще к датасету прикрутить...наверное много :-)

"Bezverkhnia Inna" написал:Данный функционал действительно проще всего реализовать через стандартные пользовательские поля (меню "Файл" - "Настройки" - "Пользовательские поля"), указав для этих полей тип контрагента = Клиент, и вынести их на отдельную закладку.

Спасибо за совет, был приятно удивлен тем, что пользовательские поля могут проявляться по условию.
Однако идея подобной реализации была, основным камнем преткновения стала невозможность указать в качестве источника значений для пользовательского поля иной раздел кроме справочников. Например хотелось бы прикрепить данные о ИФНС в которую сдаются отчетности какого либо контрагента, что бы при выборе этой ИНФС из списка контактов подгружались ее специалисты с контактной информацией. Наиболее полно этим требованиям отвечает уже существующая система прикрепления контактов к определенным контрагентам. Можно конечно реализовать подобное через систему справочников, однако городить лишнее не сильно хочется. Буду благодарен за описание более легкого способа реализации подобной задумки.

Здравствуйте, Сергей.
Учитывая описанные Вами требования к функционалу, реализовывать его нужно действительно не через пользовательские поля, а через TS Admin.
На карточке контрагента создаете все необходимые поля (для удобства и наглядности их все же лучше вынести на отдельную закладку карточки).
Данные о ИНФС можно заносить в поле типа LookupDataControl, источником данных для которого является датасет контрагентов, отфильтрованный, например, по определенному типу контрагента (Тип = Налоговая служба).
Аналогичным образом информация по специалистам этой ИНФС тоже будет заноситься в поле типа LookupDataControl, источником данных для которого является датасет контактов, отфильтрованный по контрагенту для контактов (Контрагент = ИНФС (из соответствующего поля)).

Фильтр на датасет можно накладывать на событии OnPrepareSelectWindow данного поля.

Инна Безверхняя,
II линия службы поддержки Terrasoft.

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