Как известно, запрос — это специальный объект в 1С 8, который используется для формирования и выполнения запросов к таблицам базы данных в системе.
В этот раз я хочу остановиться на методе обработки выполняемого запроса, что особенно актуально при обработке таблиц с большими базами данных, имеющих тысячи позиций. Например, документ ИнвентаризацияТоваровНаСкладе, заполнение учетными данными в котором занимало довольно продолжительное время — до 30 и более минут.
Стандартная процедура, используемая в 1С, выглядит так: ЗаполнитьПоОстаткамНаСкладе в 1С
Главной причиной длительной обработки в этой процедуре является метод обработки запроса : Выборка = Запрос.Выполнить().Выбрать();
Я заменил метод обработки на Выборка = Запрос.Выполнить().Выгрузить() и теперь моя процедура выглядит так: ЗаполнитьПоОстаткамНаСкладеХранения
Хочу заметить, что эту процедуру я вынес в общий модуль. В первое время для подобных действий я использовал общие модули, созданные 1С, однако затем я создал свои общие модули, в которых размещаю создаваемые процедуры. Это значительно упростило работу при стандартных обновлениях разрабатываемых в 1С, но об этом в следующий раз.
В итоге своей процедуры что я получил.
1. Время обработки сократилось до нескольких (не более 10) секунд.
2. Процедура позволяет заполнять не только остатки, но и цены и места хранения.
3. Процедура позволяет учитывать остатки, соответственно, проводить инвентаризацию, и по складам и по местам хранения, если это кому-то нужно или интересно.

1С: Обновление программ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *