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

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

Добавление реквизита табличной части в форму списка

Добавление реквизита табличной части в форму списка
Я
   d1ngo
 
15.10.18 - 17:25
Всем привет

Изучаю 1С и вот чтобы отойти от тех примеров которые рассказываются в книжках пытаюсь придумывать себе свои. Возможно это покажется бредом и совсем не нужным, но для практики я думаю подойдет.

Итак задача следующая:
Есть справочник и в нем есть табличная часть "Товары" в которой есть 3 реквизита "Товар", "Количество", "Цена". Предположим что в эту табличную часть всегда вносится только одно значение.

Вопрос:
Каким образом в форме списка на ровне с обычными реквизитами вывести реквизит табличной части "Товары" (Количество)?

Пытался "Произвольным запросом" не получается колонка не выводится.

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




**********************************************

А вот дальше каким образом вмешаться в выводящийся список и подменить там данные не понимаю.

**********************************************




    КонецЦикла;
 
 
   Fragster
 
1 - 15.10.18 - 18:03
левое соединение по ссылка = ссылка и номерстроки = 1
   d1ngo
 
2 - 15.10.18 - 23:15
Fragster не совсем если честно понял, я не давно учу 1С. Но вы наверно имеете ввиду запрос таким образом построить, с запросом то проблем нет через запрос выводятся все необходимые поля, но вот каким образом это в саму форму запихать(поле Количество) и присвоить ему необходимые данные.

Чтобы было более понятно, вот наделал скриншотов.

Форма элемента:
1. https://cloud.mail.ru/public/E3U8/3UczBCFv8

Форма списка:
2. https://cloud.mail.ru/public/Bec9/xnthhwWJS

А мне нужно достичь вот такого результата
3. https://cloud.mail.ru/public/4qjA/XGz4rV8eS


Вариант вывести дополнительное поле на форму не рассматривается это было бы слишком легко. Интересно попробовать можно ли это сделать как-нибудь по другому.
   RomanYS
 
3 - 15.10.18 - 23:24
(0) Первым делом лучше осознать что код просто ужасен (без шуток и преувеличений) и почему так:
Ссылка = Справочники.Номенклатура.НайтиПоКоду(Выборка.Код);
        Элемент = Ссылка.Товары.ВыгрузитьКолонку("Количество")[0];
   Dvoe4nik
 
4 - 15.10.18 - 23:38
(0) если в типовой УФ то сунуть в доп реквизит можно и спокойно выводи на список
   Dvoe4nik
 
5 - 15.10.18 - 23:39
(4) +при записи элемента, количествоСтрок
   Dvoe4nik
 
6 - 15.10.18 - 23:41
пардон ,не внял скринам. если один товарто в запросе суммируемое поле сделайс количеством
   Dvoe4nik
 
7 - 15.10.18 - 23:45
и вообще, какая то не надежная задача для воплощения, реализовать можно, вот только смысла нет,ИМХО
   d1ngo
 
8 - 16.10.18 - 00:52
RomanYS, как описано выше я еще только учусь. Поэтому много еще чего не знаю, это было написано исходя из тех вещей которые знаю. Если вам не сложно напишите как это сделать правильней на будущее буду знать.


Dvoe4nik, по поводу задачи согласен с тобой. Просто интересно стало можно ли такое реализовать. Смотрел много всяких уроков и там нигде такого не было всегда показывают только с обычными элементами расположенными на форме. Вот и решил попробовать.
   hhhh
 
9 - 16.10.18 - 01:15
(8) делай произвольным запросом
   hhhh
 
10 - 16.10.18 - 01:29
(8) вот это бред
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Номенклатура.Код
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура";
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        
        Ссылка = Справочники.Номенклатура.НайтиПоКоду(Выборка.Код);

нужно

 Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Номенклатура.Ссылка
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура";
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        
        Ссылка = Выборка.Ссылка;

и не надо искать по коду.
 
 Рекламное место пустует
   d1ngo
 
11 - 16.10.18 - 01:34
hhhh согласен ступил! как-то не подумал об этом совсем.

А по поводу произвольного запроса я пробовал делать вот так

ВЫБРАТЬ
    Номенклатура.Код,
    Номенклатура.Наименование,
    Номенклатура.Товары.(
        Количество
    ),
    Номенклатура.Склад
ИЗ
    Справочник.Номенклатура КАК Номенклатура


в консоли запросов все отрабатывает и выводятся нужные данные, но вот в форме поле "Количество" не появляется.
   hhhh
 
12 - 16.10.18 - 01:47
ВЫБРАТЬ
    Номенклатура.Ссылка,
    Номенклатура.Код,
    Номенклатура.Наименование,
    НоменклатураТовары.Количество,
    Номенклатура.Склад

ИЗ
    Справочник.Номенклатура КАК Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.Товары КАК НоменклатураТовары
ПО Номенклатура.Ссылка = НоменклатураТовары.Ссылка
И НоменклатураТовары.НомерСтроки = 1
   catena
 
13 - 16.10.18 - 06:29
Может быть стоит сначала все-таки отработать примеры из книжек и уже потом приступать к произвольным задачам?
   d1ngo
 
14 - 16.10.18 - 10:58
hhh спасибо, что потратил время и объяснил. Все получилось наконец токи.


catena примеры из книжек и видео когда читаешь(смотришь) как делают вроде все понятно. И примеры которые предлагается сделать самостоятельно основываются на только что пройденном материале и зачастую их решение уже было описано, и предлагается лишь самому это повторить или внести незначительные изменения. А вот когда отходишь от них получается что совсем ничего не знаешь и не можешь сделать.

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