Версия для печати темы (https://pro1c.org.ua/index.php?s=a3e82591b629a4fc64f0f1bef020db2c&showtopic=22619)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Явное указание параметра в запросе

Автор: rpervak 25.03.15, 16:32

Здравствуйте !
Помогите, пожалуйста с запросом.
Нужно явно указать в запросе параметр : &Организация
Так как с параметром &ВидВзаиморасчетов не получается.


Запрос = Новый Запрос;
    
    Запрос.Текст = "ВЫБРАТЬ
                   |    ВзаиморасчетыПоЗакупкам.Контрагент,
                   |    ВзаиморасчетыПоЗакупкам.Контрагент.Наименование КАК КонтрагентНаименование,
                   |    ВзаиморасчетыПоЗакупкам.СуммаВзаиморасчетовНачальныйОстаток КАК ДолгНачало2,
                   |    ВзаиморасчетыПоЗакупкам.СуммаВзаиморасчетовПриход КАК Оплата2,
               |        ВзаиморасчетыПоЗакупкам.ДоговорКонтрагента.Организация
                   |ИЗ
                   |    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачПериода, &КонПериода, , ДвиженияИГраницыПериода, ) КАК ВзаиморасчетыПоЗакупкам
                   |ГДЕ
                   |    ВзаиморасчетыПоЗакупкам.ДоговорКонтрагента.ВидВзаиморасчетов = &ВидВзаиморасчетов
               |И      ВзаиморасчетыПоЗакупкам.ДоговорКонтрагента.Организация = &Организация
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    КонтрагентНаименование";
                                   
    Запрос.УстановитьПараметр("НачПериода", НачПериода);
    Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода));
    Запрос.УстановитьПараметр("ВидВзаиморасчетов", Справочники.ВидыВзаиморасчетов.НайтиПоКоду("000000006"));
    Запрос.УстановитьПараметр("Организация", РегистрНакопления.ВзаиморасчетыПоЗакупкам.ДоговорКонтрагента.Организация.НайтиПоКоду("000000003"));
    Запрос.УстановитьПараметр("СписокКонтрагентов", СписокКонтрагентівНеВключати);
    ТЗ = Запрос.Выполнить().Выгрузить();

Автор: Vofka 25.03.15, 16:56

rpervak, что?

Автор: Petre 25.03.15, 17:04

???

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

Может все-таки:
Запрос.УстановитьПараметр("Организация", Справочники.Организации.НайтиПоКоду("000000003"));

Автор: rpervak 25.03.15, 17:04

Цитата(Vofka @ 25.03.15, 16:56) *
rpervak, что?


Не работает:

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

Автор: Vofka 25.03.15, 17:07

rpervak, выделяйте код правильно. И вам же выше написали одно, а вы потом цитируете совершенно другой код.

Автор: rpervak 25.03.15, 17:22

Цитата(Petre @ 25.03.15, 17:04) *
???
Запрос.УстановитьПараметр("Организация", РегистрНакопления.ВзаиморасчетыПоЗакупкам.ДоговорКонтрагента.Организация.НайтиПоКоду("000000003"));

Может все-таки:
Запрос.УстановитьПараметр("Организация", Справочники.Организации.НайтиПоКоду("000000003"));


Так тоже делал, но запрос не выбирает данные.
Организацию нужно указать именно ту, которая указана в каждом договоре (по коду или по наименованию - это уже не важно).

Автор: Vofka 25.03.15, 17:29

Расскажите простыми словами что вы хотите выбрать.

Автор: rpervak 25.03.15, 17:40

Мне нужно выбрать все обороты по договорам, в которых в поле "Организация" стоит конкретная организация.

Автор: Vofka 25.03.15, 17:44

Ну так вместо этого

РегистрНакопления.ВзаиморасчетыПоЗакупкам.ДоговорКонтрагента.Организация.НайтиПоКоду("000000003")


напишите что-то осмысленное, что-то вроде того, что выше Petre писал.

Автор: TipsyKID 26.03.15, 9:43

Если не находит, значит посмотрите тип реквизита РегистрНакопления.ВзаиморасчетыПоЗакупкам.ДоговорКонтрагента.Организация.
Возможно имеет место составного типа данных. И код типа

Справочники.Организация.НайтиПоКоду("000000003")
не правильный. а следует указать другой справочник вместо "Организация".

Автор: rpervak 26.03.15, 20:56

Спасибо за помощь ! Тема закрыта.
Решил следующим образом.
В запросе прописал:

ГДЕ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.Организация.Код = &Код


а параметр задал:

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


И тогда все получилось.


 ! 

Выделяйте код правильным тегом!
 

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua