helpf.pro
Регистрация
 +3 
Распечатать

1С 8.2 УП : Как в запросе задать условие на параметр? Параметр может быть задан или нет, а запрос выполняется!

Код 1C v 8.х
 Запрос = Новый Запрос(" 
|ВЫБРАТЬ
| ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента,
| ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом,
| ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетовОстаток,
| ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Сделка
|ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(
| &Кон,
| ВЫБОР
| КОГДА &Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
| ТОГДА ИСТИНА
| ИНАЧЕ Организация = &Организация
| КОНЕЦ
| И ВЫБОР
| КОГДА &Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| ТОГДА ИСТИНА
| ИНАЧЕ Контрагент = &Контрагент
| КОНЕЦ
| И Учет = ЗНАЧЕНИЕ(Перечисление.ВидыУчета.Общий)) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки
|ГДЕ
| ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток > 0
|
|УПОРЯДОЧИТЬ ПО
| ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата");
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("Контрагент", ПолеВводаКонтрагент);

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

Пока Результат.Следующий() Цикл
Наименование = Результат.Наименование;
КонецЦикла;


Более грамотный вариант:
Код 1C v 8.х
 (Организация В ИЕРАРХИИ (&Организация) ИЛИ &Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка))   


еще пример:
Код 1C v 8.х
     Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ДоговорыКонтрагентов.Ссылка
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
| ВЫБОР
| КОГДА &Владелец ССЫЛКА Справочник.Контрагенты
| ТОГДА ДоговорыКонтрагентов.Владелец = &Владелец
| ИНАЧЕ ИСТИНА
| КОНЕЦ
| И ВЫБОР
| КОГДА &Владелец ССЫЛКА Справочник.Контрагенты
| ТОГДА ДоговорыКонтрагентов.ВидДоговора = &ВидДоговора
| ИНАЧЕ ИСТИНА
| КОНЕЦ
| И ДоговорыКонтрагентов.Наименование = &Наименование
| И ДоговорыКонтрагентов.Организация = &Организация";

Запрос.УстановитьПараметр("Владелец", Контрагент);
Запрос.УстановитьПараметр("Наименование", Наименование);
Запрос.УстановитьПараметр("ВидДоговора", ВидДоговора);
Запрос.УстановитьПараметр("Организация", Организация);

Результат = Запрос.Выполнить();
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 60744
 +3 
Распечатать
Возможно, вас также заинтересует
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 52
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
1C медленно работает по сети с базой на SQL Server 22
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П
1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.