Имя: Пароль:
1C
1С v8
Заполнить Табличную часть документа из Регистра сведений
,
0 sasha-asn
 
29.11.19
11:51
Здравствуйте уважаемые эксперты! Прошу вашей помощи, сильно не ругайтесь (учусь)...

Есть документ Инвентаризация, у него есть Табличная часть "Товары" у которой есть реквизит "МестоХраненияНаСкладе" с типом (Строка, Число). Есть Регистр Сведений "МестаХраненияНоменклатуры" с ресурсом "МестоХранения" (СправочникСсылка.МестаХранения).

Нужно так чтобы для всех позиций номенклатуры заполнялся реквизит "МестоХраненияНаСкладе" из Регистра Сведений "МестаХраненияНоменклатуры", физически Место хранения прописывается пользователем в карточке номенклатуры.

Я пытался сделать запрос с обработкой результата, но без успешно - запрос выводит Номенклатуру из Документа, но проблема в том что мой запрос так выводит весь список МестХранения не только для данной номенклатуры.

https://ibb.co/0JRRM3Y на скриншоте всё как делаю

-------------------------------------------------
ВЫБРАТЬ
    ИнвентаризацияТоваровНаСкладеТовары.Номенклатура,
    МестаХраненияНоменклатуры.МестоХранения
ИЗ
    Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладеТовары,
    РегистрСведений.МестаХраненияНоменклатуры КАК МестаХраненияНоменклатуры
ГДЕ
    ИнвентаризацияТоваровНаСкладеТовары.Ссылка = &Ссылка
1 Василий Алибабаевич
 
29.11.19
11:55
(0) Ничего сложного. Но! Нужно почитать либо за вложенные запросы и LeftJoin и RightJoin. Либо за пакетные и временные таблицы.
2 Галахад
 
гуру
29.11.19
11:56
ВЫБРАТЬ
    ИнвентаризацияТоваровНаСкладеТовары.Номенклатура,
    МестаХраненияНоменклатуры.МестоХранения
ИЗ
    Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладеТовары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаХраненияНоменклатуры КАК МестаХраненияНоменклатуры
        ПО ИнвентаризацияТоваровНаСкладеТовары.Номенклатура = МестаХраненияНоменклатуры.Номенклатура
            И ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Склад = МестаХраненияНоменклатуры.Склад
ГДЕ
    ИнвентаризацияТоваровНаСкладеТовары.Ссылка = &Ссылка
3 sasha-asn
 
29.11.19
11:57
мучаюсь второй день, читал, пробовал, как увижу правильное решение до меня тогда дойдет... предпологаю
4 hhhh
 
29.11.19
12:02
(3) ну пробуй ЛЕВОЕ СОЕДИНЕНИЕ тогда. Зачем через запятую пишешь эти все документы и регистры?
5 sasha-asn
 
29.11.19
12:04
(2) правильно! Спасибо огромное! надо дальше учить матчасть запросов
6 sasha-asn
 
29.11.19
12:08
Товарищи эксперты подскажите - запрос не заполняет Место хранения, мне кажется я не правильно написал обработку результата -


    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ИнвентаризацияТоваровНаСкладеТовары.Номенклатура,
        |    МестаХраненияНоменклатуры.МестоХранения
        |ИЗ
        |    Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладеТовары
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаХраненияНоменклатуры КАК МестаХраненияНоменклатуры
        |        ПО ИнвентаризацияТоваровНаСкладеТовары.Номенклатура = МестаХраненияНоменклатуры.Номенклатура
        |            И ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Склад = МестаХраненияНоменклатуры.Склад
        |ГДЕ
        |    ИнвентаризацияТоваровНаСкладеТовары.Ссылка = &Ссылка";
    
Запрос.УстановитьПараметр("Ссылка", Ссылка);
    
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
    
Товары.Загрузить(РезультатЗапроса);
7 Галахад
 
гуру
29.11.19
12:14
Наверное имена разные.
8 hhhh
 
29.11.19
12:15
(6) ты объясни на пальцах, зачем тебе регистр, если всё равно ты выбираешь место хранения из документа

ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Склад   ???
9 sasha-asn
 
29.11.19
12:23
(8) МестоХранения это РС, который хранит значение которое я хочу вставить в Реквизит Табличной Части - МестоХраненияНаСкладе.
Не могу понять, почему не получается? Плс подскажите как тогда правильно
10 Галахад
 
гуру
29.11.19
12:27
Почитай СП уже.

"Колонки таблиц совмещаются по именам."
11 hhhh
 
29.11.19
12:35
(9) ну это выкинь

  |            И ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Склад = МестаХраненияНоменклатуры.Склад
12 Галахад
 
гуру
29.11.19
12:38
(11) Гм. А надо ли? Места хранения на разных складах могут быть совершенно разными.
13 catena
 
29.11.19
12:48
(9)"Реквизит Табличной Части - МестоХраненияНаСкладе."
"|    МестаХраненияНоменклатуры.МестоХранения"

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