|
Как программно открыть упр.форму выбора справочника из документа? | ☑ | ||
---|---|---|---|---|
0
altaykniga
01.06.16
✎
17:34
|
Доброго времени суток, умные люди. Подскажите решение, пожалуйста.
Есть документ ЗаказНаПроизводство. При начале выбора номенклатуры нужно открывать форму выбора справочника, где будут содержаться только те элементы, которые содержатся в ТЧ документа-основания! Как этого добиться? |
|||
1
Гаврилин Игор
01.06.16
✎
17:36
|
А почему не заполнять по документу основанию сразу всю тч? не понял задачу если честно..
|
|||
2
aleks_default
01.06.16
✎
17:37
|
(0)скока платишь?
|
|||
3
altaykniga
01.06.16
✎
17:38
|
(1) потому что нужно не перезаполнять ТЧ по документу-основанию, т.к. в текущем доке могут содержаться не все строки из документа-основания. Пользователю надо дать право вручную довносить нужную номенклатуру, но только ту, которая содержится в документе-основании
|
|||
4
elCust
01.06.16
✎
17:40
|
||||
5
trooba
01.06.16
✎
17:40
|
(3) Ну так при открытии накладывать отборы
|
|||
6
altaykniga
01.06.16
✎
17:41
|
(5) как наложить отбор, чтобы в форме выбора отображалась только определенная номенклатура, которая находится в ТЧ документа-основания?
|
|||
7
aleks_default
01.06.16
✎
17:42
|
(6)Ты хочешь чтобы вместо тебя кто-то код написал, или сам уже что-то сделаешь?
|
|||
8
trooba
01.06.16
✎
17:44
|
(6) Получить номенклатуру документа основания, создать из нее список значений и устанавливать отбор на равеноству списку, видсравнения в списке.
|
|||
9
Nuobu
01.06.16
✎
17:44
|
(6) ФормаВыбора.СписокНоменклатура.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
СписокВыбора = Новый СписокЗначений; СписокВыбора.Загрузить(ДокументОснование.Товары.ВыгрузитьКолонку("Номенклатура")); ФормаВыбора.СписокНоменклатура.Отбор.Ссылка.Значение = СписокВыбора; ФормаВыбора.СписокНоменклатура.Отбор.Ссылка.Использование = Истина; |
|||
10
aleks_default
01.06.16
✎
17:47
|
(9) Вот еще одного халявщика прикормил.
|
|||
11
altaykniga
01.06.16
✎
17:49
|
(9) это для обычных форм?
|
|||
12
trooba
01.06.16
✎
17:49
|
(9) Форма управляемаю, там чуть по другому
|
|||
13
Nuobu
01.06.16
✎
17:49
|
(10) Конец рабочего дня, делать ничего не хочется, хочу немного отдохнуть.
|
|||
14
trooba
01.06.16
✎
17:50
|
(11) СписокСотрудников = ПодготовитьСписокСотрудниковПодразделения(Параметры.Подразделение);
НовыйЭлемент = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); НовыйЭлемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка"); НовыйЭлемент.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; НовыйЭлемент.ПравоеЗначение = СписокСотрудников; НовыйЭлемент.Применение = ТипПримененияОтбораКомпоновкиДанных.Элементы; |
|||
15
trooba
01.06.16
✎
17:50
|
+(14) Адаптируй для себя сам
|
|||
16
altaykniga
01.06.16
✎
17:53
|
(14) что в данном примере есть Список?
|
|||
17
Nuobu
01.06.16
✎
17:54
|
(16) Халявщик
|
|||
18
trooba
01.06.16
✎
17:54
|
(16) Подумай
|
|||
19
BormanMic
01.06.16
✎
17:56
|
Динамический список не предлагать?
|
|||
20
Chainsaw
01.06.16
✎
20:33
|
(14) Связи параметров выбора же у элемента мышкой натыкать, не?
А то так до реализации на дотнете точно докатитесь... |
|||
21
altaykniga
02.06.16
✎
13:44
|
изначальные условия задачи. Есть документ ЗаказНаПроизводство. У него есть документОснование - ЗаказПокупателя.
При начале выбора Номенклатуры из ТЧ "Продукция" ЗаказаНаПроизводство нужно пользователю предоставить выбор только той номенклатуры, которая содержится в ТЧ "Запасы" документаОснования. Причем при выборе номенклатуры нужно тянуть из ТЧ "Запасы" документаОснования еще и значение реквизита ИД_Детали. Т.е. нужно при выборе номенклатуры открывать форму выбора, где будет кроме номенклатуры еще и колонка ИД_детали Как этого добиться? |
|||
22
Nuobu
02.06.16
✎
13:46
|
(21) Написать свою форму выбора.
|
|||
23
bootini
02.06.16
✎
15:21
|
(21) Если обычные формы, то используй ВыбратьСтроку() из ТЗ результата запроса к ТЧ документаСоснования.
Запрос к ТЧ "Запасы" ДокументаОснования в результате должны быть два поля Ннменклатура и ИД_Детали. Результат = Запрос.Выполнить().Выгрузить(); НоменклатураИДетали = Результат.ВыбратьСтроку("Выбери"); |
|||
24
bootini
02.06.16
✎
16:11
|
(23) Сорри, в заголовку Упр. форма.
Добавляй свою форму с таблицей к ЗаказНаПроизводство в неё результат запроса, и открывай. |
|||
25
singlych
02.06.16
✎
16:15
|
(14) список ссылок можно передать через параметры формы, он сам отбор сделает
|
|||
26
altaykniga
02.06.16
✎
18:01
|
(22), (23) сделал форму выбора. передал в нее параметр ДокументОснованиеСсылка.
В модуле формы выбора : Процедура ПриСозданииНаСервере() //обращусь к Параметры.ДокОснование.Запасы //получу оттуда ТЗ с колонками "ИД_Детали", "Номенклатура" как теперь строки из ТЗ отобразить на моей ФормеВыбораДетали? КонецПроцедуры |
|||
27
altaykniga
02.06.16
✎
18:10
|
написал так:
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ЭтаФорма.Список.ПроизвольныйЗапрос = Истина; ЭтаФорма.Список.ТекстЗапроса = "ВЫБРАТЬ | ЗаказПокупателяЗапасы.Номенклатура, | ЗаказПокупателяЗапасы.ИД_Детали, | ЗаказПокупателяЗапасы.НомерСтроки КАК НомерСтроки |ИЗ | Документ.ЗаказПокупателя.Запасы КАК ЗаказПокупателяЗапасы |ГДЕ | ЗаказПокупателяЗапасы.Ссылка = &ЗаказПокупателя | И НЕ ЗаказПокупателяЗапасы.ИД_Детали В(&СписокДеталейЗаказаНаПроизводство) | |УПОРЯДОЧИТЬ ПО | НомерСтроки"; КонецПроцедуры как установить параметры запроса? |
|||
28
altaykniga
02.06.16
✎
18:44
|
сделал так:
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ЭтаФорма.Список.ПроизвольныйЗапрос = Истина; ЭтаФорма.Список.ТекстЗапроса = "ВЫБРАТЬ | ЗаказПокупателяЗапасы.Номенклатура, | ЗаказПокупателяЗапасы.ИД_Детали, | ЗаказПокупателяЗапасы.НомерСтроки КАК НомерСтроки |ИЗ | Документ.ЗаказПокупателя.Запасы КАК ЗаказПокупателяЗапасы |ГДЕ | ЗаказПокупателяЗапасы.Ссылка = &ЗаказПокупателя | И НЕ ЗаказПокупателяЗапасы.ИД_Детали В(&СписокДеталейЗаказаНаПроизводство) | |УПОРЯДОЧИТЬ ПО | НомерСтроки"; Список.Параметры.УстановитьЗначениеПараметра("ЗаказПокупателя", Параметры.Документ.ДокументОснование); Список.Параметры.УстановитьЗначениеПараметра("СписокДеталейЗаказаНаПроизводство", Параметры.СписокДеталейЗаказаНаПроизводство); КонецПроцедуры открывается пустая форма выбора, т.е. отображена только командная панель, без списка номенклатуры |
|||
29
altaykniga
02.06.16
✎
21:29
|
сделал так:
снял галочку "динамическое считывание данных" основная таблица - пусто ставим галочку на ПроизвольныйЗапрос. текст запрос следующий: ВЫБРАТЬ ЗаказПокупателяЗапасы.НомерСтроки КАК НомерСтроки, ЗаказПокупателяЗапасы.Номенклатура, ЗаказПокупателяЗапасы.ИД_Детали, ЗаказПокупателяЗапасы.Спецификация, ЗаказПокупателяЗапасы.Количество, ЗаказПокупателяЗапасы.Цена, ЗаказПокупателяЗапасы.Всего ИЗ Документ.ЗаказПокупателя.Запасы КАК ЗаказПокупателяЗапасы ГДЕ ЗаказПокупателяЗапасы.Ссылка = &ЗаказПокупателя И НЕ ЗаказПокупателяЗапасы.ИД_Детали В (&СписокДеталейЗаказаНаПроизводство) УПОРЯДОЧИТЬ ПО НомерСтроки параметры запроса через параметры формы передать не удалось, написал в модуле ФормыВыбораДетали: &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Список.Параметры.УстановитьЗначениеПараметра("ЗаказПокупателя", Параметры.Документ.ДокументОснование); Список.Параметры.УстановитьЗначениеПараметра("СписокДеталейЗаказаНаПроизводство", Параметры.СписокДеталейЗаказаНаПроизводство); КонецПроцедуры теперь формаВыбораДетали открывается с нужными строками. Вопрос: не работает выбор строки. Т.е. щелкаешь на строку - ничего не происходит. Что сделал не так? |
|||
30
Nuobu
06.06.16
✎
09:49
|
(29) Опиши обработку выбора
|
|||
31
aleks_default
06.06.16
✎
10:07
|
При открытии формы выбора нужно указать владельца формы (третий параметр). А в обработчике события "ОбработкаВыбора" владельца прописать заполнение выбранного значения.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |