Имя: Пароль:
1C
1С v8
Не присваивается значение в поле ввода
0 Надежда25
 
12.10.11
12:08
Здравствуйте!
v8.1. В табличной части документа при выборе Номенклатуры надо, чтобы открывался список одной только группы справочника. Все работает (в смысле Элемент равен тому, что выбрали), но не присваивается. Почему?
Вот код:
Процедура ТоварыНоменклатураНачалоВыбора(Элемент, СтандартнаяОбработка)
   СтандартнаяОбработка = Ложь;
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |Номенклатура.Наименование,
   |Номенклатура.Родитель
   |ИЗ
   |Справочник.Номенклатура КАК Номенклатура
   |ГДЕ
   |    Номенклатура.Родитель В Иерархии(&ГруппаНоменклатуры)
   |   И Номенклатура.ЭтоГруппа = ЛОЖЬ
   |";
Запрос.УстановитьПараметр("ГруппаНоменклатуры", Справочники.Номенклатура.НайтиПоНаименованию("Продукция"));
ТоварыНоменклатура = Новый СписокЗначений;
ТоварыНоменклатура.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Наименование"));
ВыбранныйЭлемент = ВыбратьИзСписка(ТоварыНоменклатура, Элемент, ТоварыНоменклатура.НайтиПоЗначению(Элемент.Значение));
Если ВыбранныйЭлемент <> Неопределено Тогда
   Элемент = Справочники.Номенклатура.НайтиПоНаименованию(ВыбранныйЭлемент.Значение);
КонецЕсли;
КонецПроцедуры
1 Рэйв
 
12.10.11
12:09
(0)Различайте реквизиты и элементы формы
2 Рэйв
 
12.10.11
12:10
Можно попробовать Элемент.Значение
3 zahar140382
 
12.10.11
12:11
А ссылку на объект пробывал передавать?
4 Reset
 
12.10.11
12:19
Попробуй так.

Процедура ТоварыНоменклатураНачалоВыбора(Элемент, СтандартнаяОбработка)
   СтандартнаяОбработка = Ложь;
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    Номенклатура.Ссылка
   |ИЗ
   |    Справочник.Номенклатура КАК Номенклатура
   |ГДЕ
   |    Номенклатура.Родитель В ИЕРАРХИИ(&ГруппаНоменклатуры)
   |    И НЕ Номенклатура.ЭтоГруппа";
   Запрос.УстановитьПараметр("ГруппаНоменклатуры", Справочники.Номенклатура.НайтиПоНаименованию("Продукция"));
   ТоварыНоменклатура = Новый СписокЗначений;
   ТоварыНоменклатура.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
   ВыбранныйЭлемент = ВыбратьИзСписка(ТоварыНоменклатура, Элемент, Элемент.Значение);
   Если ВыбранныйЭлемент <> Неопределено Тогда
       Элемент.Значение = ВыбранныйЭлемент.Значение;
   КонецЕсли;
КонецПроцедуры

5 Reset
 
12.10.11
12:19
Хотя по минимуму вроде достаточно и (2)
6 zahar140382
 
12.10.11
12:24
в смысле Элемент равен тому, что выбрали), но не присваивается. Почему?
я так понимаю что в табличной части неприсваивается(туда нужно передать Элемент.Ссылка)
7 zahar140382
 
12.10.11
12:41
о точно назавите поле не Элемен)))
8 zahar140382
 
12.10.11
12:42
Поле не элемет  и строка
Элементц = Справочники.Номенклатура.НайтиПоНаименованию(ВыбранныйЭлемент.Значение).Ссылка;
проверил работает
9 zahar140382
 
12.10.11
12:48
все работает и ваш код изначально просто поле не называйте элемент(как нить подругому)
10 zahar140382
 
12.10.11
13:00
Процедура ТоварыНоменклатураНачалоВыбора(Элемент, СтандартнаяОбработка)
   СтандартнаяОбработка = Ложь;
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |Номенклатура.Наименование,
   |Номенклатура.Родитель
   |ИЗ
   |Справочник.Номенклатура КАК Номенклатура
   |ГДЕ
   |    Номенклатура.Родитель В Иерархии(&ГруппаНоменклатуры)
   |   И Номенклатура.ЭтоГруппа = ЛОЖЬ
   |";
Запрос.УстановитьПараметр("ГруппаНоменклатуры", Справочники.Номенклатура.НайтиПоНаименованию("Продукция"));
ТоварыНоменклатура = Новый СписокЗначений;
ТоварыНоменклатура.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Наименование"));
ВыбранныйЭлемент = ВыбратьИзСписка(ТоварыНоменклатура, Элемент, ТоварыНоменклатура.НайтиПоЗначению(Элемент.Значение));
Если ВыбранныйЭлемент <> Неопределено Тогда
   ЭлементПоле = Справочники.Номенклатура.НайтиПоНаименованию(ВыбранныйЭлемент.Значение);
КонецЕсли;
КонецПроцедуры

И назовите поле ввода: ЭлементПоле
11 Reset
 
12.10.11
13:19
(10) Захар, не мути воду.
12 zahar140382
 
12.10.11
13:21
Что не мути
она поле ввода назвала Элемент(вот ее и ошибка)
13 zahar140382
 
12.10.11
13:22
(11) проверь сам код он у нее правильный кроме поля ввода
14 Reset
 
12.10.11
13:23
(12) Ты не врубаешься вообще. Она его не называла.
Объяснять тебе лень. Прими как данность, что ты не в теме и просто не вводи человека в заблуждение. (Хотя человек и пропал куда-то)
15 zahar140382
 
12.10.11
13:24
(14) что объяснять?читай вопрос в смысле Элемент равен тому, что выбрали), но не присваивается. Почему?
16 zahar140382
 
12.10.11
13:25
у нее и будет пустое поле после выбора если она поле назвала Элемен
17 Надежда25
 
12.10.11
13:29
Большое спасибо за ответ.
Элемент.Значение работает!

Я не пропала. Я билась с отчетом.
Вы знаете, есть еще подобная задача, но она пока не решена.
Отчет на СКД. Есть отбор. При выборе номенклатуры в отборе надо, чтобы в списке появлялись только элементы группы "Продукция". То есть использую тот же запрос, ВыбратьИзСписка. А как подставить результат в ПравоеЗначение - не знаю. Пишу в форме отчета в процедуре СформироватьОтчет().
18 Надежда25
 
12.10.11
15:21
Ничего...