Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Количество элементов списка в ФормеВыбора  (Прочитано 5231 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Marta_Li
Постоялец

by
Offline Offline

« : 10-04-2012 06:51 » 


Хочется узнать количество элементов справочника, отобранных перед открытием ФормыВыбора:

Код:
мЭлемент = ЭлементыФормы.РеестрДолжников.Колонки.ДоговорКонтрагента.ЭлементУправления;
ФормаВыбора = Справочники.ДоговорыКонтрагентов.ПолучитьФормуВыбора(,мЭлемент.Значение);       
//Отбор по Контрагенту (Владельцу):
ФормаВыбора.ПараметрОтборПоВладельцу = Элемент.Значение;
ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Владелец.Доступность = Ложь;
//Отбор по ВидуДоговора:
ФормаВыбора.СправочникСписок.Отбор.ВидДоговора.ВидСравнения                        = ВидСравнения.Равно;
ФормаВыбора.СправочникСписок.Отбор.ВидДоговора.Значение                            = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;
ФормаВыбора.СправочникСписок.Отбор.ВидДоговора.Использование                       = Истина;
ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.ВидДоговора.Доступность = Ложь;
//Отбор по Организации:
ФормаВыбора.СправочникСписок.Отбор.Организация.Значение                            = Организация;
ФормаВыбора.СправочникСписок.Отбор.Организация.Использование                       = Истина;
ФормаВыбора.СправочникСписок.Отбор.Организация.ВидСравнения                        = ВидСравнения.Равно;
ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Организация.Доступность = Ложь;

ТекСтрока.ДоговорКонтрагента = ФормаВыбора.ОткрытьМодально();

Вот перед открытием формы и надо узнать, сколько предлагается для выбора, т.к. если 1, то просто присваивать значение и не нужно открывать форму.
Может, кто подскажет? Спасибо.
Записан
Dest
Опытный

ru
Offline Offline

« Ответ #1 : 10-04-2012 10:41 » new

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

Запр.УстановитьПараметр("Организация", Организация);
Запр.УстановитьПараметр("ВидДоговора", ВидДоговора);
Запр.УстановитьПараметр("Владелец", Владелец);

ВыборкаКоличесво = Запр.Выполнить().Выбрать();

Пока ВыборкаКоличесво.Следующий() Цикл
Количество = ВыборкаКоличесво.КоличествоЗаписей;
КонецЦикла;

Если Количество = 1 Тогда

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

Выборка = Запр.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ТекСтрока.ДоговорКонтрагента = Выборка.Договор;
КонецЦикла;
Иначе
//Окрываем форму выбора

КонецЕсли;
« Последнее редактирование: 11-04-2012 00:01 от Dest » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines