27.04.2004, 15:19 | #1 |
Участник
|
Редактирование записи
Подскажите что не так, вроде делаю все правильно.
В Сериях документов создаю серию для Личности, пример, ЛИЧ. В модуле Управление персоналом в Параметрах на вкладке Номерные серии выбираю из списка серию документов ЛИЧ, система плюется такой вот ошибкой: "Невозможно отредактировать запись в 'Ссылки на серии' ('NumberSequenceReference'). Вы пытаетесь оперировать с одной записью, но затрагивается большее количество записей, проверьте индексы, запустите синхронизацию, либо что-то эквивалентное" Пробовал запускать Синхронизацию и Обновление данных после синхронизации, не помогает. ????????????? |
|
27.04.2004, 17:57 | #2 |
Administrator
|
Попробуйте запустить проверку данных (Администрирование - Периодические операции - SQL Администрирование; Таблицы - Проверить/Синхронизировать). Лучше запускайте сразу для всех таблиц.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
05.05.2004, 10:50 | #3 |
Участник
|
Пробовал запускать Синхронизацию таблиц, не помогает
|
|
25.01.2005, 13:11 | #4 |
Участник
|
Здравствуйте, у меня возникла аналогичная ошибка при сохранении записей: "Невозможно сохранить запись. Вы пытаетесь оперировать с одной записью, но затрагивайте большее количество записей..." По данной проблеме нашла две темы на ахфоруме, однако нигде не было найдено решение проблемы в переписке. Темы довольно старые и я подумала, может, все же вам удалось побороть ошибку и узнать, с чем она была связана? Можете помочь советом?
|
|
25.01.2005, 13:14 | #5 |
Модератор
|
Имхо, одинаковые имена у кодов - серий документов. Попробуйте переименовать.
С Уважением, Георгий |
|
25.01.2005, 13:26 | #6 |
Участник
|
Спасибо за ответ, правда, вряд ли в моем случае это поможет. Дело в том, что подобной ошибки я добиваюсь несколько иным путем. К примеру, создала подряд несколько записей в справочнике "Счетов главной книги" (или в другой таблице), далее перемещаюсь между записями, обновляю то в одной поле, то в другой. Затем пытаюсь сохранить запись, и система радует таким сообщением....
|
|
25.01.2005, 13:32 | #7 |
Модератор
|
Ключевое поле должно быть уникальным... Такая ошибка может быть, если Вы, допустим, забила два одинаковых номера счета (Допустим, 62.2.2 и 62.2.2). Если же она возникает просто при переходе по записям... ? То тогда-к программистам. Они должны подсказать, откуда возникает ошибка (посмотрев стек вызовов)
С Уважением, Георгий |
|
25.01.2005, 13:42 | #8 |
Участник
|
С уникальностью ключевых полей понятно, конечно. Но изменяю я далеко не ключевые. :-( И это не плод наших трудов, поскольку ошибка возникает также и на чистом репозитарии SP3. Хорошо, посмотрим еще: есть ли в хотфиксах упоминания какие-либо данной ошибки... спасибо
|
|
31.01.2017, 16:59 | #9 |
Участник
|
Добрый день.
Хочу возобновить обсуждение этой темы. В некоторых случаях на разных таблицах при сохранении записи стало появляться сообщение "Вы пытаетесь оперировать с одной записью, но затрагивается большее количество записей. Проверьте индексы, запустите синхронизацию базы данных, или что-либо эквивалентное." Аксапта работала 10 лет без подобных ошибок, а на днях разные пользователи при разных действиях на разных таблицах стали получать такое сообщение. Ошибка появляется, как при двухуровневом подключении, так и при трехуровневом. Синхронизация не помогает, Проверка/синхронизация никаких ошибок не выявила. Может, кто-нибудь понял, в чем причина или как это можно поправить? Ax 3.0, SP3, SQLServer. |
|
31.01.2017, 20:53 | #10 |
----------------
|
Ax3.0... 10 лет
А проверьте-ка какие у вас RecId создаются |
|
31.01.2017, 23:42 | #11 |
Участник
|
С RecId у нас отдельная история.
Сейчас у нас отрицательные RecId, причем мы проходим отрицательные значения уже во второй раз. Т.е. мы прошли положительные, отрицательные, опять положительные и снова перешли на отрицательные. У нас организовано "хитрое" получение RecId из незанятых значений. И дублей у нас нет. Это я к тому, что отрицательные значения не должны были повлиять на внезапное появление этой ошибки. Хотя у меня были сомнения насчет появившихся записей с дублирующимися RecId, которые теоретически могли вызвать подобную ошибку. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
01.02.2017, 07:32 | #12 |
Участник
|
вот здесь пишут что это ещё из-за глюков с DataAreaId может быть. Ошибка при сохраниении записи Вы используете несколько компаний? Может у вас каким-то образом DataAreaId из какого-нибудь индекса выпала? |
|
01.02.2017, 08:49 | #13 |
Участник
|
Цитата:
Сообщение от magnetica
Спасибо за ответ, правда, вряд ли в моем случае это поможет. Дело в том, что подобной ошибки я добиваюсь несколько иным путем. К примеру, создала подряд несколько записей в справочнике "Счетов главной книги" (или в другой таблице), далее перемещаюсь между записями, обновляю то в одной поле, то в другой. Затем пытаюсь сохранить запись, и система радует таким сообщением....
select count(*), RecId, DataAreaId from LEDGERTABLE group by DataAreaId, RecId having count(*) > 1 Запрос не должен возвратить ни одной записи. Вместо LEDGERTABLE можно использовать любую таблицу, на которой у вас выскакивает ошибка. |
|
01.02.2017, 09:53 | #14 |
Участник
|
2 S.Kuskov: Одна компания с двумя присоединенными виртуальными. Виртуальные подключены уже достаточно давно. Про dataareaId в индексах - не могу понять, как это можно проверить? Если только перестраивать индексы заново.
2 Ace of Database: Т.к. одна компания, то dataareaId в одной таблице одна, а RecId уникальны во всей базе (как я писала выше). |
|
01.02.2017, 10:48 | #15 |
Участник
|
Цитата:
Сообщение от Alenka
2 S.Kuskov: Одна компания с двумя присоединенными виртуальными. Виртуальные подключены уже достаточно давно. Про dataareaId в индексах - не могу понять, как это можно проверить? Если только перестраивать индексы заново.
2 Ace of Database: Т.к. одна компания, то dataareaId в одной таблице одна, а RecId уникальны во всей базе (как я писала выше). |
|
01.02.2017, 10:52 | #16 |
Участник
|
И еще одно, если у вас таблица LedgerTable входит в табличную коллекцию,то проверьте что в базе данных для нее есть только те записи, у которых DataAreaId равна коду виртуальной компании. Не должно быть записией с DataAreaId, равными кодам обычных компаний, которые входят в виртуальные.
Например, если виртуальная компания называется vir, а в нее входит обычная компания dat и таблица LedgerTable входит в табличную коллекцию, привязанную к данной виртуальной компании, то 1) Это запрос не должен вернуть ни одной записи select * from LedgerTable where DataAreaId = 'dat' 2) Это запрос вернет те записи, которые видны в Аксапте: select * from LedgerTable where DataAreaId = 'vir' Это надо делать в SQL Management Studio Последний раз редактировалось Ace of Database; 01.02.2017 в 11:00. |
|
01.02.2017, 11:00 | #17 |
Участник
|
Во-первых, спасибо, что вникаете в проблему.
Во-вторых, по пунктам: 1. Нет, я не пробовала выполнить ваш запрос, т.к. утверждение про отсутствие дублей RecId в базе - не голословное утверждение, а проверенное. 2. У нас нет проблем с таблицей LedgerTable. Проблемы возникали как со стандартными таблицами, типа PurchTable или SalesLine, так и с созданными нами таблицами. В табличные коллекции, соответствующие виртуальным компаниям, входят созданные нами таблицы, с которыми проблем пока не возникало. Про dataareaId в таблицах - проверю, результат напишу попозже. |
|
01.02.2017, 11:04 | #18 |
Участник
|
И еще по поводу быстрой проверки виртуальной компании. Проверку можно упростить.
Этот запрос не должен вернуть ни одной записи: select * from LedgerTable where DataAreaId <> 'vir' |
|
01.02.2017, 12:05 | #19 |
Участник
|
В обычных таблицах проблем с dataareaId нет. В паре таблиц из табличной коллекции, соответствующей виртуальной компании, были записи с неправильным dataareaId. Сейчас их удалила. Но эти записи были старые, четырехлетней давности.
|
|
01.02.2017, 13:27 | #20 |
Участник
|
Цитата:
Сообщение от Alenka
С RecId у нас отдельная история.
Сейчас у нас отрицательные RecId, причем мы проходим отрицательные значения уже во второй раз. Т.е. мы прошли положительные, отрицательные, опять положительные и снова перешли на отрицательные. У нас организовано "хитрое" получение RecId из незанятых значений. И дублей у нас нет. В идеале, надо бы поймать момент, когда происходит ошибка и посмотреть RecId изменяемых записей, сравнив с RecId уже существующих --------- Кстати, если при повторной попытке сохранения тех же самых данных (или при нескольких повторных попытках) все-так сохранение выполняется, значит проблема точно в генераторе RecId. Точнее, в тех полях, содержимое которых формируется автоматически. Причем при каждой новой попытке сохранения формируются новые значения. Как правило, это характерно только для RecId, но, может быть, у Вас реализовано еще что-то свое.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... Последний раз редактировалось Владимир Максимов; 01.02.2017 в 13:32. |
|
|
|