Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Выбор группы из списка

Выбор группы из списка
Я
   21stas
 
14.01.18 - 08:49
Требуется сделать в обработке таблицу с номенклатурой - чтобы пользователи могли для каждой позиции номенклатуры выбрать другую группу.
Группы для скорости выбора хочется выбирать из выпадающего списка, а не из формы.
В обработку добавил табличную часть "Номенклатура", там два реквизита с типом НоменклатураСсылка - Нома и Родик. Эту табличную часть вынес на форму.
Поставил галочку "РежимВыбораИзСписка" у Родик.
Как теперь заполнить этот список?

Что-то в этом роде?
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Объект.Номенклатура["Родик"].СписокВыбора.Добавить...
 
 
   МимохожийОднако
 
1 - 14.01.18 - 09:31
Покажи запрос, как получаешь список.
   21stas
 
2 - 14.01.18 - 09:42
Вот так я заполняю таблицу на форме:
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    Номенклатура.Ссылка КАК Нома,
        |    Номенклатура.Родитель КАК Родик
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура";
    
    РезультатЗапроса = Запрос.Выполнить();
    ТЗ=РезультатЗапроса.Выгрузить();
    Объект.Номенклатура.Загрузить(ТЗ);

Примерно так хочу заполнять список для выбора:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    ПриОткрытииНаСервере();
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    Номенклатура.Ссылка КАК НоменклатураСсылка
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |ГДЕ
        |    Номенклатура.ЭтоГруппа";
    
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Объект.Номенклатура["Папочка"].СписокВыбора.Добавить(ВыборкаДетальныеЗаписи.НоменклатураСсылка);
    КонецЦикла;
КонецПроцедуры
   patya
 
3 - 14.01.18 - 09:48
А почему не Шнурок?
   21stas
 
4 - 14.01.18 - 09:59
(3) Имеется в виду 1С-Быстрый старт?
Да, проходил, но пишу мало, подзабывается. Где примерно там посмотреть?
   patya
 
5 - 14.01.18 - 10:04
Нет. Имеется в виду Родик и Папочка. В современных курсах так и рекомендуется?
   mistеr
 
6 - 14.01.18 - 10:36
(0) >Как теперь заполнить этот список?

В обработчике события НачалоВыбора для поля в ТЧ.
   breezee
 
7 - 14.01.18 - 16:40
(2) У вас на клиенте запрос не отработает 
  РезультатЗапроса = Запрос.Выполнить();
    ТЗ=РезультатЗапроса.Выгрузить();
    Объект.Номенклатура.Загрузить(ТЗ);
Это вообще ад, что будет, если у вас список реквизитов измениться в таблице?
>Процедура ПриОткрытии(Отказ)
    ПриОткрытииНаСервере();
АААААА

А по задаче - смотрите свойства элемента формы, кодить тут не надо.
   21stas
 
8 - 14.01.18 - 19:31
Хорошо, сделал функцию для заполнения списка групп номенклатуры- как теперь его использовать в виде списка выбора?

&НаСервере
Функция ЗаполнитьСписок()
    СписокГруппНоменклатуры=Новый СписокЗначений;
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    Номенклатура.Ссылка КАК НоменклатураСсылка
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |ГДЕ
        |    Номенклатура.ЭтоГруппа";
    
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        СписокГруппНоменклатуры.Добавить(ВыборкаДетальныеЗаписи.НоменклатураСсылка);
    КонецЦикла;
    Возврат СписокГруппНоменклатуры;
КонецФункции
   21stas
 
9 - 14.01.18 - 19:37
Попробовал вот такое. Список групп выдаётся для выбора (при этом ругается на использование модальных окон), но выбор ничего не меняет:

&НаКлиенте
Процедура НоменклатураРодикНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка=Ложь;
    Элемент = ЭтаФорма.ВыбратьИзСписка(ЗаполнитьСписокГруппНоменклатуры(), Элемент);
КонецПроцедуры

&НаСервере
Функция ЗаполнитьСписокГруппНоменклатуры()
    СписокГруппНоменклатуры=Новый СписокЗначений;
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    Номенклатура.Ссылка КАК НоменклатураСсылка
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |ГДЕ
        |    Номенклатура.ЭтоГруппа";
    
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        СписокГруппНоменклатуры.Добавить(ВыборкаДетальныеЗаписи.НоменклатураСсылка);
    КонецЦикла;
    Возврат СписокГруппНоменклатуры;
КонецФункции
   PiotrLoginov
 
10 - 14.01.18 - 20:31
ТС, перечитайте (7)
 
 Рекламное место пустует
   21stas
 
11 - 15.01.18 - 06:12
(10) В (7) несколько рекомендаций, речь идёт про "смотрите свойства элемента формы, кодить тут не надо"?
Да, при очередном просмотре нашёл - действительно, кодить не надо.
Спасибо.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует