7.7 Выборка документов

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

  1. TopicStarter Overlay
    pashko
    Offline

    pashko

    Регистрация:
    19 фев 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Здрасте всем! Сразу извинюсь за возможные ляпсусы в описании проблемы, прост мне задачу поставили, а разбираюсь ли я в 1С никто не спрашивал.

    Перейду к сути:
    Имеются документы вида "Жалоба", которые учитываются в журнале "Жалобы". Этот журнал для других документов не используется.
    Так вот скажем в документе имеется два реквезита "ДатаКонтроля" и "Контроль".

    Нужно сделать выборку всех документов этого вида, реквезит "Контроль" которых содержит значение "На контроле" (к слову значение в строке данного реквизита могут быть "На контроле" или "Снято с контроля").

    Далее в получившемся перечне нужно выполнить операцию сравнения

    При условии что ДатаКонтроля (К) > Текущей даты (Д):

    Если К-Д<=5 - строки документов в списке окрашиваются в красный цвет
    Если К-Д>5 строки с этими документами не окрашиваются
    При условии что К<Д - строки окрашиваются в красный.

    Простыми словами список документов вида Жалоба, стоящих "на контроле" должен отображать документы к рассмотрению которых нужно приступить как можно скорее и документы которые можно пока отложить подальше (собсвенно разделение на строки с разным цветовым выделением).

    Пробовал переделывать стандартные выборки в типовой конфигурации , но ничего не получается, что-то все время упускаю (литературу использовал ту, что шла в комплекте с 1С). Вроде как все написано Там ВыбратьПоЗначению, там даты сравнить, там при помощи секций решается вопрос с окраской строчек, но как только все это превращается из книжного текста в код перестает работать=)
    Помогите пожалуйста, а то насели на меня очень сильно и никак не отвязаться, и время поджимает.
  2. igkr
    Offline

    igkr

    Регистрация:
    13 авг 2006
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Код:
    
    //НачДата - за какие дни обрабатывать документы
    //КонДата
    
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    |Период с НачДата по КонДата;
    |ТекДок = Документ.Жалобы.ТекущийДокумент;
    |ДатаКонтроля = Документ.Жалобы.ДатаКонтроля;
    |тКонтроль = Документ.Жалобы.Контроль;
    |Группировка тКонтроль;
    |Группировка ДатаКонтроля;
    |Группировка ТекДок;
    |"//}}ЗАПРОС;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;
    
    тз_кон = СоздатьОбъект("ТаблицаЗначений");
    Запрос.Выгрузить(тз_кон,0,0);
    тз_кон.НоваяКолонка("КвоДней","Число",12,0); // 
    
    тз_кон.ВыбратьСтроки();
    Пока тз_кон.ПолучитьСтроку() = 1 Цикл        
    тз_кон.КвоДней = ТекущаяДата()-тз_кон.ДатаКонтроля;
    КонецЦикла;
    //тз_кон.КвоДней < 0 Тогда прострочено на сколько
    //тз_кон.КвоДней = 0 Сегодня
    //тз_кон.КвоДней > 0 тогда еще есть время
    
    // тут поиграться с сортировкой
    тз_кон.Сортировать("тКонтроль,КвоДней");
    
    //далее обход по тз и вывод 
    
    
    
    
    что типа того
  3. TopicStarter Overlay
    pashko
    Offline

    pashko

    Регистрация:
    19 фев 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Спасибо! Буду пытаться.

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