7.7 Условия

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

  1. TopicStarter Overlay
    igorekkrav
    Offline

    igorekkrav Опытный в 1С

    Регистрация:
    29 апр 2010
    Сообщения:
    223
    Симпатии:
    0
    Баллы:
    26
    Добрый день столкнулся с проблемкой. Не как не могу сделать условие . Есть значение полученое из запроса (ДатаСледующегоЗвонка) и переменная ТекДата . Делаю отчет следующего вида

    Код:
        Если ТекДата  >  Запрос.ДатаСледующегоЗвонка Тогда
    Таб.ВывестиСекцию("Прошлые");
    ИначеЕсли  ТекДата  <  ДатаСледующегоЗвонка Тогда
    Таб.ВывестиСекцию("Сегодня");
    
    
    
    
    
    С этим все хорошо.

    Теперь пытаюсь сделать
    Код:
    Если (ТекДата  >  Запрос.ДатаСледующегоЗвонка) <> TeкДата Тогда
    Таб.ВывестиСекцию("Пропушеные");
    
    
    
    
    
    
    Выдает ошибку о не правильности условие.
    Как можно сделать это условие или может переменную типа
    Код:
    Звонили = ТекДата  >  Запрос.ДатаСледующегоЗвонка;
    
    Если Звонили <> ТекДата Тогда
    Таб.ВывестиСекцию("Пропушеные");
    
    
    
    
    
    Что так же у меня выдает ошибки .
  2. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Так как вы пишите - естественно ошибку выдавать будет. Словами опишите, какое условие надо сделать. И что где (в какой переменной) при этом хранится.
  3. TopicStarter Overlay
    igorekkrav
    Offline

    igorekkrav Опытный в 1С

    Регистрация:
    29 апр 2010
    Сообщения:
    223
    Симпатии:
    0
    Баллы:
    26
    Есть 2 переменных
    a) Текущая Дата
    б) Дата следующего контакта

    Мне нужно сделать переменную
    прошедшие звонки = текущая дата < следующего контакта

    И потом это сравнить сравнить переменную
    пропущенные = прошедшие < текущая дата
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Может быть так?
    Код:
    ПрошедшиеЗвонки = ?(ТекущаяДата() <= СледующийКонтакт,1,0);
    Пропущенные = ?(Прошедшие <= ТекущаяДата(),1,0);
    
    
    
    
    Получили 2 переменные которые можно сравнить
  5. TopicStarter Overlay
    igorekkrav
    Offline

    igorekkrav Опытный в 1С

    Регистрация:
    29 апр 2010
    Сообщения:
    223
    Симпатии:
    0
    Баллы:
    26

    Пробую первое

    Код:
    ПрошедшиеЗвонки = ?(ТекущаяДата() <= СледующийКонтакт,1,0);
    Сообщить ( ""+ПрошедшиеЗвонки+"");
    
    
    Выводит 1 нички . Даты не выводит . СледующийКонтакт ( Это у меня Запрос.ДатаКонтакта )
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Выложите полностью обработку - ваших кусочков не достаточно для понимания. И должна выводить единицы т.к. вы просили сравнить 2 условия. ИЛИ НЕТ? ВЫРАЖАТЕ МЫСЛИ ЯСНЕЕ
  7. TopicStarter Overlay
    igorekkrav
    Offline

    igorekkrav Опытный в 1С

    Регистрация:
    29 апр 2010
    Сообщения:
    223
    Симпатии:
    0
    Баллы:
    26
    Код:
     Процедура Сформировать()    
    
    
    Перем Запрос, ТекстЗапроса, Таб;  
    ТекДата = ТекущаяДата();
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса="";
    ТекстЗапроса=ТекстЗапроса+"
    |ПЕРИОД С ВыбНачПериода По ВыбКонПериода;";
    ТекстЗапроса=ТекстЗапроса+"
    |Владелец = Справочник.ХКК.Владелец;   
    |ТекущийЭлемент = Справочник.ХКК.ТекущийЭлемент;
    |Менеджер = Справочник.ХКК.Владелец.Менеджер;
    |ДатаКонтакта = Справочник.ХКК.ДатаКонтакта;
    |ДатаКонтакта1 = Справочник.ХКК.ДатаКонтакта1; 
    // |Группировка ТекущийЭлемент без групп все ВошедшиеВЗапрос; 
    |Группировка ТекущийЭлемент упорядочить по ТекущийЭлемент.ДатаКонтакта без групп;
    |Условие(Менеджер в ВыбМенеджер); 
    |"//}}ЗАПРОС;        
    Если рд = 1 Тогда      
    ТекстЗапроса=ТекстЗапроса+"
    |Условие (ДатаКонтакта1 в ТекДата);
    |";
    КонецЕсли;  
    
    
    //    Если (ПустоеЗначение(ВыбНачПериода) = 1) или (ПустоеЗначение(ВыбКонПериода) = 1) Тогда
    //        Предупреждение("Неверно выбран период!");
    //        Возврат;
    Если ВыбНачПериода > ВыбКонПериода Тогда
    Предупреждение("Неверно выбран период!");
    Возврат;
    КонецЕсли;
    
    
    Если ПустоеЗначение(ВыбНачПериода) <> 1 Тогда 
    ТекстЗапроса=ТекстЗапроса+"
    |Условие((ДатаКонтакта>=ВыбНачПериода)И(ДатаКонтакта<=ВыбКонПериода));
    |";
    КонецЕсли;  
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;
    
    
    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");   
    Если (ПустоеЗначение(ВыбМенеджер) <> 1) и  (рд = 1) Тогда
    Таб.ИсходнаяТаблица("Сегодня");
    ИначеЕсли ПустоеЗначение(ВыбМенеджер) <> 1 Тогда 
    Таб.ИсходнаяТаблица("ОтборПоМенеджеру");    
    ИначеЕсли рд = 1 Тогда 
    Таб.ИсходнаяТаблица("СегодняМенеджеры");
    Иначе
    Таб.ИсходнаяТаблица("Сформировать");
    
    КонецЕсли;
    
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    
    Пока Запрос.Группировка(1) = 1 Цикл
    сегодня = Запрос.ДатаКонтакта1;   
    рабочая = Запрос.ДатаКонтакта1;
    
    
    
    Если ТекДата  >  Запрос.ДатаКонтакта1 Тогда
    Таб.ВывестиСекцию("Прошлые");
    ИначеЕсли  ТекДата  <  Запрос.ДатаКонтакта1 Тогда
    Таб.ВывестиСекцию("Сегодня");                       
    
    ИначеЕсли ТекДата  =  Запрос.ДатаКонтакта1 Тогда
    
    Таб.ВывестиСекцию("Рабочая");    
    
    КонецЕсли;
    
    КонецЦикла;   
    
    
    
    

    Можно как нибудь вот эту часть
    Код:
     Если ТекДата  >  Запрос.ДатаКонтакта1 Тогда
    
    
    
    
    
    сравнить вот так вот
    Код:
     ТекДата  >  Запрос.ДатаКонтакта1<> ТекДата
    
    
    и выдать в отельную секцию

    Таб.ВывестиСекцию("Незвонили");
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Я так понял что нужно выявить тех владельцев справочника которые вообще не звонили?
  9. TopicStarter Overlay
    igorekkrav
    Offline

    igorekkrav Опытный в 1С

    Регистрация:
    29 апр 2010
    Сообщения:
    223
    Симпатии:
    0
    Баллы:
    26
    Да именно так .
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    В данном случае выбираем подчиненный справочник и конструкция "все ВошедшиеВЗпрос" не поможет - нужно перебирать сам справочник с учетом уже выведенных
  11. TopicStarter Overlay
    igorekkrav
    Offline

    igorekkrav Опытный в 1С

    Регистрация:
    29 апр 2010
    Сообщения:
    223
    Симпатии:
    0
    Баллы:
    26
    Я так и думал что получится только запросом . Спасибо!

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