Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 14:11

Выделение одинаковых полей

Автор Artjomrgv, 15 мая 2016, 21:13

0 Пользователей и 1 гость просматривают эту тему.

Artjomrgv

Здравствуйте, подскажите пожалуйста. Есть документ "Реестр на оплату"(Картинка), данные колонок заполняются на основании запроса,(Текст запроса ниже). Вот в чем вопрос, как сделать чтобы строчка которая содержит значение заявки, той что уже встречалась в предыдущих документах, "Реестр на оплату"(документ делается каждый день) выделять другим цветом?

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

&НаКлиенте
Процедура Заполнить(Команда)
   ЗаполнитьНаСервере();
КонецПроцедуры

дфтын

Условное оформление

Отправлено с моего MTC SMART Sprint 4G через Tapatalk


Artjomrgv

Цитата: дфтын от 15 мая 2016, 21:17
Условное оформление

Отправлено с моего MTC SMART Sprint 4G через Tapatalk

А как найти именно то значение колонки "заявка" которое уже было в предыдущих документах, и выделить именно его?

дфтын

Условия же

Отправлено с моего MTC SMART Sprint 4G через Tapatalk


Artjomrgv

Цитата: дфтын от 15 мая 2016, 21:47
Условия же

Отправлено с моего MTC SMART Sprint 4G через Tapatalk

То что выделить условным оформление это понятно. Но мне по сути надо сравнить данные колонки "заявка" в текущем документе, с данными колонки в предыдущих документах, это условным оформлением не сделаешь.

LexaK

добавьте в ваш запрос соединение с документами реестров

&НаСервере
Процедура ЗаполнитьНаСервере()
   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   РеестрПлатежейОбороты.Организация КАК Организация,
      |   РеестрПлатежейОбороты.Контрагент КАК Контрагент,
      |   РеестрПлатежейОбороты.Договор,
      |   РеестрПлатежейОбороты.Содержание,
      |   РеестрПлатежейОбороты.Ответственный,
      |   РеестрПлатежейОбороты.Оплачено,
      |   РеестрПлатежейОбороты.Дата,
      |   РеестрПлатежейОбороты.ПериодОплаты,
      |   РеестрПлатежейОбороты.ФП КАК Руководитель,
      |   РеестрПлатежейОбороты.Регистратор КАК Заявка,
      |   РеестрПлатежейОбороты.ОстатокЗадолженностиОборот как Сумма,
      |   Минимум(Док.Ссылка) Есть Не Null как ЕстьРеестр
      |ИЗ
      |   РегистрНакопления.РеестрПлатежей.Обороты(, , Регистратор, ) КАК РеестрПлатежейОбороты
      |
      |левое соединение Документ.РеестрПлатежей.Реестр как Док //анализируем документы РеестрПлатежей (или как там он называется точно?)
      |   по РеестрПлатежейОбороты.Регистратор = Док.Заявка
      |   и  Док.Проведен
      |ГДЕ
      |   РеестрПлатежейОбороты.Оплачено = &Оплатить
      |
      |сгруппировать по
      |   РеестрПлатежейОбороты.Организация,
      |   РеестрПлатежейОбороты.Контрагент,
      |   РеестрПлатежейОбороты.Договор,
      |   РеестрПлатежейОбороты.Содержание,
      |   РеестрПлатежейОбороты.Ответственный,
      |   РеестрПлатежейОбороты.Оплачено,
      |   РеестрПлатежейОбороты.Дата,
      |   РеестрПлатежейОбороты.ПериодОплаты,
      |   РеестрПлатежейОбороты.ФП,
      |   РеестрПлатежейОбороты.Регистратор,
      |   РеестрПлатежейОбороты.ОстатокЗадолженностиОборот
      |
      |
      |
      |УПОРЯДОЧИТЬ ПО
      |   Организация,
      |   Контрагент";
     


В результате, поле: ЕстьРеестр (булево) содержит признак включения заявки хотя бы в один, проведенный  реестр, по нему вы легко сможете раскрасить строчки в вашей форме.
можно еще построить вариант запроса через временные таблицы, ну это уже зависит от вашей фантазии.
если помогло нажмите: Спасибо!

Artjomrgv

Всем спасибо, получилось сделать, маленько по другому но получилось. Может кому-нибудь пригодится.

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

Теги: 1С 8.3 Упр Прил. 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск