helpf.pro
Регистрация

v8: Выбрать справочник

Ermak
30.10.2012 14:37Прочитано: 3016
На форме есть ПолеВвода где выбираются справочники

Код 1C v 8.х
 СписокВыбора = ЭлементыФормы.Спр.СписокВыбора;
СписокВыбора.Очистить();
Для Каждого Справочник Из Метаданные.Справочники Цикл
//Проверим, есть ли права на просмотр? Да- добавляем, Нет - пропускаем
Если ПравоДоступа("Просмотр", Справочник) Тогда
ИмяСправочника = Справочник.Синоним;
Если ИмяСправочника = "" Тогда
ИмяСправочника = Справочник.Имя;
КонецЕсли;
Структура = Новый Структура;
Структура.Вставить("Справочник");
Структура.Вставить("Объект", Справочник);
СписокВыбора.Добавить(ИмяСправочника);
КонецЕсли;
КонецЦикла;


Как прописать чтобы при выборе справочника очищался выбранный справочник, вот я написал как очищать опеределеный справочник

Код 1C v 8.х
 Выборка = Справочники.Адреса.Выбрать();
Пока Выборка.Следующий() Цикл
Спр=Выборка.ПолучитьОбъект();
Спр.Удалить();
КонецЦикла;
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
30.10.2012 14:40Ответ № 1
(0) Ermak, засунь код удаление в событие ПриИзменении поля со списком
Ermak
30.10.2012 14:45Ответ № 2
А как тогда будет работать кнопка удалить?
E_Migachev
30.10.2012 15:06Ответ № 3
(2) Ermak, ни как, можно ее удалить
Ermak
30.10.2012 16:39Ответ № 4
не понял, я хотел сделать чтобы выбираешь справочник и удаляешь в нем всю информацию
E_Migachev
30.10.2012 19:31Ответ № 5
(4) Ermak, покажи полный код
Ermak
30.10.2012 22:27Ответ № 6
Выше код, первый делаю в
Код 1C v 8.х
 Процедура СпрНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)


второй код

Код 1C v 8.х
 Процедура КнопкаВыполнитьНажатие(Кнопка)   
Mokey
31.10.2012 11:25Ответ № 7
Код 1C v 8.х
 
Выборка = Справочники[Спр].Выбрать();
Ermak
31.10.2012 11:39Ответ № 8
Сначала когда выбрал справочник ошибку выдал Объект не обнаружен "название справочника", выбрал другой пишет ошибку {Форма.Форма.Форма(11)}: Метод объекта не обнаружен (Следующий)
Пока Выборка.Следующий() Цикл
Mokey
31.10.2012 12:36Ответ № 9
Так а "Спр" что в Вашем случае? Я же по Вашему коду выше предположил, что Спр - поле ввода со списком выбора, а при выборе он содержит текст с названием справочника.

Возможно, надо так: ЭлементыФормы.Спр.Значение
Изменено 31.10.12 12:39:59
Ermak
31.10.2012 12:57Ответ № 10
Вы правильно поняли, но не работает. Я выложил обработку в архиве Скачивать файлы может только зарегистрированный пользователь!
Изменено 31.10.12 12:57:20
Mokey
31.10.2012 16:49Ответ № 11
Скачал, проверил, всё работает.
Единственное что:
Код 1C v 8.х
 
Процедура КнопкаВыполнитьНажатие(Кнопка)


К = ЭлементыФормы.Спр.Значение;
Выборка = Справочники[К].Выбрать();

Пока Выборка.Следующий() Цикл
Выборка=Выборка.ПолучитьОбъект(); ///ВОТ ТУТ КОСЯК!!!!!!!
Выборка.Удалить();
//НАДО ПЕРЕМЕННУЮ ПОМЕНЯТЬ!!!!
КонецЦикла;

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

Изменено 31.10.12 16:49:22
Ermak
31.10.2012 16:53Ответ № 12
Хорошо, спасибо!
Mokey
31.10.2012 16:53Ответ № 13
если бы сразу привели здесь свой код, то и вопрос быстрее бы решился. Я всегда говорю пользователям, что правильно поставленный вопрос в разы ускоряет решение проблемы.))
Удачи!
Ermak
31.10.2012 16:58Ответ № 14
У меня тоже работает но на один справочник ругается не понимаю почему, справочник называется "Вид потерь" и выдает ошибку

{Форма.Форма.Форма(6)}: Поле объекта не обнаружено (Вид потери)
Выборка = Справочники[К].Выбрать();
Mokey
31.10.2012 17:26Ответ № 15
Потому что имя справочника в конфигураторе не может иметь пробелов. Вы же синонимами заполняете список, а не именами справочников.
Попробуйте так:
Код 1C v 8.х
 СписокВыбора.Добавить(Справочник.Имя, Справочник.Синоним)   

Только в этом случае Вам надо будет искать в списке выбора значение по представлению
Изменено 31.10.12 17:28:40
Ermak
31.10.2012 17:43Ответ № 16
Спасибо!
Ermak
31.10.2012 17:43Ответ № 17
Вопрос закрыт!
Подсказка: Для быстрого перемещения к последнему ответу или к вопросу используйте или .
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.