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

Подобие множественного выбора

Автор Sinsinmin, 11 фев 2011, 13:36

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

chuevsf

Форма выбора?
Давайте соберитесь с мыслями и опишите все по пунктам. А то моей телепатии явно уже не хватает.
Просто если форму открыть модально, то ничего больше открыть уже нельзя, пока не закроете форму.

Sinsinmin

УПП. Документ СдельныйНаряд. Создаём документ. Вкладка Выполненные работы. Нажимаем добавить новую строку. Выбираем техническуюОперацию и автоматически заполняются некоторые поля строки. Но постоянно создавать новую строку и опять выбирать технологическую операцию не удобно. Нужно автоматизировать. Нажать на кнопку, появляется форма выбора технологических операций. Остаётся только тыркать двойным шелчком мышки на них а строки и значения будут добавляться сами. Это задача.

Теперь что имею я как цели.
Присвоить выбраное значение из формы в переменную. Добавить новую строку. Передать выбранное значение формывыбора в процедуру для подсчёта и заполнения полей строки. Заставить форму всегда быть перед глазами пользователя чтобы он делал выбор техоперации, пока он не закончит работу.

Что я сделал.
Всё кроме последнего.
Значение = ФормаВыбора. ОткрытьМодально();
ТабДок.ДобавитьНовуюСтроку();
НужнаяПроцедура(Значение);

Теперь это в цикл до завершения выбора операций пользователем.

Sinsinmin

Предлагаю оставить до понедельника) а там может и сам разберусь)

cska-fanat-kz

Цитата: Sinsinmin от 11 фев 2011, 15:34
Делается выбор в справочнике и значение выбора передаётся в документ для обработки. Создаётся новая строка в табличной части документа и туда заносятся расчёты исходя из выбранного значения. Нужно сделать так чтобы после каждого выбора, создавалась новая строка в табличной части документа. При этом форма не закрывалась, а оставалась открытой для выбора значения. Задача стоит сделать это с помощью внешней подключаемой обработки для заполнения табличных частей, но пока что я делаю по нажатию кнопки.

Человек описывает наистандартнейший механизм подбора!
1. Жмешь кнопку
2. Открывается форма выбора из справочника или самодельная обработка
(причем модально или нет - не критично)
3. Щелкаешь 2 раза по нужному элементу
4. В главной форме срабатывает событие ОбработкаВыбора
5. Происходит добавление новой строки
6. см. п.3

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

cska-fanat-kz

Не хотел приводить код, описывающий подбор...

На событии нажатия на кнопку Подбор вешаем следующий код:
ФормаПодбора = Справочники.<<Имя справочника>>.ПолучитьФормуВыбора(,ЭтаФорма);
ФормаПодбора.ЗакрыватьПриВыборе = Ложь; //единственная строчка благодаря которой форма выбора не закроется пока юзер не закроет!
ФормаПодбора.Открыть(); //или ФормаПодбора.ОткрытьМодально();

Далее у Формы обрабатываем событие ОбработкаВыбора //на досуге поразмышляйте почему именно у формы
СтандартнаяОбработка = Ложь;
НоваяСтрока = <<ТабличнаяЧасть>>.Добавить();
НоваяСтрока.<<Реквизит>> = ВыбранноеЗначение; //в ВыбранномЗначении хранится то что выбрали в форме подбора
                                                                        //тип значения - произвольный

форма подбора:
1. Если это форма выбора справочника, то выбор отрабатывается автоматом самой системой
2. Если это самодельная обработка, то выбор осуществляется методом ОповеститьОВыборе(ЗначениеВыбора).
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Sinsinmin

Всё что вы описали я делал. Но выдало ошибку на ОповеститьОВыборе(ЗначениеВыбора). ЗначениеВыбора переменная не найдена, а если присваивал ей параметр справчник.пустаяссылка, то он так и оставался пустой ссылкой. Пока что форма открывается модально, но возникает проблема с присвоением значения в переменную, так как с множественным выбором вот такая вот конструкция "Значение = ФормаВыбора.ОткрытьМодально();" не работает. Без множественного выбора не работает оповестить о выборе. Вы уж извините, просто в УПП это моя первая задача, до этого работал в другой самописной конфигурации.

cska-fanat-kz

Цитата: Sinsinmin от 14 фев 2011, 08:53
Всё что вы описали я делал. Но выдало ошибку на ОповеститьОВыборе(ЗначениеВыбора). ЗначениеВыбора переменная не найдена, а если присваивал ей параметр справчник.пустаяссылка, то он так и оставался пустой ссылкой. Пока что форма открывается модально, но возникает проблема с присвоением значения в переменную, так как с множественным выбором вот такая вот конструкция "Значение = ФормаВыбора.ОткрытьМодально();" не работает. Без множественного выбора не работает оповестить о выборе. Вы уж извините, просто в УПП это моя первая задача, до этого работал в другой самописной конфигурации.

ОповеститьОВыборе(ЗначениеВыбора)
ЗначениеВыбора - переменная, которой надо предварительно присвоить значение выбора - либо определенный элемент справочника, либо список элементов.

ЗначениеВыбора = ЭлементыФормы.СправочникСписок.ТекущаяСтрока;
ОповеститьОВыборе(ЗначениеВыбора);

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

И через "Значение = ФормаВыбора.ОткрытьМодально();" должно работать...

Просто в этом случае ЗначениеВыбора помещается в Закрыть()

Закрыть(ЗначениеВыбора);

P.S. УПП тут не при чем, такие задачи в любой конфигурации возникают.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Sinsinmin

Написал по нажатию кнопки
ФормаВыбора = Справочники.ФизическиеЛица.ПолучитьФорму("ФормаСписка", ЭтаФорма);
ФормаВыбора.ЗакрыватьПриВыборе = Ложь;
ФормаВыбора.РежимВыбора = Истина;
ФормаВыбора.Открыть();

Управление не передаётся в обработку выбора формы справочника ФизЛица.

cska-fanat-kz

Код открытия формы списка справочника для выбора - правильный.

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

Теги:

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

Рейтинг@Mail.ru

Поиск