|
|
|
1C++ Вставка записей в справочник
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Есть база sql, есть справочник 45 столбцов(много string), примерно 600000 строк. Некий документ при записи пишет туда от 1 до нескольких тысяч записей(зависит от содержимого дока). Перед тем как писать в этот справочник ,документ отбирает записи которые создал ранее и удаляет их (непосредственно). Все эти операции делаются стандартными средствами 1С. Т.е. в немереном цикле вызываем: Пока ... Цикл Спр.Удалить(1); КонецЦикла; Пока ... Цикл Спр.Новый(); .... Спр.Записать(); КонецЦикла; Документ пишется порой по 40мин. Решил позвать на помощь 1С++. С удалением одним запросом вопросов не возникло, стало работать на ~30% шустрее. Со вставкой разобрался, но чтобы вставить запись, надо заполнить системные поля, такие как ID, CODE и VERSTAMP(иначе не дает записать). Можно конечно сгенерить значения этих полей, но неужели в 1С++ этого не предусмотрено. з.ы. Функционал изначально кривой, но на нем строится вся система ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2009, 20:07 |
|
||
|
1C++ Вставка записей в справочник
|
|||
|---|---|---|---|
|
#18+
Сам разобрался. Надо использовать объект SQLLock! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2009, 20:16 |
|
||
|
1C++ Вставка записей в справочник
|
|||
|---|---|---|---|
|
#18+
ancot, 1C++ предусмотрена в первую очередь для выборки данных. По поводу генерации ID - здесь. Если у Вас распределенка - в функциях нужно заменить последние три пробела на ПрефиксИБ. По поводу генерации CODE зависит от типа кода в Справочнике. И его длинны, ессно. При этом "числовой" отличается от "тесктового" только передними нулями. VERSTAMP - это счетчик изменений, при вставке нового элемента должен быть =0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2009, 20:27 |
|
||
|
1C++ Вставка записей в справочник
|
|||
|---|---|---|---|
|
#18+
ancotДоброго времени суток! Есть база sql, есть справочник 45 столбцов(много string), примерно 600000 строк. Некий документ при записи пишет туда от 1 до нескольких тысяч записей(зависит от содержимого дока). Перед тем как писать в этот справочник ,документ отбирает записи которые создал ранее и удаляет их (непосредственно). Все эти операции делаются стандартными средствами 1С. Т.е. в немереном цикле вызываем: Пока ... Цикл Спр.Удалить(1); КонецЦикла; Пока ... Цикл Спр.Новый(); .... Спр.Записать(); КонецЦикла; Документ пишется порой по 40мин. Решил позвать на помощь 1С++. С удалением одним запросом вопросов не возникло, стало работать на ~30% шустрее. Со вставкой разобрался, но чтобы вставить запись, надо заполнить системные поля, такие как ID, CODE и VERSTAMP(иначе не дает записать). Можно конечно сгенерить значения этих полей, но неужели в 1С++ этого не предусмотрено. з.ы. Функционал изначально кривой, но на нем строится вся система Только му**ки делают такие документы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2009, 20:22 |
|
||
|
1C++ Вставка записей в справочник
|
|||
|---|---|---|---|
|
#18+
Опять 1с глючит.... мдаа 40 минут проводится.... мдааа ps А может разработчики глючат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2009, 13:35 |
|
||
|
1C++ Вставка записей в справочник
|
|||
|---|---|---|---|
|
#18+
ancotФункционал изначально кривой, но на нем строится вся системаКстати, да... сразу не заметил... :) Ancot, а Вы уверены, что ковыряние прямой записи существенно улучшит производительность, нежели перепроектирование этого кривого функционала? Что такого пишется в этот справочник и где оно потом используется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 09:10 |
|
||
|
1C++ Вставка записей в справочник
|
|||
|---|---|---|---|
|
#18+
1С++ юзаем только для селектов и апдейтов для генерации новых записей крайне не рекомендуется т.к. отследить уникальность и не порушить внутреннюю целостность становиться уже сверхзадачей (можно конечно нагородить функционал генерящий ИД и служебные поля но это очень шатко и немодифицируемо получается что начинаешь тонуть во всём этом) если документы большие то может есть смысел разбить на несколько и не проводить их в одной транзакции ? чтобы народ по полчаса не ждал пока освободиться таблица ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 10:32 |
|
||
|
1C++ Вставка записей в справочник
|
|||
|---|---|---|---|
|
#18+
Программист 1сОпять 1с глючит.... мдаа 40 минут проводится.... мдааа ps А может разработчики глючат? +1000 На тек. месте пришлось переписать большинство модулей. Проведение некоторых больших документов на 2-4 часа ...это пипец ... свел к 10-30 минутам. Большего добится не получилось без кардинального изменения архитектуры, а на это времени нет. :( По теме. Лучше функционал перепешите. Вероятно Вам что то типа регистра сведений надо. Но схимичить подобной вполне можно и на регистре остатков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 20:26 |
|
||
|
|

start [/forum/topic.php?fid=28&gotonew=1&tid=1523021]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
173ms |
get topic data: |
10ms |
get first new msg: |
4ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 202ms |
| total: | 474ms |

| 0 / 0 |
