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

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

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

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

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

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

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

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

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


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

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

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


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

+1000

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

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


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