|
Запрос с параметром | ☑ | ||
---|---|---|---|---|
0
Ira_19
21.12.11
✎
21:38
|
Не получается заполнить поле на управляемой форме, являющееся списком выбора. Заполняю его результатом запроса:
&НаКлиенте Процедура НомерТехнологическогоПроцессаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) НомерУзла=Объект.НомерУзлаДетали; ЗаполнениеСпискаНомерОперации(ВыбранноеЗначение,НомерУзла); КонецПроцедуры (поля НомерТехнологическогоПроцесса и НомерУзлаДетали имеют тип СправочникСсылка) &НаСервере Функция ЗаполнениеСпискаНомерОперации(ВыбранноеЗначение,НомерУзла) НомерТехПроцесса=ВыбранноеЗначение; Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | ВедомостьНормВремениДляПроизНоменклатуры.НормыВремени.( | ТехнологическийНомерОперации | ), | ВедомостьНормВремениДляПроизНоменклатуры.НомерУзлаДетали, | ВедомостьНормВремениДляПроизНоменклатуры.НомерТехнологическогоПроцесса |ИЗ | Документ.ВедомостьНормВремениДляПроизНоменклатуры КАК ВедомостьНормВремениДляПроизНоменклатуры |ГДЕ | ВедомостьНормВремениДляПроизНоменклатуры.НомерУзлаДетали = &НомерУзла | И ВедомостьНормВремениДляПроизНоменклатуры.НомерТехнологическогоПроцесса = &НомерТехПроцесса"; Запрос.УстановитьПараметр("НомерУзла", НомерУзла); Запрос.УстановитьПараметр("НомерТехПроцесса", НомерТехПроцесса); Элементы.ТехнологическийНомерОперации.СписокВыбора.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0)); КонецФункции Занесла данные из документа, откуда делаю выборку, в регистр сведений, попробовала из него извлечь, результат тот же. Если в качестве параметра устанавливаю один, например НомерУзлаДетали, то выборка работает, но в список заносится значение "Массив", а не конкретные значения. Попробовала результат выборки загрузить в список значений, потом из него в СписокВыбора на форме - ничего не изменилось. Есть другой способ занести данные: Колонка=Документы.ВедомостьНормВремениДляПроизНоменклатуры.НайтиПоРеквизиту("НомерУзлаДетали",НомерУзла).НормыВремени.ВыгрузитьКолонку("ТехнологическийНомерОперации"); Элементы.ТехнологическийНомерОперации.СписокВыбора.ЗагрузитьЗначения(Колонка); Но в этом случае заносится содержимое только последнего документа (а если несколько документов с одинаковыми номерами узлов?), но мне же нужна выборка по двум параметрам... Подскажите, пожалуйста, что я не так делаю. |
|||
1
H A D G E H O G s
21.12.11
✎
21:47
|
Бррр
|
|||
2
Wingless
21.12.11
✎
22:10
|
Можно начать с того, что посмотреть Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0) в отладчике.
|
|||
4
Ira_19
21.12.11
✎
22:41
|
2
в отладчике так и показывает Значение Тип Массив Массив |
|||
5
GROOVY
21.12.11
✎
22:45
|
Насколько я вижу у функции нет оператора ВОЗВРАТ.
|
|||
6
GROOVY
21.12.11
✎
22:45
|
Следовательно вернет она НЕОПРЕДЕЛЕНО.
|
|||
7
Ira_19
21.12.11
✎
22:47
|
И что? я же при вызове не присваиваю её результат ничему.
Переименовала функцию в процедуру - ничего не изменилось. |
|||
8
Wingless
21.12.11
✎
22:47
|
(4)
Отлично, а в массиве что? |
|||
9
Ira_19
21.12.11
✎
22:52
|
а в массиве таблица значений.... ужас какой
|
|||
10
GROOVY
21.12.11
✎
22:53
|
Да, прохлопал... Сорри.
|
|||
11
Конфигуратор1с
21.12.11
✎
22:59
|
ВедомостьНормВремениДляПроизНоменклатуры.НормыВремени.(
| ТехнологическийНомерОперации | ) это что такое? |
|||
12
Ira_19
21.12.11
✎
23:00
|
это поле табличной части документа ВедомостьНормВремениДляПроизНоменклатуры, откуда делается выборка
|
|||
13
Конфигуратор1с
21.12.11
✎
23:06
|
(12) так а почему не сделать запрос к табличной части а не к документу?
|
|||
14
GROOVY
21.12.11
✎
23:07
|
И про регистр сведений уточните что вы имели в виду?
|
|||
15
Конфигуратор1с
21.12.11
✎
23:12
|
Такое смутное подозрение, хотя может и глупость горожу что он вам не значения с табчасти выгружает а элементы строк
|
|||
16
Конфигуратор1с
21.12.11
✎
23:13
|
элементы строк читать как строки
|
|||
17
Ira_19
21.12.11
✎
23:31
|
(13) пробовала так писать
Запрос.Текст= "ВЫБРАТЬ | НормыВремени.ТехнологическийНомерОперации |ИЗ | Документ.ВедомостьНормВремениДляПроизНоменклатуры.НормыВремени КАК НормыВремени |ГДЕ | НормыВремени.Ссылка.НомерУзлаДетали = &НомерУзла | И НормыВремени.Ссылка.НомерТехнологическогоПроцесса = &НомерТехПроцесса"; безрезультатно |
|||
18
GROOVY
21.12.11
✎
23:32
|
"ВЫБРАТЬ
| ТехнологическийНомерОперации |ИЗ | Документ.ВедомостьНормВремениДляПроизНоменклатуры.НормыВремени |ГДЕ | (Ссылка.НомерУзлаДетали, Ссылка.НомерТехнологическогоПроцесса) В (&НомерУзла, &НомерТехПроцесса)" |
|||
19
GROOVY
21.12.11
✎
23:33
|
Технологический номер операции это что?
|
|||
20
Ira_19
21.12.11
✎
23:34
|
(14) я создавала регистр сведений, в который заносилися нужные мне поля, потом выборку писала по этому регистру.
Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | НормаВремениТО.ТехнологическийНомерОперации |ИЗ | РегистрСведений.НормаВремениТО КАК НормаВремениТО |ГДЕ | НормаВремениТО.НомерУзлаДетали = &НомерУзла"; НормаВремениТО - регистр, который заполняется при проведении документа ВедомостьНормВремениДляПроизНоменклатуры. |
|||
21
Ira_19
21.12.11
✎
23:35
|
(19) смотрите ответ в (12)
|
|||
22
GROOVY
21.12.11
✎
23:40
|
(21) Поле табличной части? А как называется ТЧ? Как Вы к ней обращаетесь?
|
|||
23
GROOVY
21.12.11
✎
23:40
|
Я вообще вот про это: Элементы.ТехнологическийНомерОперации
|
|||
24
Ira_19
21.12.11
✎
23:41
|
(18) ошибка((
{Документ.НормыРасходаВспомМатериалов.Форма.ФормаДокумента(45)}: Ошибка при вызове метода контекста (Выполнить) Колонка = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0); по причине: {(6, 65)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. (Ссылка.НомерУзлаДетали, Ссылка.НомерТехнологическогоПроцесса) <<?>>В (&НомерУзла, &НомерТехПроцесса) |
|||
25
Ira_19
21.12.11
✎
23:45
|
(22) в документе ВедомостьНормВремениДляПроизНоменклатуры есть 2 реквизита НомерУзлаДетали и НомерТехнологическогоПроцесса, а также табличная часть НормыВремени, в котором колонка называется ТехнологическийНомерОперации.
С помощью запроса для определённых значений реквизитов (их передаю в параметрах) я хочу получить все значения из колонки табличной части, чтобы потом загрузить их в список выбора на другой форме. |
|||
26
GROOVY
21.12.11
✎
23:47
|
У меня отлично все загрузилось:
РезультатЗапроса = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); Элементы.Контрагент.СписокВыбора.ЗагрузитьЗначения(РезультатЗапроса); Это не Ваш пример, но логика одинаковая. Запрос из (17) отрабатывает? Данные получает? |
|||
27
GROOVY
21.12.11
✎
23:48
|
Ну попробуйте так...
(Ссылка.НомерУзлаДетали, Ссылка.НомерТехнологическогоПроцесса) В (ВЫБРАТЬ &НомерУзла, &НомерТехПроцесса) |
|||
28
Ira_19
21.12.11
✎
23:52
|
(26) Ссылка - название колонки?
Запрос из (17) даёт аналогичный результат, что и выборка из документа. |
|||
29
GROOVY
21.12.11
✎
23:55
|
(28) Да "Ссылка" это название поля из запроса.
|
|||
30
GROOVY
21.12.11
✎
23:56
|
У самого поля ввода "РежимВыбораИзСписка" включили?
|
|||
31
Ira_19
21.12.11
✎
23:58
|
(27) Ура!!!! Работает!!!
Написала так Запрос.Текст= "ВЫБРАТЬ | ТехнологическийНомерОперации |ИЗ | Документ.ВедомостьНормВремениДляПроизНоменклатуры.НормыВремени |ГДЕ |(Ссылка.НомерУзлаДетали, Ссылка.НомерТехнологическогоПроцесса) В (ВЫБРАТЬ &НомерУзла, &НомерТехПроцесса)"; Запрос.УстановитьПараметр("НомерУзла", НомерУзла); Запрос.УстановитьПараметр("НомерТехПроцесса", НомерТехПроцесса); Колонка = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ТехнологическийНомерОперации"); Элементы.ТехнологическийНомерОперации.СписокВыбора.ЗагрузитьЗначения(Колонка); (29) не сработал (30) да, а иначе я бы списка не увидела, было бы обычное поле) Спасибо БОЛЬШОЕ!!! |
|||
32
Ira_19
22.12.11
✎
00:00
|
сорри (29) не сработал до того, как написала (Ссылка.НомерУзлаДетали, Ссылка.НомерТехнологическогоПроцесса) В (ВЫБРАТЬ &НомерУзла, &НомерТехПроцесса)
|
|||
33
Ira_19
22.12.11
✎
00:01
|
осталось теперь разобраться, почему именно так нужно писать условие
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |