Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 апр 2024, 02:13

Запрос

Автор 1cka, 30 дек 2014, 16:46

0 Пользователей и 1 гость просматривают эту тему.

1cka

Запрос.Текст =  "ВЫБРАТЬ
//*** из справочника Номенклатур
|СпрНоменклатур.Ссылка КАК Номенклатура
    |ИЗ
|Справочник.Номенклатура КАК СпрНоменклатур
| ГДЕ СпрНоменклатур.ПометкаУдаления = ЛОЖЬ
|   И СпрНоменклатур.ВидНоменклатуры = &КонечнаяПродукция
|   И НЕ СпрНоменклатур.ЭтоГруппа

//*** исключаем номенклатуры для которых заведен ШтрихКод
| И НЕ (СпрНоменклатур.Ссылка В

|( ВЫБРАТЬ РегШтрихКоды.Владелец
|ИЗ
|РегистрСведений.Штрихкоды КАК РегШтрихКоды
//|ГДЕ
//|
|))
    |";
// получаем список номенклатур для которых нет штрихкодов

А как допилить условие запроса, чтобы выводились номенклатуры для которых нет штрихкода, значение которого начинается на "4"? т.е для одной номенклатуры может быть несколько штрихкодов.
Тип ШтрихКода - Характеристика.ТипыШтрихкодов

LexaK

1. сделайте в вашем запросе выборку во временную таблицу, куда поместите номенклатуру у которой есть хотя бы один штрих код начинающийся с "4",
2. потом в результирующем запросе левым соединением соедините данные с этой временной таблицей по полю Номенклатура
3. в условии Где, отфильтруйте ту номенклатуру у которой есть штрих код с "4", вроде все просто.
если помогло нажмите: Спасибо!

1cka

Цитата: LexaK от 30 дек 2014, 16:55
1. сделайте в вашем запросе выборку во временную таблицу, куда поместите номенклатуру у которой есть хотя бы один штрих код начинающийся с "4",
2. потом в результирующем запросе левым соединением соедините данные с этой временной таблицей по полю Номенклатура
3. в условии Где, отфильтруйте ту номенклатуру у которой есть штрих код с "4", вроде все просто.
п1. и п.2 честно говоря ничего не поняла((( попробую еще завтра в свежем уме почитать)))

п.3 - а как вывести все номенклатуры шк которых начинаются с 4?

LexaK

простой запросик, выведет вам только номенклатуру, у которой штрих код начинается с "4"



ВЫБРАТЬ различные
    Рег.Владелец
ИЗ
    РегистрСведений.Штрихкоды КАК Рег
Где
    Рег.штрихкод подобно "4%"
и   Рег.Владелец Ссылка Справочник.Номенклатура


если помогло нажмите: Спасибо!

1cka

Цитата: LexaK от 30 дек 2014, 18:01
простой запросик, выведет вам только номенклатуру, у которой штрих код начинается с "4"



ВЫБРАТЬ различные
    Рег.Владелец
ИЗ
    РегистрСведений.Штрихкоды КАК Рег
Где
    Рег.штрихкод подобно "4%"
и   Рег.Владелец Ссылка Справочник.Номенклатура



так выдает ошибку, получилось через параметр

////
ГДЕ РегШтрихКоды.Штрихкод ПОДОБНО &Парам
///
Запрос.УстановитьПараметр("Парам","4" + "%");


спасибо! с наступающим!

LexaK

ошибки ни какой нет!
тот код, который я вам прислал, отлично работает в консоли отчетов, один в один скопируйте его туда и нажмите кнопку выполнить!

а вы этот запрос вставили в код модуля (отчета,обработки) а здесь есть небольшая особенность
на ряду со знаком перенос строки
| - вертикальная черта,
необходимо в теле запроса кавычки(если они есть) заменять на двойные, в этом случае запрос выглядит так


лкЗапрос.Текст = "
    |ВЫБРАТЬ различные
    |    Рег.Владелец
    |ИЗ
    |    РегистрСведений.Штрихкоды КАК Рег
    |Где
    |    Рег.штрихкод подобно ""4%""
    |и   Рег.Владелец Ссылка Справочник.Номенклатура
    |";

    лкЗапрос.Выполнить().Выгрузить().ВыбратьСтроку();  //это для визуализации



установка параметров, как вы решили в вашем примере - не нужна!!!


еще один вопрос, просто понять не могу для чего "4" + "%" ?
по параметрам вы написали такой код

Запрос.УстановитьПараметр("Парам","4" + "%");


а почему не так?


Запрос.УстановитьПараметр("Парам","4%");

если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск