Имя: Пароль:
1C
1С v8
форма выбора с произвольным запросом
0 apolenary
 
16.01.12
09:49
Доброго времени суток.
Подскажи пожалуйста, создал форму выбора с произвольным запросом, при изменении элемента на форме сделал обработку:

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

Тут открывается форма с нужным мне списком, но когда я либо делаю двойное нажатие на выбранной строке, либо выбираю строку и давлю кнопку "Выбрать", форма закрывается и ничего не выбирается, элемент формы остается пустым, что нужно еще сделать?
1 Defender aka LINN
 
16.01.12
09:50
Основную таблицу-то указал?
2 Wobland
 
16.01.12
09:50
а что тебе возвращает форма?
3 apolenary
 
16.01.12
09:58
&НаКлиенте
Процедура КузовОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
   Сообщить(ВыбранноеЗначение);

КонецПроцедуры

возвращает номер строки.

Основная таблица не указана :(, но проблема в том, что данные выбираются из справочника с табличной частью, и запрос у меня такой:

ВЫБРАТЬ
   Кузова.Код,
   Кузова.Наименование,
   Кузова.Поколение,
   Кузова.ТипКузова,
   Кузова.КоличествоДверей,
   Кузова.Дата1,
   Кузова.Дата2,
   КузоваМодели.Модель.Наименование
ИЗ
   Справочник.Кузова.Модели КАК КузоваМодели
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Кузова КАК Кузова
       ПО (КузоваМодели.Ссылка = Кузова.Ссылка)

и если я указываю основной таблицей справочник из которого делаю выбор, то выбора не происходит, а когда убрал основную таблицу, то все заработало

конфигурация 8.2.14.540  УП
4 Defender aka LINN
 
16.01.12
10:04
(3) А что тебе тогда должно вернуться при выборе-то?
5 apolenary
 
16.01.12
10:07
Элемент на форме привязан к реквизиту Кузов с типом СправочникСсылка.Кузова, я расчитывал в этом поле получить после выбора Кузова.Наименование
6 apolenary
 
16.01.12
10:24
Получается выбор не происходит из-зи того, что не выбрана Основная таблица?
7 Defender aka LINN
 
16.01.12
10:28
(6) Выбор происходит. А вот дальше ничего не происходит именно поэтому, да.
8 apolenary
 
16.01.12
10:41
а какие есть варианты решения, тогда как можно вывести список из произвольного запроса с указанием основной таблици в моем случае, у меня в запросе участвует справочник и его его табличная часть. т.е. есть стправочник с реквизитами
   Кузова.Код
   Кузова.Наименование
   Кузова.Поколение
   Кузова.ТипКузова
   Кузова.КоличествоДверей
   Кузова.Дата1
   Кузова.Дата2
и табличной частью Модели с реквизитом Модель типа СправочникСсылка. Соответственно я делаю запрос:
ВЫБРАТЬ
   Кузова.Код,
   Кузова.Наименование,
   Кузова.Поколение,
   Кузова.ТипКузова,
   Кузова.КоличествоДверей,
   Кузова.Дата1,
   Кузова.Дата2,
   КузоваМодели.Модель.Наименование
ИЗ
   Справочник.Кузова.Модели КАК КузоваМодели
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Кузова КАК Кузова
       ПО (КузоваМодели.Ссылка = Кузова.Ссылка)

но при этом запросе, если указать основную таблицу, то в списке ничего выбирается, как только убираю основную таблицу все ОК, как быть?
9 apolenary
 
16.01.12
10:52
:( нет идей?
10 apolenary
 
16.01.12
11:15
11 Стальная Крыса
 
16.01.12
11:26
если должны выбираться "Кузова" тогда и основная таблица должна быть указана как "Справочник.Кузова"
12 apolenary
 
16.01.12
11:31
Я это понимаю, но почему тогда, когда я ее выбираю, то форма открывается с пустым списком?
13 Defender aka LINN
 
16.01.12
12:25
(8) А ссылку в запросе кто выбирать будет?
14 apolenary
 
16.01.12
15:45
А можно поподробней про ссылку, т.к. я сделал вот так:
ВЫБРАТЬ
   Кузова.Код,
   Кузова.Наименование,
   Кузова.Поколение,
   Кузова.ТипКузова,
   Кузова.КоличествоДверей,
   Кузова.Дата1,
   Кузова.Дата2,
   КузоваМодели.Модель.Наименование,
   Кузова.Ссылка,
   КузоваМодели.Модель.Ссылка
ИЗ
   Справочник.Кузова КАК Кузова
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Кузова.Модели КАК КузоваМодели
       ПО (КузоваМодели.Ссылка = Кузова.Ссылка)

И выбрал основной таблицей Справочник.Кузова, и форма открылась с пустым списком, только убрал основную таблицу, данные в списке формы появились, что не так?
15 apolenary
 
16.01.12
16:15
16 apolenary
 
17.01.12
07:15
А в то же время, простой запрос к этому справочнику, с указанием Основной таблици, выводиться без проблем, что может быть не так?
17 apolenary
 
17.01.12
08:26
В руководстве вычитал:

"Если же в результате выполнения запроса количество строк, получаемых запросом из основной таблици, увеличивается, это будет приводить к нарушению уникальности ключа, записей таблицы, отображаемой списком."

из-за этого, когда я указываю таблицу в форме ничего и нету, тогда вопрос каким способом лучше передать значение из формы выбора элементу на др. форме?
18 apolenary
 
17.01.12
09:11
Вообще, что нужно сделать, чтоб моя форма выбора с произвольным запросом вернула выбранное мной значение?
19 apolenary
 
17.01.12
09:55
Никто не знает, что нужно сделать чтоб форма вернула результат?
Вообще стандартная форма выбора что возвращает, может можно это значение руками вернуть?
20 apolenary
 
17.01.12
10:15
:( никаких мыслей нет?
21 apolenary
 
17.01.12
14:31
22 pessok
 
17.01.12
15:06
(0) форма возвращается с пустым списком при выбранной основной таблице в том случае, если результат запроса возвращает несколько одинаковых ссылок на основной реквизит реквизит списка. Проверь запрос в консоли.
23 pessok
 
17.01.12
15:06
+(22) вот буквально вчера я разбирался :)
v8: Динамический список. Основная таблица
24 Mort
 
17.01.12
15:12
(0) А что вообще хочешь сделать? Что из табличной части решил в список вывести?
25 apolenary
 
17.01.12
15:24
Мне нужно сделать отбор записей из справочника, которые в табличной части содержат определенное значение, выбранное заранее в др. элементе, т.е. если у меня выбрана модель авто, то мне нужно выбрать только те кузова которые относятся к данной модели.
26 pessok
 
17.01.12
15:27
(25) таки ВЫБРАТЬ РАЗЛИЧНЫЕ попробуй
27 pessok
 
17.01.12
15:30
+(26) ВЫБРАТЬ РАЗЛИЧНЫЕ
ГДЕ (Кузова.Ссылка = &НужныйКузов)

в при активациистроки другой таблицы устанавливай параметр &НужныйКузов

Как-то так, скорее всего. Не надо лепить в запрос таблицу с табличными частями документов
28 apolenary
 
17.01.12
15:34
Хм. точно, спасибо, сейчас попробую, только у меня будет выбор кузовов по модели
29 pessok
 
17.01.12
15:53
велкам
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан