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

Перемещение из табличной части в поле ввода

Автор DunaevskiS, 07 июл 2015, 14:31

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

DunaevskiS

Здравствуйте. В общем, такая проблема. Есть Документ - Заказ, Есть 2 Справочника - Контрагенты и Пользователи. В Справочнике Контрагент, есть табличная часть Менеджеры, в которую добавляются Пользователи. В документе, в печатной форме есть поле ввода, типа "СсылкаСправочник.Пользователи". Мне нужно, чтобы при нажатии кнопки выбора, я мог вырать пользователя из Табличной части Менеджеры, Контрагента.

pavl_vs

DunaevskiS, какая конфигурация, какие формы, какими средствами (пользовательскими, программными) хотите получить результат?

DunaevskiS

УПП, программными средствами. Не выложил код, где пытался сделать, к сожалению, уже не на работе. Как я понимаю, мне необходимо создать запрос, для вытаскивания данных из Табличной части, и помещение их в список, который будет открываться, при ВыбореПоля. Но вот с этим трудности и возникли.

pavl_vs

DunaevskiS, по-моему Вы усложняете, я имею ввиду запрос.

У Вас создан документ, на форме которого есть поле "Контрагент" с кнопкой выбора.
При нажатии этой кнопки обычно возникает окно выбора со списком контрагентов:
Справочник.Контрагенты ФормаСписка или ФормаВыбора, нужно смотреть, что есть,
а это достигается выбором источника данных в свойствах данного поля.

DunaevskiS

Цитата: pavl_vs от 07 июл 2015, 15:34
DunaevskiS, по-моему Вы усложняете, я имею ввиду запрос.

У Вас создан документ, на форме которого есть поле "Контрагент" с кнопкой выбора.
При нажатии этой кнопки обычно возникает окно выбора со списком контрагентов:
Справочник.Контрагенты ФормаСписка или ФормаВыбора, нужно смотреть, что есть,
а это достигается выбором источника данных в свойствах данного поля.
У меня не список контрагентов, мне нужен список пользователей, но только тех пользователей, которые присутствуют в табличной части "Менеджеры" Справочника контрагенты. В эту форму ввода, у меня по умолчанию забивается реквизит Справочника - Контрагенты, реквизит имеет тип СправочникСсылка.Пользователи, соответственно форма ввода, имеет такой же вид, но пользователь должен иметь право изменить менеджера, в этой форме поля, но выбирать не из всех пользователей, как это можно сделать по форме выбора, а только тех пользователей, которые присутствуют в табличной части, Менеджеры. Табличная часть "Менеджеры" Справочника "Контрагенты", заполняется пользователями при создании какого либо Контрагента. И соответственно, при выборе формы выбора, я могу выбрать форму, которая присутствует в справочнике "Пользователи"

cska-fanat-kz

обрабатывайте НачалоВыбора() у поля Менеджер
а. вызываете программно форму выбора справочника Пользователи
б. из ТЧ контрагента выгружаете колонку с менеджерами в массив или список значений не помню
в. к форме выбора добавляете отбор с условием "в списке" и подсовываете массив или СЗ
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

DunaevskiS

Цитата: cska-fanat-kz от 08 июл 2015, 08:33
обрабатывайте НачалоВыбора() у поля Менеджер
а. вызываете программно форму выбора справочника Пользователи
б. из ТЧ контрагента выгружаете колонку с менеджерами в массив или список значений не помню
в. к форме выбора добавляете отбор с условием "в списке" и подсовываете массив или СЗ

Процедура МенеджерНачалоВыбора(Элемент, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;
        //Запрос
Список = Новый СписокЗначений;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КонтрагентыМенеджерыПокупателя.МенеджерПокупателя
|ИЗ
| Справочник.Контрагенты.МенеджерыПокупателя КАК КонтрагентыМенеджерыПокупателя
|ГДЕ
| КонтрагентыМенеджерыПокупателя.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка", Контрагент);

РезультатЗапроса = Запрос.Выполнить();//.Выгрузить();

        //Отбор

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


Запрос работает нормально, и выводит то, что нужно, А вот отбор работать не хочет
{Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(2059)}: Поле объекта не обнаружено (Отбор)
   Форма2.Отбор.Ссылка.Значение=РезультатЗапроса;

Kironten

Цитата: DunaevskiS от 08 июл 2015, 09:50
Цитата: cska-fanat-kz от 08 июл 2015, 08:33
обрабатывайте НачалоВыбора() у поля Менеджер
а. вызываете программно форму выбора справочника Пользователи
б. из ТЧ контрагента выгружаете колонку с менеджерами в массив или список значений не помню
в. к форме выбора добавляете отбор с условием "в списке" и подсовываете массив или СЗ

Процедура МенеджерНачалоВыбора(Элемент, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;
        //Запрос
Список = Новый СписокЗначений;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КонтрагентыМенеджерыПокупателя.МенеджерПокупателя
|ИЗ
| Справочник.Контрагенты.МенеджерыПокупателя КАК КонтрагентыМенеджерыПокупателя
|ГДЕ
| КонтрагентыМенеджерыПокупателя.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка", Контрагент);

РезультатЗапроса = Запрос.Выполнить();//.Выгрузить();

        //Отбор

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


Запрос работает нормально, и выводит то, что нужно, А вот отбор работать не хочет
{Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(2059)}: Поле объекта не обнаружено (Отбор)
   Форма2.Отбор.Ссылка.Значение=РезультатЗапроса;

Не нужен Вам отбор.
Вы уже должны получить из запроса нужных менежеров.
Затем помещайте их в список значений.
И выбираете
РезультатВыбора = СЗ.ВыбратьЭлемент();
Элемент.Значение = РезультатВыбора.Значение;

Все.

cska-fanat-kz

Цитата: Kironten от 08 июл 2015, 11:48Не нужен Вам отбор.
Вы уже должны получить из запроса нужных менежеров.
Затем помещайте их в список значений.
И выбираете
Код: [Выделить]

РезультатВыбора = СЗ.ВыбратьЭлемент();
    Элемент.Значение = РезультатВыбора.Значение;

Все.

альтернатива. но ИМХО лучше пусть форму выбора настраивать учится - пригодится.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

DunaevskiS

Через список все прекрасно работает, пытаюсь научиться через форму выбора, хотя бы произвольную, делать, и чет пока тускло. Всем спасибо.

Теги:

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

Рейтинг@Mail.ru

Поиск