|
Отбор через Структуру | ☑ | ||
|---|---|---|---|---|
|
0
xa1ter
12.05.11
✎
02:30
|
Доброго времени суток!
Возникла ситуация, когда необходило реализовать отбор при помощи структуры. Я в это не силен, т.к. все время решал такие вещи через запрос, хотелось бы у Вас попросить совета, как это реализовать правильно. Делается выборка по справочнику: ВыборкаШтрихКодов = Справочники.ШтрихКоды.Выбрать(,ЕдЕд,,"Код"); Где "ЕдЕд" ссылка на конкретную единицу измерения, владелец короче. Надо добавить отбор, чтобы в выборку не попадали элементы помеченные на удаление...пробовал делать так : Отбор = Новый Структура("ПометкаУдаления", Ложь); после чего этот отбор вставлял в 3ий параметр выборки, но все равно не робит, хотя я понимаю, что сделал не корректно. Запросом эту проблему решил за минуту: ВЫБРАТЬ ШтрихКоды.Ссылка, ШтрихКоды.Наименование ИЗ Справочник.ШтрихКоды КАК ШтрихКоды ГДЕ ШтрихКоды.Владелец = &Владелец И ШтрихКоды.ПометкаУдаления = ЛОЖЬ УПОРЯДОЧИТЬ ПО ШтрихКоды.Код |
|||
|
1
zyto
12.05.11
✎
04:34
|
А чем запрос не устраивает?
|
|||
|
2
Стальная Крыса
12.05.11
✎
04:51
|
(1) есть только 2 момента в пользу использования "Выбрать" вместо запроса:
1. код получается компактнее; 2. данные выбираются построчно при "Выборка.Следующий()". зы. ну а в целом дело вкуса, если только фильтрация идет по 1-му полю, а если нет - тогда однозначно запрос. |
|||
|
3
xa1ter
12.05.11
✎
05:02
|
Запросом не хочу, т.к. в этом модуле, да и в большинстве случаев ислользуется "Выбрать" и не "красиво" будет использовать там запрос, если возможно это решить через "Выбрать".
Так все таки возможно реализовать отбор через структуру не используя запрос, если да, то как? :) |
|||
|
4
zyto
12.05.11
✎
05:02
|
(2)Сомневаюсь что у конкретной единицы миллион штрихкодов...
поэтому только п. 1 |
|||
|
5
zyto
12.05.11
✎
05:05
|
<Отбор> (необязательный)
Тип: Структура. Задает поле и значение отбора открываемой выборки. Ключ структуры описывает имя поля, а значение структуры - значение отбора по этому полю. В качестве полей для отбора могут задаваться только поля "Код", "Наименование" и реквизиты справочника, для которых в конфигураторе признак индексирования установлен в значение "Индексировать" или в значение "Индексировать с доп. упорядоч.". Важно! Структура может содержать только один элемент. Если параметр не указан, то отбор не используется. |
|||
|
6
xa1ter
12.05.11
✎
05:38
|
т.е. только запросом?
|
|||
|
7
rinatru
12.05.11
✎
08:41
|
(4)
попадается товар один и тот же с разными штрихкодами, реальный пример - бренды зубных паст и т.п. в ТиС пришлось дописывать, чтобы на карточку товара можно было использовать несколько штрих-кодов, а в 8-ке сама 1С уже предусмотрела. (3) можно. например так: СтруктураПоиска = Новый Структура(); СтруктураПоиска.Вставить("Номенклатура",СтрокаТЧ.Номенклатура); СтруктураПоиска.Вставить("ХарактеристикаНоменклатуры", СтрокаТЧ.ХарактеристикаНоменклатуры); СтруктураПоиска.Вставить("СерияНоменклатуры", СтрокаТЧ.СерияНоменклатуры); МассивСтрок=Выгрузка.НайтиСтроки(СтруктураПоиска); |
|||
|
8
xa1ter
12.05.11
✎
09:07
|
Ну это все понятно :) Интересует вопрос, как в эту структуру вставить фильтр чтобы помеченные на удаление объекты не попадали в выборку.
|
|||
|
9
rinatru
12.05.11
✎
09:54
|
(8)
думаю, что надо сначала получить таблицу значений с необходимыми тебе данными, ну а потом уже делать отбор по ним |
|||
|
10
zyto
12.05.11
✎
10:00
|
(9)см. (3)
по религиозным соображениям нужен метод Выбрать() |
|||
|
11
chelentano
12.05.11
✎
10:09
|
(3) какую ту хню несёшь, красиво - это когда работает быстро и правильно
|
|||
|
12
rinatru
12.05.11
✎
10:11
|
(10)
у тебя отбор по нескольким параметрам по условиям... какое тут Выбрать() ??? |
|||
|
13
xa1ter
12.05.11
✎
10:38
|
Все понял, спасибо за ответы.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |