Караул!!!
Несколько дней назад синка сломалась, писало "Out of memory". Долго бился в стенку пока не проверил историю синхронизаций, там было 1 645 624 записей!!!! я сократил до 13 000. теперь при экспорте контрагентов пишет "List index out of bounds". Ошибка вываливается в разных местах, иногда при сохранении записи на дели истории, иногда при открытии настроек синки, иногда при открытии настройки соответствия полей. Синка полностью выведена из строя, клиент в бешенстве, я уже не знаю что делать!

Вот одно из мест ошибки

function GetFullObjectParam(ObjectID, Obj1C, SynType, ErrorsIsNotAcepted,
        Version, DataflowID, Dataset1CObject) {
        if (!Assigned(Dataset1CObject)) {
                Dataset1CObject = GetSingleItemByCode('ds_1CObject', 'GetFullObjectParam');
                EnableDatasetFilters(Dataset1CObject, false);
                ApplyDatasetFilter(Dataset1CObject, 'ID', ObjectID, true);
                Dataset1CObject.Open();

в строке Dataset1CObject.Open(); выбивает ошибку, посмотрел SQLText и проверил его в скл менеджере - работает нормально, выбрало нужную запись, в коде - ошибка.
кеш чистил, СКЛ сервер перезагружал. какие есть идеи? Нужно срочно это исправить
версия: xrm 3.4.0.130

Нравится

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

Я бы начал с анализа сервиса ds_1CObject и сервиса его запроса (sq_), может какая колонка слетела.
Плюс избавился бы для эксперимента от GetSingleItemByCode, заменив на Services.GetNewItemByUSI, хотя бы временно

только что в новом месте ошибка выскочила:

function GetAreRemindingsExist() {
	Main.RemindingsDataset.Close();
	var SelectQuery = Main.RemindingsDataset.SelectQuery;
	var PrimarySelect = GetSelectQueryPrimarySelect(SelectQuery);
	EnableFilter(PrimarySelect.Filters, 'ContactID', true);
	var ContactParameter = SelectQuery.Parameters.ItemsByName('ContactID');
	ContactParameter.ValAsGUID = Connector.CurrentUser.ContactID;
	EnableFilter(PrimarySelect.Filters, 'RemindTime', true);
	var RemindTimeParameter = SelectQuery.Parameters.ItemsByName('RemindTime');
	var today = new Date(System.Now());
	RemindTimeParameter.Value = today.getVarDate();
	Main.RemindingsDataset.Open();

вот тут: Main.RemindingsDataset.Open();
Как может вот так в разных местах все слететь???

вот еще одна ошибка:
Ошибка экспорта. Возникла при попытке открытия источника данных Контрагент. Ошибка открытия источника данных "ds_Account".
Оригинальное сообщение об ошибке: List capacity out of bounds (32)

Здравствуйте, Виталий!

А какие запросы идут в базу данных проверяли?
Также рекомендую проверить работает ли синхронизация хотя бы для одной записи.

Тогда можно уже понимать в чем причина такого поведения системы в объеме синхронизируемых данных или что-то 'слетело' в настройках самой синхронизации.

Нечто новое. Делается бекап БД каждый день, я сделал новую бд, залил туда бекап от 1 июля и запустил на других бинарниках:confused:таже ошибка:confused:... Это что за прикол такой!!!
вот такую ошибку мне показало при попытке экспорта контрагентов:

Main.RemindingsDataset.Open()	List index out of bounds (3)

Здесь ошибка в напоминаниях, но бывает и при открытии ds_Account

Виталий,

Эта проблема наблюдается только на одной машине или на других тоже воспроизводится?

Попробуйте очистить кеш и профиль пользователя Terrasoft.

"Савельева Алла" написал:

Здравствуйте, Виталий!

А какие запросы идут в базу данных проверяли?

Также рекомендую проверить работает ли синхронизация хотя бы для одной записи.

Тогда можно уже понимать в чем причина такого поведения системы в объеме синхронизируемых данных или что-то 'слетело' в настройках самой синхронизации.


записи проверял - нормальние, в скл работают
даже длня лной не работает

тут дело в том что ошибка вылетает независимо от версии базы(свежая или 2 недели назад) и бинарников. Проблема кроется гдето на компе, что же может выдавать такую ошибку?

Сегодня создал новую настройку в интеграциях, взял раздел счета, выбило первоначальную ошибку Out Of Memory!!! в чем же может быть ошибка? А еще иногда после появления ошибки клиент закривается

То есть проблема наблюдается в разных местах системы, на разных бинарниках и базах, но на одном ПК?
Может, на этом компьютере памяти не хватает или она битая?

"Зверев Александр" написал:Может, на этом компьютере памяти не хватает или она битая?

перенесли. Теперь ошибка "list index of bounds(0)" выбивает в разделах контрагенты и контакты при сохранении карток... Какие у кого еще идеи есть??? везде выбивает на моменте сохранение Dataset

Это решил, прописал sp_change_users_login 'update_one', 'fkeys', 'fkeys' и ошибка пропала.
Еще вопрос. Сделал импорт одного контрагента и очень долго думало, гдето 2-3 мин а потом предложило загрузить метаданные, я нажал нет и оно опять 1-2 минуты подумало, сказало что недостаточно памяти и выбило ТС.
Как сократить это время "думания" ТС??? Для одной записи слишком долго думает...

Проанализируйте запросы к БД, которые выполняются в рамках синхронизации одной записи.

Также не лишним будет отладить конфигурацию TS в том месте, где вызывается синхронизация и посмотреть, что и где подвисает.

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

Контрагентов всего 6 тысяч, много раз просматривал отладчиком код, ТС просто закрывается без предупреждения в разных местах кода... Раньше ошибки выскакивали о недостатках памяти при открытии какого-то Dataset. Востанавливались разные бекапы на разних системах и ПК и везде одинаковые ошибки в ТС. И тут сделал синку с очень старой базой 1С и о чудо ошибок нет...
Оперативы стоит 16 гигов, в диспетчере она полностью она не задействуется, но выбивает ошибку о недостаче памяти...

Здравствуйте, Виталий!

Ответьте, пожалуйста, на следующие вопросы.

1. Выполнялся ли анализ запросов, которые поступают в базу данных?

2. Выполнялись ли накануне возникновения проблемы какие-то доработки в конфигурации 1С или Terrasoft до того, как произошел сбой?

3. Базы данных Terrasoft и 1С находятся на одном сервере?

4. Выполнялись ли накануне возникновения проблемы какие-то работы на серверах, где находятся 1С и Terrasoft?

5. Синхронизация выполняется под пользователем с правами администратора Terrasoft или под обычным пользователем?

6. Сбой происходит при попытке затянуть данные из 1C в Terrasoft или в обе стороны?

7. Нет ли проблем с работой другой функциональности в Terrasoft?

Также рекоммендую Вам попробовать обновить бинарные файлы Terrasoft до последней версии.

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