Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Форма Номенклатуры + РегистрСведенийСписок

Форма Номенклатуры + РегистрСведенийСписок
Я
   Lin
 
21.05.20 - 11:54
Доброго времени суток! Есть форма списка номенклатуры и следующая задача:

1.При активации строки списка номенклатуры необходимо ограничить отображение списка аналогов только по выбранной номенклатуре.
2.В табличное поле Аналоги добавить для измерения Аналог колонки Артикул (реквизит Артикул справочника Номенклатура), Остаток (данные брать из регистра Остатки номенклатуры).
3.В табличное поле Аналоги выводить только аналоги с остатками.

Запрос на поиск информации составлен, данные ищет корректно, вопрос в следующем, как поместить результаты выборки в РегистрСведенийСписок.Аналоги.
Подскажите, пожалуйста,  что еще следует сделать?
   Ёпрст
 
1 - 21.05.20 - 12:24
(0) дык динамический список с твоим запросом и привет
   Ёпрст
 
2 - 21.05.20 - 12:24
ставишь только параметры свои в при активизации строки, если они поменялись
   Lin
 
3 - 21.05.20 - 12:59
Немного не поняла... вот что у меня на форме (обычная форма)

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

        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Сообщить("Аналог выделенной номенклатуры " + ВыборкаДетальныеЗаписи.Аналог
                        +" артикул аналога "
                        +ВыборкаДетальныеЗаписи.Артикул
                        +" остаток аналога - "  
                        + ВыборкаДетальныеЗаписи.КоличествоОстаток) ;
          КонецЦикла;
    КонецПроцедуры 

второй реквизит формы ТабличноеПолеАналоги с типом РегистрСведенийСписок.Аналоги. Со старта там было 2 колонки "Номенклатура" и "Аналог". Добавила еще 2 колонки "Артикул" и "Остаток"
   Ненавижу 1С
 
4 - 21.05.20 - 13:05
(3) запрос грузить в таблицу значений, отображать ее
параметр поменять на:

|ГДЕ
                           |    спрНоменклатура.Ссылка = &Ссылка" ;
        
        Запрос.УстановитьПараметр("Ссылка", ЭлементыФормы.СправочникСписок.ТекущиеДанные.Ссылка);

впрочем явное соединение со справочником номенклатура можно выкинуть и писать

|ГДЕ
                           |    Аналоги.Номенклатура = &Ссылка" ;
   Lin
 
5 - 21.05.20 - 13:16
(4) Точно, спасибо, поправила запрос

В первый раз кинула все в таблицу значений, и все работало, но попросили все таки через РегистрСведенийСписок сделать, применение отбора необязательно
   Ёпрст
 
6 - 21.05.20 - 13:21
(5) если нужен список регистра сведений на форме, то тогда запросом получать остатки и все измерения этого регистра,ставить отбор по этим измерениям, в ПриПолученииДанных проставлять колону с остатком
   D_E_S_131
 
7 - 21.05.20 - 13:22
(5) Добавляешь реквизит формы Динамический список. Основную таблицу ему ставишь "РегистрСведений.Аналоги". Так же делаешь соединение с таблицей остатков (можно "левое", "КоличествоОстаток" через ЕстьNull() обернуть и условие наложить уже в настройках дин.списка). Вывести дин.список на форму и устанавливать ему параметр при активизации строки.
   Ёпрст
 
8 - 21.05.20 - 13:24
(7) у ней обычные формы
   Ёпрст
 
9 - 21.05.20 - 13:24
как оказалось
   Lin
 
10 - 21.05.20 - 17:54
(6) Спасибо большое Ёпрст, все получилось!)

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