Форма выбора по произвольному запросу в управляемых формах

16.02.21

Разработка - Запросы

Данная обработка предназначена для организации выбора объекта из набора данных по произвольному запросу в управляемых формах.

Скачать исходный код

Наименование Файл Версия Размер
Форма выбора по произвольному запросу в управляемых формах.:
.epf 10,53Kb
8
.epf 10,53Kb 8 Скачать

Данная обработка содержит форму "ФормаВыбораПоЗапросу",  которую в дальнейшем рекомендую перенести в Общие формы и использовать из конфигурации, и  форму с примером использования "Форма".  Из Формы ФормаВыбораПоЗапросу вызывается при выборе Договора, если необходимо сделать Выбор, или по кнопке "Список контрагентов", если достаточно отобразить форму с результатом Запроса.  ФормеВыбораПоЗапросу передается произвольный текст Запроса и необходимые ПараметрыЗапроса, указание на ТекущуюПозицию в полученом наборе данных и Заголовок формы.

         ПараметрыФормы = Новый Структура;
         ПараметрыФормы.Вставить("РежимВыбора", Истина);
         ПараметрыФормы.Вставить("ТекстЗапроса", ТекстЗапроса);
         ПараметрыФормы.Вставить("ПараметрыЗапроса", ПараметрыЗапроса);
         ПараметрыФормы.Вставить("ТекущаяПозиция", ТекущаяПозиция);
         ПараметрыФормы.Вставить("Заголовок", "Список договоров");

где

         ПараметрыЗапроса  - это структура, в которой ключ – имя параметра, а значение – это значение параметра. Например:

         ПараметрыЗапроса = Новый Структура;
         ПараметрыЗапроса.Вставить("Владелец", ТекущиеДанные.Контрагент);
         ПараметрыЗапроса.Вставить("Организация", Объект.Организация);

         ТекущаяПозиция – это структура, в которой ключ – имя поля, а значение – это значение поля. После открытия Формы выбора курсор будет установлен в строку, значение поля в которой будет совпадать с передаваемым.

Например:  

        ТекущаяПозиция = Новый Структура;
        ТекущаяПозиция.Вставить("Ссылка", ТекущиеДанные.ДоговорКонтрагента);

И наконец вызов Формы выбора из ВнешняяОбработки (или Конфигурации)

    

//ОткрытьФорму("ОбщаяФорма.ФормаВыбораПоЗапросу", ПараметрыФормы, ЭтаФорма,,,,Оп);
    ОткрытьФорму("ВнешняяОбработка.ВыборПоЗапросу.Форма.ФормаВыбораПоЗапросу", ПараметрыФормы, ЭтаФорма,,,,Оп);


 

Более наглядно можно увидеть из примера использования. Используйте данный пример как шаблон для разработки, указывая свой запрос и необходимые параметры.

//------ Пример использования Формы выбора по запросу  --------////

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

&НаКлиенте
Процедура ВыборДоговора(РезультатВыбора, ТекущиеДанные) Экспорт
	
	Если РезультатВыбора <> Неопределено Тогда
		ТекущиеДанные[СтолбецДоговор] = РезультатВыбора.Ссылка;
	КонецЕсли;
	
КонецПроцедуры

//-------------------------------------------------------------////
 

Обработка тестировалась в  1С:Предприятие 8.3 (8.3.16.1063).

Форма выбор запрос Таблица Значений

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    129495    700    390    

749

Как посмотреть итоговый запрос в отчете СКД

Запросы СКД Система компоновки данных Россия Бесплатно (free)

Часто при разработке отчетов в СКД возникает ситуация, когда не совсем понятно, почему отчет выводит не те данные, которые нужны, либо не выводит вовсе. Возникает потребность увидеть конечный запрос, который формирует СКД. Как это сделать, рассмотрим в этой статье.

15.05.2024    2461    implecs_team    4    

31

Пропорциональное распределение в запросе с использованием АвтоНомерЗаписи()

Запросы Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Часто поступают задачи по произвольному распределению общих сумм. После распределения иногда пропадают копейки. Суть решения добавить АвтоНомерЗаписи() в ВТ распределения, и далее используя функции МАКСИМУМ или МИНИМУМ можем положить разницу копеек в первую или последнюю строку знаменателя распределения.

11.04.2024    2604    andrey_sag    10    

32

Для чего используют конструкцию запроса "ГДЕ ЛОЖЬ" в СКД на примере конфигурации 1С:ERP

Запросы СКД Платформа 1С v8.3 Запросы Система компоновки данных 1С:ERP Управление предприятием 2 Бесплатно (free)

В типовых конфигурациях разработчики компании 1С иногда используют в отчетах, построенных на СКД, такую конструкцию, как "ГДЕ ЛОЖЬ". Такая конструкция говорит о том, что данные в запросе не будут получены совсем. Для чего же нужен тогда запрос?

13.02.2024    6292    KawaNoNeko    23    

26

Набор-объект для СКД по тексту или запросу

Запросы СКД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Есть список полей в виде текста, или запрос - закидываем в набор СКД.

1 стартмани

31.01.2024    2280    2    Yashazz    0    

31

Запрос 1С copilot

Инструментарий разработчика Запросы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

Пишем на человеческом языке, что нам надо, и получаем текст запроса на языке 1С. Используются большие языковые модели (LLM GPT) от OpenAI или Яндекс на выбор.

15.01.2024    7092    39    mkalimulin    32    

53

PrintWizard: поддержка представлений ЗУП в конструкторе

Инструментарий разработчика Запросы Платформа 1С v8.3 Бесплатно (free)

Одной из интересных задач, стоящих в процессе разработки, была поддержка механизма представлений в ЗУП. Но не просто возможность исполнения запросов с ними. Основная проблема была в том, чтобы с ними было удобно работать, а именно: создавать, модифицировать и отлаживать. Кратко о том, что в итоге получилось...

14.12.2023    2013    vandalsvq    7    

29

Консоль запросов УФ 8.3.2.24.12 (мод от Dr.Zombi)

Инструментарий разработчика Запросы Платформа 1С v8.3 Управляемые формы Запросы Россия Абонемент ($m)

Работа с запросом и СКД, Полная поддержка пакетных запросов, временных таблиц. Главное скорость отладки запроса и данных, а красота вторична.

1 стартмани

07.12.2023    3474    52    DrZombi    54    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. NeLenin 13 01.04.21 09:57 Сейчас в теме
Лет 7 уже такую использую. В моих поделках она эволюционировала, можно и выбор делать, и подбор.
blockcode; +1 Ответить
Оставьте свое сообщение