[РЕШЕНО] Запрос по организациям

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

  1. TopicStarter Overlay
    Вяченслав
    Offline

    Вяченслав

    Регистрация:
    12 мар 2014
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Всем привет! Запрос должен выводить 60 счет по организациям, если поле организация не заполнено
    то выводить по всем. Поле организация Тип Значения СписокЗначений
    Сам запрос
    Код:
    Запрос = Новый Запрос;
       
        СписокОрганизаций = ЭлементыФормы.Организация.Значение;   
    
        Запрос.Текст = "ВЫБРАТЬ
                       |    ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Контрагент,
                       |    ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК Договор,
                       |    ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма
                       |ИЗ
                       |    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПериода, &КонПериода, , СчетДт В ИЕРАРХИИ (&Счет), , (НЕ СчетКт В ИЕРАРХИИ (&Счет)), , СубконтоДт1 В ИЕРАРХИИ (&Контрагент)) КАК ХозрасчетныйОборотыДтКт
                       |ГДЕ
                       |    ВЫБОР
                       |            КОГДА &Организация = НЕОПРЕДЕЛЕНО
                       |                ТОГДА ИСТИНА
                       |            ИНАЧЕ ХозрасчетныйОборотыДтКт.Организация = &Организация
                       |        КОНЕЦ
                       |ИТОГИ
                       |    СУММА(Сумма)
                       |ПО
                       |    ОБЩИЕ,
                       |    Контрагент ИЕРАРХИЯ
                       |АВТОУПОРЯДОЧИВАНИЕ";
       
        Запрос.УстановитьПараметр("НачПериода", НачПериода);
        Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода));   
        Запрос.УстановитьПараметр("Организация", ?(СписокОрганизаций.Количество()=0, Организация, СписокОрганизаций));
        Запрос.УстановитьПараметр("Контрагент", Контрагент);
        Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.РасчетыСПоставщикамиИПодрядчиками);
        Запрос.УстановитьПараметр("СчетКт", ПланыСчетов.Хозрасчетный.РасчетыСПоставщикамиИПодрядчиками);
       
       
        ЗапросКонтрагент = Запрос.Выполнить().Выбрать();
       
       
       
        ТабДок = ЭлементыФормы.ПолеТабличногоДокумента1;
        ТабДок.Очистить();
       
        Макет = ПолучитьМакет("Макет60");
        ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
        //ОбластьШапка.Параметры.Текст1 = "Выручка на " + Формат(КонПериода, "ДФ=dd.MM.yy");
        ОбластьКонтрагент = Макет.ПолучитьОбласть("Контрагент");
        ОбластьДоговор = Макет.ПолучитьОбласть("Договор");
        ОбластьИтого = Макет.ПолучитьОбласть("СуммаИтого");
        ТабДок.Вывести(ОбластьШапка);
        //
        //
        Пока ЗапросКонтрагент.Следующий() Цикл
            если ЗапросКонтрагент.ТипЗаписи()=ТипЗаписиЗапроса.ОбщийИтог тогда
                ОбластьИтого.Параметры.Итого = ЗапросКонтрагент.Сумма;
               
            ИначеЕсли ЗапросКонтрагент.ТипЗаписи()=ТипЗаписиЗапроса.ИтогПоГруппировке тогда
                ОбластьКонтрагент.Параметры.Контрагент = ЗапросКонтрагент.Контрагент;
                ОбластьКонтрагент.Параметры.Итог = ЗапросКонтрагент.Сумма;
                ТабДок.Вывести(ОбластьКонтрагент);
            иначеЕсли ЗапросКонтрагент.ТипЗаписи()=ТипЗаписиЗапроса.ДетальнаяЗапись тогда
                ОбластьДоговор.Параметры.Заполнить(ЗапросКонтрагент);
                ТабДок.Вывести(ОбластьДоговор);
                //Иначе
                //    ОбластьПодвал.параметры.Заполнить(ВыборкаРаботников);
                //    ТабДок.Вывести(ОбластьПодвал);
            КонецЕсли;
        КонецЦикла;
        ТабДок.Вывести(ОбластьИтого);
    
    помогите выдается ошибка
    {Форма.Форма.Форма(46)}: Ошибка при вызове метода контекста (Выполнить)
    ЗапросКонтрагент = Запрос.Выполнить().Выбрать();
    по причине:

    по причине:
    {(11, 46)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
    неограниченной длины и поля несовместимых типов.
    ИНАЧЕ ХозрасчетныйОборотыДтКт.Организация <<?>>= &Организация
  2. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.979
    Симпатии:
    397
    Баллы:
    104
    Код:
    ИНАЧЕ ХозрасчетныйОборотыДтКт.Организация В (&Организация)
  3. TopicStarter Overlay
    Вяченслав
    Offline

    Вяченслав

    Регистрация:
    12 мар 2014
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    пробовал тогда выводит
    по причине:
    {(9, 23)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
    неограниченной длины и поля несовместимых типов.
    КОГДА &Организация <<?>>= НЕОПРЕДЕЛЕНО
  4. Thelearning
    Offline

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

    Регистрация:
    9 сен 2010
    Сообщения:
    701
    Симпатии:
    72
    Баллы:
    54
    Код:
    ВЫБОР
          КОГДА &ИспользоватьОтбор Тогда Организация В &СписокОрганизаций
    КОНЕЦ
    //////
    .......
    ИспользоватьОтбор = СписокОрганизаций <> Неопределено;
    Запрос.УстановитьПараметр("ИспользоватьОтбор", ИспользоватьОтбор);
  5. TopicStarter Overlay
    Вяченслав
    Offline

    Вяченслав

    Регистрация:
    12 мар 2014
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    при таком раскладе выдает
    Код:
    по причине:
    {(9, 50)}: Не задано значение параметра "СписокОрганизаций"
    КОГДА &ИспользоватьОтбор Тогда Организация В (<<?>>&СписокОрганизаций)
    
  6. Thelearning
    Offline

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

    Регистрация:
    9 сен 2010
    Сообщения:
    701
    Симпатии:
    72
    Баллы:
    54
    Ну я образно написал. Передайте параметр "СписокОрганизаций" с перечнем или присвойте ему "Неопределено"
    Код:
    Запрос.УстановитьПараметр("СписокОрганизаций", СписокОрганизаций)
  7. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.979
    Симпатии:
    397
    Баллы:
    104
    Прикалываешься чтоли.
    Код:
    Запрос.УстановитьПараметр("СписокОрганизаций",СписокОрганизаций);
  8. TopicStarter Overlay
    Вяченслав
    Offline

    Вяченслав

    Регистрация:
    12 мар 2014
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    сделал вот так не выводит когда список пустой
    Код:
    Запрос = Новый Запрос;
       
        СписокОрганизаций = ЭлементыФормы.Организация.Значение;   
    
        Запрос.Текст = "ВЫБРАТЬ
                       |    ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Контрагент,
                       |    ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК Договор,
                       |    ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма
                       |ИЗ
                       |    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПериода, &КонПериода, , СчетДт В ИЕРАРХИИ (&Счет), , (НЕ СчетКт В ИЕРАРХИИ (&Счет)), , СубконтоДт1 В ИЕРАРХИИ (&Контрагент)) КАК ХозрасчетныйОборотыДтКт
                       |ГДЕ
                       |    ВЫБОР
                       |            КОГДА &ИспользоватьОтбор Тогда Организация В (&Организация)
                       |        КОНЕЦ
                       |ИТОГИ
                       |    СУММА(Сумма)
                       |ПО
                       |    ОБЩИЕ,
                       |    Контрагент ИЕРАРХИЯ
                       |АВТОУПОРЯДОЧИВАНИЕ";
       
        Запрос.УстановитьПараметр("НачПериода", НачПериода);
        Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода));   
        Запрос.УстановитьПараметр("Организация", СписокОрганизаций);
        Запрос.УстановитьПараметр("Контрагент", Контрагент);
        Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.РасчетыСПоставщикамиИПодрядчиками);
        Запрос.УстановитьПараметр("СчетКт", ПланыСчетов.Хозрасчетный.РасчетыСПоставщикамиИПодрядчиками);
       
        ИспользоватьОтбор = Организация <> Неопределено;
    Запрос.УстановитьПараметр("ИспользоватьОтбор", ИспользоватьОтбор);
    
  9. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Надо допилить условие
    Код:
    | ГДЕ
    | ВЫБОР
    |            КОГДА &ИспользоватьОтбор 
    |                 Тогда Организация В (&Организация)
    | ИНАЧЕ
    |            ИСТИНА
    |        КОНЕЦ
  10. Thelearning
    Offline

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

    Регистрация:
    9 сен 2010
    Сообщения:
    701
    Симпатии:
    72
    Баллы:
    54
    Код:
    СписокОрганизаций = Новый СписокЗначений;
    СписокОрганизаций.Добавить(ЭлементыФормы.Организация.Значение);
  11. TopicStarter Overlay
    Вяченслав
    Offline

    Вяченслав

    Регистрация:
    12 мар 2014
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    туплю я что там дописать?
  12. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Запрос переписать... Точнее добавить условие...
    Код:
    Запрос.Текст = "ВЫБРАТЬ
                       |    ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Контрагент,
                       |    ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК Договор,
                       |    ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма
                       |ИЗ
                       |    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПериода, &КонПериода, , СчетДт В ИЕРАРХИИ (&Счет), , (НЕ СчетКт В ИЕРАРХИИ (&Счет)), , СубконтоДт1 В ИЕРАРХИИ (&Контрагент)) КАК ХозрасчетныйОборотыДтКт
                       | ГДЕ
                       | ВЫБОР
                       | КОГДА &ИспользоватьОтбор
                       | Тогда Организация В (&Организация)
                       | ИНАЧЕ
                       | ИСТИНА
                       | КОНЕЦ
                       |ИТОГИ
                       |    СУММА(Сумма)
                       |ПО
                       |    ОБЩИЕ,
                       |    Контрагент ИЕРАРХИЯ
                       |АВТОУПОРЯДОЧИВАНИЕ";
  13. TopicStarter Overlay
    Вяченслав
    Offline

    Вяченслав

    Регистрация:
    12 мар 2014
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    я так делал но результат 0 не выводит ничего если не заполнено поле Организация (((
  14. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Исправить присвоение значения переменной
    Код:
    ИспользоватьОтбор = Не СписокОрганизаций.Количество() = 0;
  15. TopicStarter Overlay
    Вяченслав
    Offline

    Вяченслав

    Регистрация:
    12 мар 2014
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    это тоже не помогает
  16. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.741
    Симпатии:
    509
    Баллы:
    204
    А фигурные скобки в запросе в условии не спасают ???
  17. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.979
    Симпатии:
    397
    Баллы:
    104
    :confused:o_O:confused:o_O:confused:o_O:confused:o_O:confused:o_O:confused:o_O:confused:o_O:confused:o_O
  18. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    1. Покажите что у вас в итоге получилось
    2. Попробуйте выполнить запрос в консоли запросов.
  19. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.741
    Симпатии:
    509
    Баллы:
    204
    Это что:) ?
  20. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.979
    Симпатии:
    397
    Баллы:
    104
    Ну типа автор немного плохо понимает что ему нужно сделать. На этом твоем сообщении может возникнуть перегрузка))))

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