8.х Условие в запросе

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

  1. TopicStarter Overlay
    nikh848
    Offline

    nikh848

    Регистрация:
    17 окт 2008
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Есть таблица:
    Счет ........ Субконто1
    60.01 ........ ООО-1
    60.01 ........ ООО-2
    60.01 ........ ООО-3
    26 ............. -
    25 ............. -
    10.06 ......... Лопата
    ....

    Перебираю таблицу и для каждой строки пишу запрос

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

    Как установить в запрос условие: что если Субконто1 = "-", то не отбирать?
    То есть убрать строку
    Код:
    |И ХозрасчетныйОбороты.Субконто1 = &Субконто1
    
  2. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    1) Откуда берется исходная таблица?
    2) Какая задача стоит вообще?
  3. TopicStarter Overlay
    nikh848
    Offline

    nikh848

    Регистрация:
    17 окт 2008
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Исходная таблица берется из EXCEL, если подробнее то такая таблица:
    Счет_____Субконто1_________Субконто2___________Субконто3
    26_________подр1__________Мат. расходы _____________ -
    26_________подр2________________ - _________________ -
    20.01___Основн пр-во ______ Основн ном ___________ Склад1
    51 __________ - ________________ - ___________________ -
    ….
    Хочу для каждой строки получить ОборотДт и ОборотКт с условием: если в таблице указано субконто то отбирать по этому субконто.
  4. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Странная задача,

    но примерно так:
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |ХозрасчетныйОбороты.Счет.Код,
    |ХозрасчетныйОбороты.Субконто1,
    |ХозрасчетныйОбороты.СуммаОборотДт
    |ИЗ
    |	РегистрБухгалтерии.Хозрасчетный.Обороты(&НачПериода,&КонПериода,Период,,,,,) КАК ХозрасчетныйОбороты
    |ГДЕ
    |ХозрасчетныйОбороты.Счет.Код = &Счет
    |//Субконто1И ХозрасчетныйОбороты.Субконто1 = &Субконто1";
    Запрос.УстановитьПараметр("Счет", Счет);
    Запрос.УстановитьПараметр("Субконто1", Субконто1);
    Если Субконто1 <> "-" Тогда
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "//Субконто1", "");
    КонецЕсли;
    
  5. TopicStarter Overlay
    nikh848
    Offline

    nikh848

    Регистрация:
    17 окт 2008
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Спасибо!
  6. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    а там точно строка, а не ссылка?
  7. afinogen
    Offline

    afinogen Опытный в 1С

    Регистрация:
    28 фев 2011
    Сообщения:
    160
    Симпатии:
    0
    Баллы:
    26
    можно и так
    Код:
    Запрос.Текст = "ВЫБРАТЬ
    |ХозрасчетныйОбороты.Счет.Код,
    |ХозрасчетныйОбороты.Субконто1,
    |ХозрасчетныйОбороты.СуммаОборотДт
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачПериода,&КонПериода,Период,,,,,) КАК ХозрасчетныйОбороты
    |ГДЕ
    |ХозрасчетныйОбороты.Счет.Код = &Счет"+?(Суконто1="-", ""," И ХозрасчетныйОбороты.Субконто1 = &Субконто1");
    Запрос.УстановитьПараметр("Счет", Счет);
    Запрос.УстановитьПараметр("Субконто1", Субконто1);
    
    
    
    
    :angry:

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