Как да отворя списък със списък с някакъв избор? Как да отворя списък със селекция? Отворете формата за избор със селекция 1s 8.2.

Код 1C v 8.x DirectoryList.Selection.Reset();
DirectoryList.Selection.status.ComparisonType=ComparisonType.Contains;
DirectoryList.Selection.Status.Value="Прието";
DirectoryList.Selection.Status.Set();

За 1C 8.2:
Има няколко начина за отваряне на формуляр със списък с предварително зададен избор. Нека ги разгледаме по ред:

1. Първият метод е, че когато отваряте формуляра, можете да зададете параметъра за формуляр за избор и да отворите формуляра за списък с този параметър. Параметърът за избор представлява структурата. Имената на елементите съответстват на имената на полетата, чрез които се извършва изборът, а стойностите съдържат стойностите за избор. Това е опция за разширение на формуляр, управляван от динамичен списък. Тоест съществува за формуляри, чийто основен атрибут е атрибут тип динамичен списък, например списъчни формуляри и формуляри за избор.

При отваряне на формуляра изборът ще бъде направен въз основа на посоченото поле.
Код 1C v 8.2 UP // Например, в следващия пример се отваря списък с фактури с селекция от полето Номер, равно на 333.
Стойност за избор = Нова структура ("Номер", "333");
SelectionParameters = Нова структура ("Selection", SelectionValue);

OpenForm("Документ. Разписка. Фактура. Формуляр за списък", Опции за избор);

// Например, следният пример отваря списък с фактури
// с избор от полето Изпълнител, равно на „OJSC Horns and Hooves“.
Стойност на избора = Нова структура („Контрагент“, „OJSC Рога и Копита“);
SelectionParameters = Нова структура ("Selection", SelectionValue);
OpenForm("Документ. Разписка. Фактура. Формуляр за списък", Опции за избор);

2. Можете да отворите списък без параметри:
Код 1C v 8.2 UE OpenForm("Документ. Разписка. Фактура. Формуляр за списък");

И след това, в манипулатора на събития на формуляра за списъка с фактури When CreatedOnServer, напишете код, който създава селекция в динамичния списък, който е основният атрибут на формуляра:
Код 1C v 8.2 UP & OnServer

Елемент за избор = List.Selection.Elements.Add(Type("DataComposition Selection Element"));
SelectionElement.LeftValue = NewDataCompositionField("Число");

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;
SelectionElement.RightValue = "000000001";
Край на процедурата

&На сървъра
Процедура при създаване на сървър (неуспех, стандартна обработка)
Елемент за избор = List.Selection.Elements.Add(Type
(„Елемент за избор на композиция на данни“));
SelectionElement.LeftValue = NewDataCompositionField("DocumentAmount");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = True;
SelectionElement.RightValue = 150000;
Край на процедурата

Предимствата на този метод са, че сравнителният изгледза избор можете да зададете не само Equal, както в първия случай, но и More, Less и т.н.

Но този метод има и много съществен недостатък: с този избор формулярът винаги ще се отваря. Откъдето и да я повикат. Следователно тази форма не трябва да се определя като основна. И ако все пак той е основният, тогава преди да инсталирате селекцията, е необходимо да предоставите някакъв вид анализ откъде се отваря този формуляр. Например анализиране на параметрите на формуляра.

3. И накрая, условието за избор може да бъде поставено в персонализирана заявка, която избира данни за динамичен списък. Например, трябва да отворим списък с фактури, които съдържат артикула, маркиран в списъка с артикули.

За да направите това, под формата на списък с артикули, създайте команда и съответния бутон Фактури за получаване.

Нека попълним манипулатора за изпълнение на тази команда, както следва:
Код 1C v 8.2 UP & OnClient
Процедура ReceiptsInvoices (команда)

ListForm = GetForm("Document.Invoice.ListForm");
ListForm.FilterByProduct = Elements.List.CurrentRow;
ListForm.Open();

Край на процедурата

В този манипулатор получаваме формуляра за списъка с фактури и предаваме връзката към текущия артикул в списъка с артикули към параметъра на формуляра FilterByProduct и отваряме формуляра с този параметър.

След това ще създадем формуляр за списъка с документи: Разписка Фактура и ще създадем атрибут на формуляра FilterBy Product, който ще използваме като параметър на формуляра при отварянето му. Сега нека отворим палитрата със свойства на основния атрибут на формата List. Задайте флага ArbitraryRequestи щракнете върху реда за настройки на списъка Отворете.

В полето Заявка въведете следния текст на заявката:
Код 1C v 8.2 UP SELECT
Документ Приходна фактура Номер,
Фактура за получаване на документа.Дата
ОТ
Document.ReceiptInvoice КАТО DocumentReceiptInvoice
КЪДЕТО
Разписка за документ Invoice.Products.Product = &Product

В заявката използваме параметъра Item, който ще получи връзка към текущия ред в списъка с артикули, съдържащ се в параметъра FilterBy Item invoice list list. За да направите това, в манипулатора на събитието на формуляра за списък OnOpen ще напишем код, за да зададем стойността на параметъра за заявка за продукт:
Код 1C v 8.2 UP
&На клиент
Процедура на отваряне (неуспех)

List.Parameters.SetParameterValue("Product", FilterByProduct);

Край на процедурата

Тук Списък.Опциие списък с параметри на искане за динамичен списък за атрибута List. Стойността на параметъра Product е зададена равна на стойността на параметъра на формуляра FilterByProduct.

В резултат на това, като щракнете върху бутона Фактури за получаване във формуляра за списък с артикули, ще получим списък само с онези фактури, които съдържат артикула, избран в момента в списъка с артикули.

Информацията е взета от сайта

Има няколко начина за отваряне на формуляр със списък с предварително зададен избор. Нека ги разгледаме:

  1. Първи начине, че когато отваряте формуляр, можете да зададете параметър на формуляра Избори отворете списъка с този параметър. Параметър Изборпредставлява структура. Имената на елементите съответстват на имената на полетата, чрез които се прави изборът, а стойностите съдържат стойностите
    селекция. Това е опция за разширение на формуляр, управляван от динамичен списък. Тоест съществува за формуляри, чийто основен атрибут е атрибутът тип Динамичен списък, като например списъчни формуляри и формуляри за избор.

При отваряне на формуляра изборът ще бъде направен въз основа на посоченото поле. Например в следващия пример се отваря списък с фактури с избор от полето Контрагент, равно на „OJSC Horns and Hooves“.

Стойност на избора = Нова структура („Контрагент“ , "АД Рога и Копита");
Опции за избор= Нова структура ("Selection", SelectionValue);
OpenForm („Документ. Разписка. Фактура. Формуляр за списък“, Опции за избор);

2. Можете да отворите списък без параметри:

OpenForm („Документ. Разписка. Фактура. Формуляр за списък“);

И след това в манипулатора на събития на формуляра за списък с фактури Когато е създаден на сървъра напишете код, който създава селекция в динамичен списък, който е основният атрибут на формата:

&На сървъра
Процедура Когато е създаден на сървъра(Отказ, Стандартна обработка)
Елемент за избор = списък. Избор. Елементи. Добавяне (тип
(„Елемент за избор на композиция на данни“));
Елемент за избор .LeftValue = Нов Поле за оформление на данни("Сума на документа");
Елемент за избор. Сравнителен изглед = Comparison ViewData Layout. Повече ▼ ;
Елемент за избор. използване = вярно;
Елемент за избор. RightValue = 150000;
Край на процедурата

Предимствата на този метод са, че ViewComparisonизборът може да бъде зададен не само Равно на, както в първия случай, и | Повече ▼, По-малкои така нататък.

Но този метод има и много съществен недостатък: с този избор формулярът винаги ще се отваря. Откъдето и да я повикат. Следователно тази форма не трябва да се определя като основна. И ако все пак той е основният, тогава преди да инсталирате селекцията, е необходимо да предоставите някакъв вид анализ откъде се отваря този формуляр. Например анализиране на параметрите на формуляра.

3. И накрая, условието за избор може да бъде поставено в персонализирана заявка, който избира данни за динамичен списък. Например, трябва да отворим списък с фактури, които съдържат артикула, маркиран в списъка с артикули.

За да направите това, под формата на списък с елементи създайте команда и съответния бутон Фактури за консумативи

Нека попълним манипулатора за изпълнение на тази команда, както следва:

&На клиент
Процедура Фактури за консумативи(Отбор)
ListForm = GetForm("Document.Invoice.ListForm");
ListForm. FilterByProduct = Артикули. списък . CurrentRow;
ListForm. Отваряне();
Край на процедурата

В този манипулатор получаваме формата на списъка с фактури и го предаваме на параметъра на формуляра Филтриране по продуктвръзка към текущия елемент в списъка с елементи и отваряне на формуляра с този параметър.
След това ще създадем формуляр за списък с документи Фактураи създайте атрибутите на формуляра Филтриране по продукт, който ще използваме като параметър на формуляра при отварянето му. Сега нека отворим палитрата със свойства на основните атрибути на формуляра списък. Да поставим знамето CustomRequestи в
линия Настройка на списъкада натиснем Отворете.

В полето ЗаявкаНека въведем следния текст на заявката:

ИЗБИРАМ

Документ Приходна фактура Номер,
Фактура за получаване на документа.Дата
ОТ
Document.ReceiptInvoice КАТО DocumentReceiptInvoice
КЪДЕТО
Разписка за документ Invoice.Products.Product = &Product

В заявката използваме параметъра Продукт, към който ще бъде изпратена връзка към текущия ред в списъка с артикули, съдържащ се в атрибута на формуляра за списък с фактури Филтриране по продукт. За да направите това, в манипулатора на събитието на формуляра за списък При отварянеНека напишем кода, за да зададем стойността на параметъра за заявка за продукт:

&На клиент
Процедура на отваряне (неуспех)
списък . Настроики . SetParameterValue(„Продукт“, FilterByProduct);
Край на процедурата

Тук Списък.Опции— това е списък с параметри на искане за динамичен списък за атрибута List. Стойност на параметъра Продуктсе задава равно на стойността на параметъра на формуляра Филтриране по продукт. В резултат на това с едно натискане на бутон Фактурипод формата на списък с артикули ще получим списък само с онези фактури, които съдържат избрания в момента артикул в списъка с артикули.

— това е списък с параметри на искане за динамичен списък за атрибута List.

Този код ви позволява да отворите списък с документи с определен избор; можете също да отворите списък с елементи на директория с желания избор

Код 1C v 8.2 UP Form = OpenForm("Документ. Фактура.Форма.СписъкФорма"); //Отворете формата
SelectionOwner =Form.List.Selection.Elements.Add(Type("DataCompositionSelectionElement")); //Добавяне на селекция
SelectionOwner.ComparisonView = DataCompositionComparisonView.Equals; //Как ще сравним
SelectOwner.Use = True; // Поставете отметка в квадратчето за използване на NewDataCompositionField("Номенклатура")
SelectionOwner.LeftValue = NewDataCompositionField("Акаунт"); //Какви подробности ще използваме, за да направим избора?
SelectionOwner.RightValue = Object.Account; // И самото значение на селекцията

За да отворете списък със списък с предварително зададен изборизползвайте следните методи:

Първи начине, че когато отворите формуляр, можете да зададете параметъра за формуляр за избор и да отворите формуляра за списък с този параметър.

Параметърът за избор представлява структурата. Имената на елементите съответстват на имената на полетата, чрез които се извършва изборът, а стойностите съдържат стойностите за избор. Това е опция за разширение на формуляр, управляван от динамичен списък. Тоест съществува за формуляри, чийто основен атрибут е атрибут от типа DynamicList, например списъчни форми и форми за избор.

Например в следващия пример се отваря списък с фактури с избор от полето Номер, равен на 333.

Код 1C v 8.2 Стойност за избор на UE = Нова структура ("Номер", "333");
SelectionParameters = Нова структура ("Selection", SelectionValue);
OpenForm("Документ. Разписка. Фактура. Формуляр за списък", Опции за избор);

Втори начин

Можете да отворите формуляр със списък без параметри:

Код 1C v 8.2 UE OpenForm("Документ. Разписка. Фактура. Формуляр за списък");

И след това, в манипулатора на събития на формуляра за списъка с фактури When CreatedOnServer, напишете код, който създава селекция в динамичния списък, който е основният атрибут на формуляра:

Код 1C v 8.2 UP & OnServer
Процедура при създаване на сървър (неуспех, стандартна обработка)
Елемент за избор = List.Selection.Elements.Add(Type("DataComposition Selection Element"));
SelectionElement.LeftValue = NewDataCompositionField("Число");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = True;
SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;
SelectionElement.RightValue = "000000001";
Край на процедурата

Предимствата на този метод са, че Типът сравнение за селекцията може да бъде зададен не само на Равно, както в първия случай, но и на Повече, По-малко и т.н.

Но този метод има и много съществен недостатък: с този избор формулярът винаги ще се отваря. Откъдето и да я повикат. Следователно тази форма не трябва да се определя като основна. И ако все пак е основният, тогава преди да инсталирате селекцията е необходимо да предоставите някакъв вид анализ откъде се отваря тази форма. Например анализиране на параметрите на формуляра.

Трети начин

И накрая, условието за избор може да бъде поставено в персонализирана заявка, която избира данни за динамичен списък.

Например, трябва да отворим списък с фактури, които съдържат артикула, маркиран в списъка с артикули.

За да направите това, под формата на списък с артикули, създайте команда и съответния бутон Фактури за получаване.

Нека попълним манипулатора за изпълнение на тази команда, както следва:

Код 1C v 8.2 UP & OnClient
Процедура ReceiptsInvoices (команда)
SelectionParameters = Нова структура ("FilterByProduct", Elements.List.CurrentRow);
OpenForm("Документ. Разписка. Фактура. Формуляр за списък", Опции за избор);
Край на процедурата

В този манипулатор отваряме формуляра за списъка с фактури, като предаваме връзка към текущия артикул в списъка с артикули към параметъра на формуляра FilterByProduct.

След това ще създадем формуляр за списъка с документи: Приходна фактура и ще създадем параметър на формуляра FilterBy Product, който ще използваме, за да отворим формуляр с необходимия избор.

Сега нека отворим палитрата със свойства на основния атрибут на формата List. Задайте флага Custom Query и в реда Настройки на списъка щракнете върху Отваряне.

В полето Заявка въведете следния текст на заявката:

Код 1C v 8.2 UP SELECT
Документ Приходна фактура Номер,
Фактура за получаване на документа.Дата
ОТ
Document.ReceiptInvoice КАТО DocumentReceiptInvoice
КЪДЕТО
Разписка за документ Invoice.Products.Product = &Product

В заявката използваме параметъра Item, който ще получи връзка към текущия ред в списъка с артикули, съдържащ се в параметъра FilterBy Item invoice list list.

За да направите това, в манипулатора на събития на формуляра за списък Когато CreatedOnServer ще напишем код, за да зададем стойността на параметъра на заявката за продукт:

Код 1C v 8.2 UP & OnClient
Процедура на отваряне (неуспех)
List.Parameters.SetParameterValue("Product", Parameters.FilterByProduct);
Край на процедурата

Тук List.Parameters е списък с параметри на заявка за динамичен списък за атрибута List. Стойността на параметъра Product е зададена равна на стойността на параметъра на формуляра FilterByProduct.

В резултат на това, като щракнете върху бутона Фактури за получаване във формуляра за списък с артикули, ще получим списък само с онези фактури, които съдържат артикула, избран в момента в списъка с артикули.

Как да отворя списък със списък с някакъв избор?

Има няколко начина за отваряне на формуляр със списък с предварително зададен избор. Нека ги разгледаме по ред:

1. Първият метод е, че когато отваряте формуляра, можете да зададете параметъра за формуляр за избор и да отворите формуляра за списък с този параметър. Параметърът за избор представлява структурата. Имената на елементите съответстват на имената на полетата, чрез които се извършва изборът, а стойностите съдържат стойностите за избор. Това е опция за разширение на формуляр, управляван от динамичен списък. Тоест съществува за формуляри, чийто основен атрибут е атрибутът тип Динамичен списък, като например списъчни формуляри и формуляри за избор.

При отваряне на формуляра изборът ще бъде направен въз основа на посоченото поле. Например в следващия пример се отваря списък с фактури с избор от полето Номер, равен на 333.

Стойност за избор = Нова структура ("Номер", "333");

SelectionParameters = Нова структура ("Selection", SelectionValue);

OpenForm("Документ. Разписка. Фактура. Формуляр за списък", Опции за избор);

2. Можете да отворите списък без параметри:

OpenForm("Document.Invoice.ListForm");

И след това в манипулатора на събития на формуляра за списък с фактури Когато е създаден на сървъранапишете код, който създава селекция в динамичен списък, който е основният атрибут на формата:

&На сървъра

Процедура при създаване на сървър (неуспех, стандартна обработка)

Елемент за избор = List.Selection.Elements.Add(Type("DataComposition Selection Element"));

SelectionElement.LeftValue = NewDataCompositionField("Число");

SelectionElement.ComparisonView = DataCompositionComparisonView.More;

SelectionElement.Use = True;

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;

SelectionElement.RightValue = "000000001";

Край на процедурата

Предимствата на този метод са, че Типът сравнение за селекцията може да бъде зададен не само Равно, както в първия случай, но и Повече, По-малко и т.н.

Но този метод има и много съществен недостатък: с този избор формулярът винаги ще се отваря. Откъдето и да я повикат. Следователно тази форма не трябва да се определя като основна. И ако все пак той е основният, тогава преди да инсталирате селекцията, е необходимо да предоставите някакъв вид анализ откъде се отваря този формуляр. Например анализиране на параметрите на формуляра.

3. И накрая, условието за избор може да бъде поставено в персонализирана заявка, която избира данни за динамичен списък. Например, трябва да отворим списък с фактури, които съдържат артикула, маркиран в списъка с артикули.

За да направите това, под формата на списък с елементи създайте команда и съответния бутон Приходни фактури.

Нека попълним манипулатора за изпълнение на тази команда, както следва:

&На клиент

Процедура ReceiptsInvoices (команда)

ListForm = GetForm("Document.Invoice.ListForm");

ListForm.FilterByProduct = Elements.List.CurrentRow;

ListForm.Open();

Край на процедурата

В този манипулатор получаваме формуляра за списъка с фактури и предаваме връзката към текущия артикул в списъка с артикули към параметъра на формуляра FilterByProduct и отваряме формуляра с този параметър.

След това ще създадем формуляр за списък с документи Фактура за покупкаи създайте атрибута на формуляра FilterByProduct, който ще използваме като параметър на формуляра при отварянето му. Сега нека отворим палитрата със свойства на основния атрибут на формата List. Да поставим знамето CustomRequestи в линията Настройка на списъкащракнете върху Отвори.

В полето Заявка въведете следния текст на заявката:

ИЗБИРАМ

Документ Приходна фактура Номер,

Фактура за получаване на документа.Дата

ОТ

Document.ReceiptInvoice КАТО DocumentReceiptInvoice

КЪДЕТО

Разписка за документ Invoice.Products.Product = &Product

В заявката използваме параметъра Item, който ще получи връзка към текущия ред в списъка с артикули, съдържащ се в параметъра FilterBy Item invoice list list. За да направите това, в манипулатора на събитието на формуляра за списък OnOpen ще напишем код, за да зададем стойността на параметъра за заявка за продукт:

&На клиент

Процедура на отваряне (неуспех)

List.Parameters.SetParameterValue("Product", FilterByProduct);

Край на процедурата

Тук Списък.Опциие списък с параметри на искане за динамичен списък за атрибута List. Стойността на параметъра Product е зададена равна на стойността на параметъра на формуляра FilterByProduct.

В резултат на това с едно натискане на бутон Приходни фактурипод формата на списък с артикули ще получим списък само с онези фактури, които съдържат избрания в момента артикул в списъка с артикули.

Демонстрационен пример за 3-тата опция се намира в директорията 1CITS/EXE/FAQ/OpenFormWithSelection.dt. Примерът е изпълнен на платформа версия 8.2.9.356.