Имя: Пароль:
1C
1С v8
Запись элемента справочника из формы документа
0 rodrigez
 
16.05.12
18:28
Здравствуйте!
Нужно сделать следующее.
Есть реквизит табличной части документа МестаРазмещения (тип СправочникСсылка.МестаРазмещения). Хочу выбирать ранее введенные элементы справочника - это просто и еще хочу записывать новые элементы справочника из данного реквизита формы, если такого пока не существует. В данном реквизите редактирование разрешено.
Далее все делаю как в указном коде, только не могу понять появления предупреждения (Значения не найдено, с возможностью выбора, ВыбратьИзСписка,ПродолжитьВвод",Отмена)Почему оно появляется и как его убрать, так как в мои планы оно не входит.
Спасибо за терпение и понимание и внимание!

&НаКлиенте
   Процедура СоставНоменклатурыМестоРазмещенияОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка)
       Перем НайденЛиТакойУже, ЗначениеПоискаЭлСправочника;
       СтандартнаяОбработка = Ложь;
       НайденЛиТакойУже = НайденЛиДанныйЗаписуваемыйЭлементСправочникаМестаРазмищения(Текст);
       Если НЕ НайденЛиТакойУже Тогда        
           Ответ = Вопрос("Хотите запсать данное место размещения, как новый элемент справочника?",РежимДиалогаВопрос.ДаНет,,,"Подтвердите свой выбор");
           Если Ответ = КодВозвратаДиалога.Да Тогда
               
               ЗаписатьЭлементВСправочникМестаРазмещения(Текст);
               ЗначениеПоискаЭлСправочника = ВернутьНайденоеЗначениеМестаРазмещения(Текст);
               Элементы.СоставНоменклатуры.ТекущиеДанные.МестоРазмещения = ЗначениеПоискаЭлСправочника;
           КонецЕсли;
       Иначе
           Предупреждение("Такой элемент в данном справочнике уже существует!!!");
       КонецЕсли;
   КонецПроцедуры
   
   &НаСервереБезКонтекста  
   Процедура ЗаписатьЭлементВСправочникМестаРазмещения (Текст)            
       МестаРазмещения = Справочники.МестаРазмещения.СоздатьЭлемент();
       МестаРазмещения.Наименование = Текст;
       МестаРазмещения.Записать();
   
   КонецПроцедуры
   
   &НаСервереБезКонтекста
   Функция НайденЛиДанныйЗаписуваемыйЭлементСправочникаМестаРазмищения(Текст)
       ЗначениеПоискаЭлеметаСправочника = Справочники.МестаРазмещения.НайтиПоНаименованию(Текст);        
       Возврат Не ЗначениеПоискаЭлеметаСправочника.Пустая();
   КонецФункции
   //Функция возвращает найденное значение места размещения ссылочного типа данных
   &НаСервере
   Функция ВернутьНайденоеЗначениеМестаРазмещения(Текст)
       ЗначениеПоискаЭлеметаСправочника = Справочники.МестаРазмещения.НайтиПоНаименованию(Текст);    
       Возврат   ЗначениеПоискаЭлеметаСправочника;
   КонецФункции
1 DrShad
 
16.05.12
18:54
ну ты же выбираешь в поле с типом справочник? вот те и ответ
2 rodrigez
 
16.05.12
20:49
а как "вырулить" в этом случае, не подскажите? ;-)
3 Лоботряс
 
16.05.12
20:54
НайденЛиДанныйЗаписУваемыйЭлементСправочникаМестаРазмищения - поржал
4 kosts
 
16.05.12
21:13
Вроде сегодня не пятница
5 kosts
 
16.05.12
21:17
Не нужно создавать элементы справочника из документа. Ни к чему хорошему это не приведет...
6 rodrigez
 
17.05.12
14:04
а как можно в 1С 8.2 реализовать выбор, раннее введенных, значений (типа как windows сохраняются команды, в окне выполнить (свойством editbox), не используя справочник и используя другой объект метаданных?
7 pumbaEO
 
17.05.12
14:05
(6) сохраняй список значений.