1С 8.3 ВыбратьПоСсылкам(<Источник>, <Колонка>)
Данные > Примеры кода 1С > 1С 8.3 Запросы
Перейти в раздел примеры кода 1С 8.3:
Позволяет получать выборки по заданному набору ссылок. Метод ВыбратьПоСсылкам порционно считывает объекты (как и метод Выбрать). И не обеспечивает целостного считывания. Например, может так случиться (особенно в крупных БД), если материал в документе переносится из одного в другой, то получится, когда материал окажется в двух документах (в выборке), так как один считается до переноса данных, а другой после. То есть целостность данных обеспечивается только на уровне отдельных объектов, но не всей выборки в целом. Поэтому желательно устанавливать дополнительную блокировку данных с помощью транзакции.
Разработан для более быстрой пакетной обработки у менеджеров объектов:
- СправочникМенеджер.<Имя_справочника>
- ДокументМенеджер.<Имя_документа>
- ПланВидовХарактеристикМенеджер.<Имя_плана_видов_характеристик> и т.д.
ВыбратьПоСсылкам в запросе в 1С 8.3 (доступен с 8.3.26):
&НаСервере
Процедура ПолучениеЗапросомВыбратьПоСсылкам()
Запрос = Новый Запрос("ВЫБРАТЬ
| Материалы.Ссылка КАК Ссылка
|ИЗ
| Справочник.Материалы КАК Материалы";);
ТаблицаЗначений = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.Прямой);
Если ТаблицаЗначений.Количество() <> 0 Тогда // ТЗ заполнена
Записи = Справочники.Материалы.ВыбратьПоСсылкам(ТаблицаЗначений);
Пока Записи.Следующий() Цикл
// Обход результата запроса по каждой записи в полученной выборке
Если ПолучатьОбъекты Тогда
ЗаписиОбъект = Записи.ПолучитьОбъект();
//обработка объекта
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Процедура ПолучениеЗапросомВыбратьПоСсылкам()
Запрос = Новый Запрос("ВЫБРАТЬ
| Материалы.Ссылка КАК Ссылка
|ИЗ
| Справочник.Материалы КАК Материалы";);
ТаблицаЗначений = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.Прямой);
Если ТаблицаЗначений.Количество() <> 0 Тогда // ТЗ заполнена
Записи = Справочники.Материалы.ВыбратьПоСсылкам(ТаблицаЗначений);
Пока Записи.Следующий() Цикл
// Обход результата запроса по каждой записи в полученной выборке
Если ПолучатьОбъекты Тогда
ЗаписиОбъект = Записи.ПолучитьОбъект();
//обработка объекта
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник