helpf.pro
Регистрация

v8: Создать форму выбора

Ermak
01.04.2013 18:56Прочитано: 10537
Кто нибудь создавал Форму выбора, например

title

поделитесь примером
Yandex
Возможно, вас также заинтересует
Реклама на портале
hircon
03.04.2013 11:16Ответ № 1
В основной форме
Код 1C v 8.х
 	
ФормаВыбора = ПолучитьФорму("ФормаВыбора");
ФормаВыбора.РежимВыбора = Истина;
Строка = ФормаВыбора.ОткрытьМодально();

В форме выбора
Код 1C v 8.х
 
Функция ТабличноеПоле1Выбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
ЭтаФорма.ЗакрыватьПриВыборе = Истина;
ЭтаФорма.Закрыть(ВыбраннаяСтрока);
КонецФункции

Изменено 03.04.13 11:18:41
Ermak
03.04.2013 11:42Ответ № 2
Вы меня не так поняли, я имел ввиду сделать форму. Запускаем обработку и открывается Форму выбора (0), и там мы выбираем форму обработки которая нам нужна
Bell
03.04.2013 11:56Ответ № 3
Я у себя сделал так
Код 1C v 8.х
 Процедура СписокОтчетовНажатие(Элемент)

Отч = Метаданные.Отчеты;
СписокОтчетов = Новый СписокЗначений();

СписокОтчетов .Добавить(Отч.ВедомостьПоТМЦ, , Ложь);
СписокОтчетов.Добавить(Отч.Прайс, , Ложь);

Если СписокОтчетов.ОтметитьЭлементы("Укажите, какие отчеты открыть") Тогда
Для Каждого НазваниеОтчета из СписокОтчетов Цикл
Если НазваниеОтчета.Пометка Тогда
ФормаСписка = Отчеты[НазваниеОтчета.Значение.Имя].ПолучитьФорму();
ФормаСписка.Открыть();
КонецЕсли;
КонецЦикла;
КонецЕсли;

КонецПроцедуры
Ermak
03.04.2013 12:14Ответ № 4
(3) Bell, Спасибо. Через СписокЗначений() не надо, нужно именно через Форму
Bell
03.04.2013 12:30Ответ № 5
У тебя есть общая форма. Ты хочушь загрузить в ее свои отчеты так?
Ermak
03.04.2013 13:52Ответ № 6
да, чтобы когда запускаю обработку, открывалась общая форма со списком моих отчетов
Bell
03.04.2013 18:19Ответ № 7
1 Процедура при нажатии на кнопку

Код 1C v 8.х
 Форма = ПолучитьОбщуюФОрму("Имя твоей формы");
Форма.Открыть();


2.В Имя твоей формы в процедуре ПередОткрытием
// Это все отчеты конфы и загружаешь их в цикле в ТЧ, ТЗ. СЗ что у тебя там за таб.поле
// или создаешь структуру с отчетами какие тебе нужны, а затем в таб.поле
Код 1C v 8.х
 Для каждого Отч из Метаданные.Отчеты  Цикл
Сообщить (Отч);
КонецЦикла;

Изменено 03.04.13 18:19:56
Ermak
03.04.2013 18:32Ответ № 8
(7) Bell, При нажатии какой кнопки?
Мне нужны только те отчеты которые я создаю в этой же обработке где создана Общая форма
Bell
04.04.2013 17:26Ответ № 9
Не могу понять
1. ОБработка как то должна запускаться. (Можте ты хочкшь что бы при запуске программы запустилось окно твоей обработки, а потом ты хочешь выбрать отчет или обоработку какая тебе нужна?).Наииши последователно что должно происходить.
Ermak
04.04.2013 17:38Ответ № 10
Я включаю обработку, открывается общая форма, где список моих отчетов. Все мои отчеты находятся в тоже самой обработки. Я выбираю отчет и он открывается
DJ_Serega
04.04.2013 22:43Ответ № 11
(10) Ermak, отчеты в обработке? а как? *12
Ermak
05.04.2013 08:41Ответ № 12
Вот что я имел ввиду, это формы отчетов

рис. №1 title

Обратите внимание ФормаВыбораОтчета эта главная форма
----------------------------------
А вот когда запускаем обработку, открывается ФормаВыбораОтчета

рис. №2 title

И тут мы видел все отчеты которые находили в обработке (рис. №1)
DJ_Serega
05.04.2013 12:01Ответ № 13
(12) Ermak, получается нужно вывести списко форм обработки )
Объект должен быть объектом конфигурации.
Ниже пример для документа Реализации:
Код 1C v 8.х
 
СписокФорм = Метаданные.Документы.РеализацияТоваровУслуг.Формы;
Для каждого ТекФорма Из СписокФорм Цикл
Сообщить("Имя формы: " + ТекФорма.Имя + ". Синоним формы: " + ТекФорма.Синоним + ".");
КонецЦикла;
Ermak
05.04.2013 13:39Ответ № 14
Я не могу понять как мне сделать чтобы появились имена форм в Табличном поле
DJ_Serega
05.04.2013 13:54Ответ № 15
(14) Ermak, Ну вместо "сообщить" "ТабличноеПоле.Добавить". Если это реквизит формы тогда "ЭлементыФормы.ТабличноеПоле.Значение.Добавить", а в после заполнения "ЭлементыФормы.ТабличноеПоле.СоздатьКолонки".
Кажись так.

А я бы делал это СпискомЗначений. И открывал бы по событию "выбор".
Ermak
05.04.2013 15:39Ответ № 16
(15) DJ_Serega, А я бы делал это СпискомЗначений. И открывал бы по событию "выбор".
Покажите пример как это?
Ermak
05.04.2013 16:41Ответ № 17
Выдает ошибку
Код 1C v 8.х
 ЭлементыФормы.ТаблицаОтчетов.Значение.Добавить(ТекФорма.Имя);   
E_Migachev
05.04.2013 17:41Ответ № 18
(0) Ermak, посмотри это Универсальная форма для выбора пользователем значения из списка значений! Такое же можно сделать для Таблицы значений и для Дерева значений
Ermak
05.04.2013 19:08Ответ № 19
(18) E_Migachev, спасибо посмотрю
Ermak
09.04.2013 13:38Ответ № 20
Сделал так

Код 1C v 8.х
 ОбщаяФорма = ПолучитьОбщуюформу("ФормаРаботыСоСпискомЗначений"); //На форме должно быть добавлено Табличное Поле "ТабличноеПоле"

Таб = Новый ТаблицаЗначений;
Таб.Колонки.Добавить("ФормаРаботыСоСпискомЗначений",Новый ОписаниеТипов("Строка"));

Для каждого Форма из ОбработкаОбъект.Метаданные().Формы Цикл
Таб.Добавить().ИмяФормы = Форма.Имя;
КонецЦикла;

ОбщаяФорма.ТабличноеПоле = Таб;
ОбщаяФорма.ЭлементыФормы.ТабличноеПоле.СоздатьКолонки();
ОбщаяФорма.Открыть();


Выдает ошибку

Ошибка при вызове метода контекста (ПолучитьОбщуюФорму): Недопустимое значение параметра (параметр номер '1')
ОбщаяФорма = ПолучитьОбщуюформу("ФормаРаботыСоСпискомЗначений"); //На форме должно быть добавлено Табличное Поле "ТабличноеПоле"
по причине:
Недопустимое значение параметра (параметр номер '1')

Подскажите как надо.
Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.