Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / 1C++ Вставка записей в справочник / 8 сообщений из 8, страница 1 из 1
20.11.2009, 20:07
    #36323356
ancot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C++ Вставка записей в справочник
Доброго времени суток!
Есть база sql, есть справочник 45 столбцов(много string), примерно 600000 строк. Некий документ при записи пишет туда от 1 до нескольких тысяч записей(зависит от содержимого дока). Перед тем как писать в этот справочник ,документ отбирает записи которые создал ранее и удаляет их (непосредственно). Все эти операции делаются стандартными средствами 1С. Т.е. в немереном цикле вызываем:

Пока ... Цикл
Спр.Удалить(1);
КонецЦикла;

Пока ... Цикл
Спр.Новый();
....
Спр.Записать();
КонецЦикла;

Документ пишется порой по 40мин.
Решил позвать на помощь 1С++. С удалением одним запросом вопросов не возникло, стало работать на ~30% шустрее. Со вставкой разобрался, но чтобы вставить запись, надо заполнить системные поля, такие как ID, CODE и VERSTAMP(иначе не дает записать). Можно конечно сгенерить значения этих полей, но неужели в 1С++ этого не предусмотрено.
з.ы. Функционал изначально кривой, но на нем строится вся система
...
Рейтинг: 0 / 0
20.11.2009, 20:16
    #36323369
ancot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C++ Вставка записей в справочник
Сам разобрался. Надо использовать объект SQLLock!
...
Рейтинг: 0 / 0
20.11.2009, 20:27
    #36323378
Егоров Александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C++ Вставка записей в справочник
ancot,

1C++ предусмотрена в первую очередь для выборки данных.
По поводу генерации ID - здесь. Если у Вас распределенка - в функциях нужно заменить последние три пробела на ПрефиксИБ.
По поводу генерации CODE зависит от типа кода в Справочнике. И его длинны, ессно. При этом "числовой" отличается от "тесктового" только передними нулями.
VERSTAMP - это счетчик изменений, при вставке нового элемента должен быть =0.
...
Рейтинг: 0 / 0
21.11.2009, 20:22
    #36324002
DobPilot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C++ Вставка записей в справочник
ancotДоброго времени суток!
Есть база sql, есть справочник 45 столбцов(много string), примерно 600000 строк. Некий документ при записи пишет туда от 1 до нескольких тысяч записей(зависит от содержимого дока). Перед тем как писать в этот справочник ,документ отбирает записи которые создал ранее и удаляет их (непосредственно). Все эти операции делаются стандартными средствами 1С. Т.е. в немереном цикле вызываем:

Пока ... Цикл
Спр.Удалить(1);
КонецЦикла;

Пока ... Цикл
Спр.Новый();
....
Спр.Записать();
КонецЦикла;

Документ пишется порой по 40мин.
Решил позвать на помощь 1С++. С удалением одним запросом вопросов не возникло, стало работать на ~30% шустрее. Со вставкой разобрался, но чтобы вставить запись, надо заполнить системные поля, такие как ID, CODE и VERSTAMP(иначе не дает записать). Можно конечно сгенерить значения этих полей, но неужели в 1С++ этого не предусмотрено.
з.ы. Функционал изначально кривой, но на нем строится вся система

Только му**ки делают такие документы!
...
Рейтинг: 0 / 0
22.11.2009, 13:35
    #36324381
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C++ Вставка записей в справочник
Опять 1с глючит.... мдаа 40 минут проводится.... мдааа


ps А может разработчики глючат?
...
Рейтинг: 0 / 0
23.11.2009, 09:10
    #36325078
Егоров Александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C++ Вставка записей в справочник
ancotФункционал изначально кривой, но на нем строится вся системаКстати, да... сразу не заметил... :) Ancot, а Вы уверены, что ковыряние прямой записи существенно улучшит производительность, нежели перепроектирование этого кривого функционала? Что такого пишется в этот справочник и где оно потом используется?
...
Рейтинг: 0 / 0
23.11.2009, 10:32
    #36325194
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C++ Вставка записей в справочник
1С++ юзаем только для селектов и апдейтов

для генерации новых записей крайне не рекомендуется т.к. отследить уникальность и не порушить внутреннюю целостность становиться уже сверхзадачей (можно конечно нагородить функционал генерящий ИД и служебные поля но это очень шатко и немодифицируемо получается что начинаешь тонуть во всём этом)

если документы большие то может есть смысел разбить на несколько и не проводить их в одной транзакции ? чтобы народ по полчаса не ждал пока освободиться таблица ?
...
Рейтинг: 0 / 0
25.11.2009, 20:26
    #36332072
MicMic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C++ Вставка записей в справочник
Программист 1сОпять 1с глючит.... мдаа 40 минут проводится.... мдааа


ps А может разработчики глючат?

+1000

На тек. месте пришлось переписать большинство модулей.
Проведение некоторых больших документов на 2-4 часа ...это пипец ...
свел к 10-30 минутам. Большего добится не получилось без кардинального изменения архитектуры, а на это времени нет. :(

По теме. Лучше функционал перепешите. Вероятно Вам что то типа регистра сведений надо. Но схимичить подобной вполне можно и на регистре остатков.
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / 1C++ Вставка записей в справочник / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]