Добрый день! добавил поле в карточку контрагента, но при его открытии выбивает ошибку, в меню справочник данное поле работает, можно редактировать и добавлять записи. Подскажите, что делать, чтобы и в карточке контрагента можно было добавлять и редактировать записи?
необходимо сделать, это выполнить отладку кода при помощи Microsoft Visual Studio или Microsoft Script Debugger.
Необходимо пройтись по коду и найти место где идет обращение к методу ShowNoModalSelectDataWindow (в базовой конфигурации такой функции, обращения метода нет), после чего закомментировать обращение и проверить работоспособность системы..
Если дебагер не подхватывает ошибку,в таком случае необходимо в окне сообщения об ошибке приложения Terrasoft посмотреть по стеку где возникло исключение:
Найдите функцию в сервисе конфигурации, которая указана в стеке вызова, и в ней устанавливаете прерывание:
function edtCountryOnPrepareSelectWindow(LookupDataControl, SelectWindow){
debugger;
FilterLookupDataControlLookupDatasetByTerritory(LookupDataControl,
edtTerritory.DataField.Value);}
Сохраните сервис и перезапускаете приложение, после этого дебагер подхватит прерывание и Вы сможете пройтись по коду дебагером
Не забудьте включить дебагер. Прикрепил файлы которые включают/отключают дебагер. jitdebug_ru.zip
Добрый день! у меня в карточке контрагента уже реализовано связь вида деятельности и отраслей, при выборе вида деятельности автоматически подтягивает отрасли (ниже есть скрин), но хотелось бы дополнить, нужно сделать так, что когда мы выбираем отрасль, в карточке выбора деятельности срабатывал фильтр, а пока его нет, могут возникнуть ошибки при заповненнни.
Вы можете просмотреть пример реализации фильтрации для поля [Город] и повторить для поля [Вид деятельности] создать свою функцию фильтрации или установить фильтрацию сразу в событии edtActivityOnPrepareSelectWindow.
Есть функция Log.Write - выводит сообщение в лог. На диск лог сохраняется при закрытии.
Есть ли функционал, с помощью которого, можно принудительно сохранить лог в файл, а последующие сообщения начнут записываться в новый лог(файл).
И подскажите может есть статья\тема описания работы с системным логом (журнал в БД, насколько я понимаю)?
Здравствуйте. Да изменения сразу записываються в файл, но его нельзя просмотреть в процессе, он открыт для записи и пока не закроешь TS или не сохранишь через визуальные элементы окна логирование его не просмотришь. Если функция которая с помощью которой можно програмно сохранить лог файл и начать запись в новый.
Нет не логирование изменений, как то натыкался на функцию ккоторая записывает информацию не в лог(Log.Write), а в системный журнал или как то так, насколько я понял записывает в спец. таблицу - про это хотел бы узнать больше.
"Дашкевич К." написал:как то натыкался на функцию ккоторая записывает информацию не в лог(Log.Write), а в системный журнал или как то так, насколько я понял записывает в спец. таблицу - про это хотел бы узнать больше.
function RecalcBalance(SettledCredit) {
var BalanceAmount = AccountEdit.BalanceAmount;
var RemainAmount = (SettledCredit + BalanceAmount*1).toFixed(2);
edtBalanceAmount.Value = AddDelimiter(BalanceAmount);
edtRemainAmount.Value = AddDelimiter(RemainAmount);
}
function SetPostponementPayment(Value) {
var Dataset = dlData.Dataset;
if ((Dataset.State == dstEdit) ||
(Dataset.State == dstInsert)) {
dlData.Dataset('PostponementPayment') = (Value * 1);
}
}
/* ENDPRODUCT XRM */
function InitializeCommunicationActionSmartTags() {
for (var i = 1; i < 6; i++) {
RefreshCommunicationActionSmartTag(
Self.ComponentsByName('edtCommunication' + i + 'Type'),
Self.ComponentsByName('edtCommunication' + i));
}
}
function CallCommunicationActionSmartTagHandler(ActionMenuItem) {
scr_CommunicationActionSmartTag.HandleCommunicationActionSmartTag(ActionMenuItem);
}
function InitAccountInfo() {
var Dataset = dlData.Dataset;
AccountEdit.OldName = Dataset.Values('Name');
}
function CheckAccountData() {
var Dataset = dlData.Dataset;
var NewName = Dataset.Values('Name');
var AccountID = Dataset.Values('ID');
var NameWasChanged = (NewName != AccountEdit.OldName);
var Result = true;
if ((NameWasChanged) && (!GetAttribute(Self, 'isMassEdit'))) {
var IsAccountLicensed = GetIsAccountLicensed(AccountID);
if (IsAccountLicensed) {
var Message = "Изменение '%1' контрагента у пользователя системы, может стать причиной повреждения лицензии. Продолжить?"
var SubjectName = Dataset.DataFields('Name').Caption;
var MessageStr = FormatStr(Message, SubjectName);
var Result = (ShowConfirmationDialog(MessageStr) == mrYes);
}
}
return Result;
}
function PrepareFinanceDetail() {
pgFinance.IsVisible = !Self.Attributes('HideFinanceDetail');
}
я сделал back up, но не помогло (при добавлении или редактировании вид деятельности или отраслей контрагента выбивает даную ошибку, не могу разобраться где именно и что делать .... сейчас моя функция имеет вид:
function dlDataOnDatasetDataChange(DataField) {
var FieldName = DataField.Name;
var Dataset = DataField.ParentDataFields.ParentDataset;
/* PRODUCT XRM */
if (FieldName == 'PostponementPayment') {
RefreshPostponementPayment(Dataset('ID'));
}
if ((FieldName == 'SettledCredit') || (FieldName == 'PostponementPayment')) {
if (Dataset.ValAsFloat('SettledCredit') < 0) {
ShowWarningDialog("Разрешенный кредит не может быть меньше 0");
Dataset('SettledCredit') = 0;
return;
}
RecalcBalance(Dataset('SettledCredit'));
}
/* ENDPRODUCT XRM */
if (FieldName.indexOf('Communication') == 0) {
var Index = FieldName.substr(13, 1);
var CommTypeDataControl =
Self.ComponentsByName('edtCommunication' + Index + 'Type');
var CommDataControl =
Self.ComponentsByName('edtCommunication' + Index);
RefreshCommunicationActionSmartTag(CommTypeDataControl, CommDataControl,
(FieldName.indexOf('Type') > -1));
}
}
Подскажите пожалуйста есть ли вариант полного переноса базы(всех данных) из Террасофт 3.2 в 1С 8.3 Управление торговлей 11.1 (управление продажами недвижимости)? Операционная система WinXP.
Подскажите пожалуйста, я никогда не работал с этой программой, но передо мной стоит задача экспортировать всю базу Террасофт Риэлт в 1с:Управление недвижимостью, возможно ли это вообще сделать? Если да, то как? Или может, возможен експорт всей базы в формат Exсel?
Программный продукт TS CRM Realty – это разработка нашего партнера ‘Альфа-Информ’.
Для уточнения деталей реализации и возможностей интеграции с другими программными системами свяжитесь, пожалуйста, с компанией ‘Альфа-Информ’ по телефонам, указанным на их сайте: http://www.olp.ru/
справочник [Виды деятельности] редактируется с помощью базового окна редактирования wnd_BaseDBEdit.
wnd_BaseDBEdit - является базовым окном редактирования для всех справочников, у которых явно не задано окно редактирования.
Добрый день! подскажите пожалуйста, как можно сделать группы отраслей и вид деятельности взаимосвязанными, чтобы работало как связка страна-территория?
Для этого выполните такую последовательность действий:
Добавить новое поле в сервис таблицы tbl_Field с типом идентификатор, которое будет ссылаться на таблицу tbl_Activity
Добавьте два поля на выборку в сервис sq_Field; 1 поле - поле которое добавили ранее и 2 поле - это выборка поля Name из таблицы tbl_Activit по новому добавленному полю
Добавить лукапное поле в сервис датасета ds_Field
Чтобы не ошибиться, делайте по аналогии с таблицей tbl_Country.
Немного не понятно, что имеете ввиду под "справочники не объединяются".
Добавьте свой справочник редактирования наследуясь от базового окна редактирования wnd_BaseDBEdit. Как пример, можете взять окно редактирования wnd_CityEdit.
После этого, в разделе [Справочники] необходимо изменить свойство справочника [Отрасли]. Установить значение полю [Окно реестре] = 'wnd_FieldEdit'.
Если изменение свойств будет заблокировано, в токам случае, выполните sql скрипт:
UPDATE tbl_Dictionary SET EditWindowCode ='wnd_FieldEdit' WHERE DatasetCode ='ds_Field'
где wnd_FieldEdit - Ваше окно редактирования справочника
заработало)))), а как сделать так, чтобы при выборе вида деятельности, отрасли сами добавлялись? у меня отрасль родительская категория, а вид деятельности дочерняя.
function dlDataOnDatasetDataChange(DataField){
var FieldName = DataField.Name;
var Dataset = DataField.ParentDataFields.ParentDataset;
var FieldValue = DataField.Value;if(FieldName.indexOf('Communication')==0){
var Index = FieldName.substr(13, 1);
var CommTypeDataControl =
Self.ComponentsByName('edtCommunication'+ Index +'Type');
var CommDataControl =
Self.ComponentsByName('edtCommunication'+ Index);
RefreshCommunicationActionSmartTag(CommTypeDataControl, CommDataControl,
(FieldName.indexOf('Type')>-1));}if(FieldName =='FieldID'){if(IsEmptyValue(FieldValue)){
Dataset.DataFields('ActivityID').Value= null;}else{
Dataset.DataFields('ActivityID').Value=
GetFieldValueFromLookupDatasetByLookupField(DataField, 'ActivityID');}}}
Содержимое функции может немного отличаться, это зависит от продукта.
Добрый день! передо мной стоит задача внести изменения в карточку добавления контрагента, а именно настроить средства связи так чтобы уже автоматически стояли в заданном порядке.