8.х Документ список отбор по 2 реквизитам

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Гриша, 12 янв 2011.

  1. TopicStarter Overlay
    Гриша
    Offline

    Гриша Опытный в 1С

    Регистрация:
    4 май 2008
    Сообщения:
    286
    Симпатии:
    5
    Баллы:
    29
    возникла проблема

    нужна при открытии обработки в которой есть табличное поле с типом ДОКУМЕНТСПИСОК
    чтобы в этом табличном поле документов РеализацияТовУслуг был отбор сразу по 2 реквизитам
    причем условие ИЛИ
    чтобы либо реквизит документа Контрагент = Справочники.Контрагенты.(НужныйКонтрагент) либо
    чтобы реквизит документа КонтрагентОткат = Справочники.Контрагенты.(НужныйКонтрагент)


    как это сделать????
  2. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    А что должно определять то, по какому реквизиту производится отбор??? Т.е. должно же быть какое-то условие, при выполнении которого отбор производится по одному реквизиту, иначе по другому. Или как???

    По одному реквизиту отбор производится так:
    Код:
    ТабличноеПоле1.Отбор.Контрагент.ВидСравнения = ВидСравнения.Равно;
    ТабличноеПоле1.Отбор.Контрагент.Использование = Истина;
    ТабличноеПоле1.Отбор.Контрагент.Значение = Справочники.Контрагенты.НайтиПоКоду("000000010"); 
    
  3. TopicStarter Overlay
    Гриша
    Offline

    Гриша Опытный в 1С

    Регистрация:
    4 май 2008
    Сообщения:
    286
    Симпатии:
    5
    Баллы:
    29

    Это я знаю
    а мне нужно делать отбор сразу по 2 реквизитам причем условие должно быть ИЛИ
    или в документе контрагент - тот нужный
    или в документе контрагентОткат - тот нужный

    и чтобы в документСписок попадали документы где или контрагент нужный или контрагентОткат нужный
  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Тогда при выполнении условия ИЛИ у вас никак не получится делать отбор сразу по 2-м реквизитам!!!
  5. TopicStarter Overlay
    Гриша
    Offline

    Гриша Опытный в 1С

    Регистрация:
    4 май 2008
    Сообщения:
    286
    Симпатии:
    5
    Баллы:
    29
    Очень надо так сдеалть!!


    а точно никак??
  6. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Или я не понимаю или....

    Вот смотрите, вы при открытии формы говорите программе: "сделай мне отбор по контрагенту... или по контрагентуОткат". Вы хотите, чтобы программа сама выбрала, по какому реквизиту отбирать??? Так не получится.

    Т.е. как вариант, я могу предположить, что вам надо делать отбор по реквизиту Контрагент. Если таких строк не находится, тогда по реквизиту КонтрагентОткат. Так что ли?
  7. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Отбор по различным реквизитам в форме списка производится по принципу И. По другому никак. Или использовать тогда уж не ДокументСписок, а программно формировать и показывать ТЗ. Или сделать отчет (обработку), которая будет показывать нужные документы. Или создать критерий отбора (пример в любой типовой, например "Подчиненные документы").
  8. TopicStarter Overlay
    Гриша
    Offline

    Гриша Опытный в 1С

    Регистрация:
    4 май 2008
    Сообщения:
    286
    Симпатии:
    5
    Баллы:
    29
    допустим в одном документе заполнено поле Контрагент
    а в другом поле КонтрагентОткат

    нужно сделать такой отбор чтобы в документСписок попали 2 эти документа
  9. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    А если сделать 2 отбора? Т.е. отбираем где контрагент = НашКонтрагент и потом где КонтрагентОткат = НашКонтрагент. Не пробовал конечно, но как вариант. Хотя нет, он покажет где НашКонтрагент и там и там одновременно
  10. cska-fanat-kz
    Offline

    cska-fanat-kz

    Регистрация:
    8 янв 2011
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    Окромя запроса и выгрузки в таблицу значений - никак.
    А вот пример:

    Код:
    Запрос = Новый Запрос;
    
    Запрос.УстановитьПараметр("Поставщик",ТребПоставщик);
    Запрос.УстановитьПараметр("МестоХранения",ТребМестоХранения);
    
    Запрос.Текст = "ВЫБРАТЬ
    |    ПриходнаяНакладная.Ссылка,
    |    ПриходнаяНакладная.ПометкаУдаления,
    |    ПриходнаяНакладная.Номер,
    |    ПриходнаяНакладная.Дата,
    |    ПриходнаяНакладная.Проведен,
    |    ПриходнаяНакладная.Поставщик,
    |    ПриходнаяНакладная.МестоХранения
    |ИЗ
    |    Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
    |ГДЕ
    |    (ПриходнаяНакладная.Поставщик = &Поставщик
    |            ИЛИ ПриходнаяНакладная.МестоХранения = &МестоХранения)";
    
    ТабличноеПоле1 = Запрос.Выполнить().Выгрузить();
    ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
    

Поделиться этой страницей