Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
23 Июл 2017, 19:38
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Проблема с запросом  (Прочитано 743 раз)

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

Оффлайн Пустовалов Артем

  • **
  • Сообщений: 97
  • РЕПУТАЦИЯ: 2
  • КПД: 2%
  • Регистрация: 2015-10-14
  • Сайт: 
  • Профессия: Ученик 1С
Добрый всем день! У меня возник такой вопрос. Делаю запрос где ставлю есть условие по складу, которое выбирается из поля ввода, ссылка на справочник. Как сделать такой отбор : если поле пустое тогда выводит все склады. И как сделать тоже самое если тип поля ввода не ссылка а строка??


Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Со складом - попробуйте составить условие проверки вхождения в список( по-моему, если список пустой то отбор не выполняется). По строке - только аналитически корректировать текст запроса.
А вообще, если это отчет, то пишите на СКД, а отборы выведите пользователю.

Оффлайн Пустовалов Артем

  • **
  • Сообщений: 97
  • РЕПУТАЦИЯ: 2
  • КПД: 2%
  • Регистрация: 2015-10-14
  • Сайт: 
  • Профессия: Ученик 1С
Со складом - попробуйте составить условие проверки вхождения в список( по-моему, если список пустой то отбор не выполняется). По строке - только аналитически корректировать текст запроса.
А вообще, если это отчет, то пишите на СКД, а отборы выведите пользователю.

Может я не правильно выразился, условие в запросе

Где регСведений.Склад = &Склад

как слелать чтобы если не вводили Склад тогда по всем складам вывел


Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Где регСведений.Склад в (&спСклад)
...
спСклад=Новый СписокЗначений;
спСклад.Добавить(Склад)
Запрос.УстановитьПараметр("спСклад",спСклад);

Оффлайн Пустовалов Артем

  • **
  • Сообщений: 97
  • РЕПУТАЦИЯ: 2
  • КПД: 2%
  • Регистрация: 2015-10-14
  • Сайт: 
  • Профессия: Ученик 1С
Где регСведений.Склад в (&спСклад)
...
спСклад=Новый СписокЗначений;
спСклад.Добавить(Склад)
Запрос.УстановитьПараметр("спСклад",спСклад);

Спасибо что окликнулся помогла такая конструкция запроса

ВЫБОР
    КОГДА "" = &СкладТОГДА ИСТИНА
    ИНАЧЕ ТоварыНаСкладахОстаткиИОбороты.Склад.Наименование = &Склад
КОНЕЦ

А ссылкой

ВЫБОР
КОГДА ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) = &Склад ТОГДА ИСТИНА
ИНАЧЕ ТоварыНаСкладахОстаткиИОбороты.Склад = &Склад
    КОНЕЦ

Оффлайн LexaK

  • *****
  • Сообщений: 1246
  • РЕПУТАЦИЯ: 344
  • КПД: 28%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
:D попробуйте такой вариант

Выбрать 
    ...
где
    регСведений.Склад = &Склад
или &ВсеСклады = Истина

...
Запрос.УстановитьПараметр("Склад", <ВашаПеременнаяСклад>);
Запрос.УстановитьПараметр("ВсеСклады", Не ЗначениеЗаполнено(<ВашаПеременнаяСклад>));


правда здесь могут быть приличные тормоза
продвинутые геймеры используют динамическую модификацию кода запроса (в отличие от лузеров от 1С которые собирают текст запроса сложением кусков текста)

описание способа
в запросе пишем следующее условие

Выбрать 
    ...
где
    0 = 0


Если ЗначениеЗаполнено(<ВашаПеременнаяСклад>) Тогда
    Запрос.УстановитьПараметр("Склад", <ВашаПеременнаяСклад>);
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "0 = 0", "регСведений.Склад = &Склад" );
КонецЕсли;

лкРезультат = Запрос.Выполнить().Выгрузить();


если склад не выбран, запрос отработает на ура по всем складам,
если же склад выбран, то срабатывает условие ниже, модифицируется код и отбор будет по одному складу

у этого метода куча вариантов использования,
можно динамически строить различные модификации базового запроса,
при этом базовый запрос можно открыть конструктором,
чего нельзя сделать если вы будете набирать запрос из кусочков, в различных условиях, как это часто встречается в конфигах от 1С.

Помогло? - Нажми СПАСИБО!!!
                       :)


Теги:
 

Проблема с выгрузкой НН в "Звит" Не найдено соответствие для схемы "J1201008"

Автор AldemaHРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 937
Последний ответ 06 Июл 2016, 09:19
от AldemaH
проблема с "ЗагрузкаДанныхИзТабличногоДокумента"

Автор bratmaratРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 4243
Последний ответ 08 Янв 2014, 14:30
от LordWizard
Проблема с развертыванием окон и сохранением окон

Автор SokresРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 1781
Последний ответ 09 Дек 2015, 14:09
от pavl_vs
Проблема с отчетом "Перемещение товаров"

Автор sailРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 3061
Последний ответ 14 Дек 2010, 20:27
от progmikon
1C 8.2 УПП проблема с отчетом "Задолженость по контрагентам"

Автор LeonidLeonidРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3306
Последний ответ 26 Сен 2011, 20:42
от Dethmontt

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
105 Сообщений
alex0402
93 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
65 Сообщений
Golickoff Golickoff
49 Сообщений
ilyay ilyay
49 Сообщений
AIFrame
47 Сообщений
ab30ru
38 Сообщений
wise wise
34 Сообщений
Амал
30 Сообщений
lansy
22 Сообщений

* Кто онлайн

  • Точка Гостей: 267
  • Точка Скрытых: 0
  • Точка Пользователей: 9
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal