Имя: Пароль:
1C
1С v8
Как связать две таблицы значений по индексу?
,
0 SherifSP
 
11.07.12
22:23
Как связать две таблицы значений по индексу?
1 andrewks
 
11.07.12
22:24
запросом
2 SherifSP
 
11.07.12
22:25
(1)Пример запроса есть? Впервые с таким столкнулся(
3 SherifSP
 
11.07.12
22:30
"ВЫБРАТЬ
           |    ТаблицаДвижений.Номенклатура,
           |    ТаблицаДвижений.СуммаУчета
           |ПОМЕСТИТЬ ТаблицаДвижений
           |ИЗ
           |    ТаблицаДвижений КАК ТаблицаДвижений
           |
           |ОБЪЕДИНИТЬ ВСЕ
           |
           |ВЫБРАТЬ
           |    ТаблицаСписания.Номенклатура,
           |    ТаблицаСписания.Стоимость
           |ИЗ
           |    ТаблицаСписания КАК ТаблицаСписания"
4 SherifSP
 
11.07.12
22:30
Мой запрос
5 andrewks
 
11.07.12
22:33
(3) и что с чем ты хочешь связать? по номенклатуре?
6 Ненавижу 1С
 
гуру
11.07.12
22:34
пример случая есть?
7 Ненавижу 1С
 
гуру
11.07.12
22:38
вариантов ДВА
8 SherifSP
 
11.07.12
22:38
Это одна таблица значений

НаборДвижений = Движения.Продажи;
ТаблицаДвижений = НаборДвижений.Выгрузить();

Вот вторая таблица значений

ТаблицаСписания = Движения.СписанныеТовары.Выгрузить();


Есть вот такой цикл, в котором я перебираю строки первой таблицы значений.

Для каждого Строка из ТаблицаДвижений Цикл
               
  Строка.СуммаУчета = ТаблицаСписания[0].Стоимость;
               
КонецЦикла;

И присваиваю Значению Сумма учета - значение Стоимости второй таблицы значений

Но загвоздка в том,что сколько не было бы у меня строк в первой таблице значений

Всегда будит присваиватся одно значение второй таблицы значений

ТаблицаСписания[0].Стоимость;

Мне нужно для второй строки чтобы была не 0, а ТаблицаСписания[1].Стоимость;
9 Ненавижу 1С
 
гуру
11.07.12
22:39
использовать СОЕДИНЕНИЕ
10 SherifSP
 
11.07.12
22:40
(9) В запросе?
11 SherifSP
 
11.07.12
22:42
Можно только по 1 значению соединить?

"ВЫБРАТЬ
           |    ТаблицаДвижений.Номенклатура,
           |    ТаблицаДвижений.СуммаУчета
           |ПОМЕСТИТЬ ТаблицаДвижений
           |ИЗ
           |    ТаблицаДвижений КАК ТаблицаДвижений
           |        ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаСписания КАК ТаблицаСписания
           |        ПО ТаблицаДвижений.СуммаУчета = ТаблицаСписания.Стоимость"
12 SherifSP
 
11.07.12
22:43
Или надо полностью воспроизводить все данные таблицы значений?
13 andrewks
 
11.07.12
22:44
выбрать * поместить ВремТабДвижений из &ТаблицаДвижений как ТаблицаДвижений
;
выбрать * поместить ВремТабСписания из &ТаблицаСписания как ТаблицаСписания
;
выбрать
ВремТабДвижений.Номенклатура,
сумма(ВремТабДвижений.СуммаУчета),
сумма(ВремТабСписания.Стоимость)
из ВремТабДвижений
полное соединение
ВремТабСписания
по (ВремТабДвижений.Номенклатура=ВремТабСписания.Номенклатура)
группировать по
ВремТабДвижений.Номенклатура
14 andrewks
 
11.07.12
22:46
выбрать
естьnull(ВремТабДвижений.Номенклатура,ВремТабСписания.Номенклатура)
15 SherifSP
 
11.07.12
22:47
А есть другие методы не запросом?
16 SherifSP
 
11.07.12
22:47
Мб счетчик какой?
17 SherifSP
 
11.07.12
23:26
(13) Ругается на Поле не найдено
ВремТабДвижений.Номенклатура,
18 andrewks
 
11.07.12
23:37
(17) вопрос к тебе
19 SherifSP
 
12.07.12
10:11
(13)Параметры запросу нужно устанавливать?
20 SUA
 
12.07.12
10:19
(8)
Для каждого Строка из ТаблицаДвижений Цикл
               
  Строка.СуммаУчета = ТаблицаСписания.НайтиСтроки(Новый Структура("Номенклатура",Строка.Номенклатура))[0].Стоимость;
               
КонецЦикла;

ну и плюс учесть что можно не найти такую строку итп...
запросом проще
21 SherifSP
 
12.07.12
10:43
Запрос = Новый Запрос;
           МенеджерВремТаблиц = Новый МенеджерВременныхТаблиц;
           Запрос.МенеджерВременныхТаблиц = МенеджерВремТаблиц;
           
           Запрос.Текст =
           
           "ВЫБРАТЬ * поместить ВремТабДвижений из &ТаблицаДвижений как ТаблицаДвижений;
           |ВЫБРАТЬ * поместить ВремТабСписания из &ТаблицаСписания как ТаблицаСписания;
           |ВЫБРАТЬ
           |ВремТабДвижений.Номенклатура,
           |сумма(ВремТабДвижений.СуммаУчета),
           |сумма(ВремТабСписания.Стоимость)
           |ИЗ ВремТабДвижений
           |полное соединение
           |ВремТабСписания
           |ПО (ВремТабДвижений.Номенклатура=ВремТабСписания.Номенклатура)
           |СГРУППИРОВАТЬ ПО
           |ВремТабДвижений.Номенклатура";
            Запрос.УстановитьПараметр("ТаблицаДвижений", ТаблицаДвижений);
            Запрос.УстановитьПараметр("ТаблицаСписания", ТаблицаСписания);
            Выборка = Запрос.Выполнить().Выбрать();
            Для Каждого стр ИЗ Выборка Цикл
               
            КонецЦикла;
22 SherifSP
 
12.07.12
10:44
В Цикле мне что присваивать?
23 SherifSP
 
12.07.12
11:37
Сделал счетчиком)
24 SherifSP
 
12.07.12
13:48
Как в запросе наложить условие по регистратору?

ГДЕ
|ПродажиСебестоимость.Регистратор = &ОтчетОРозничныхПродажах
25 SherifSP
 
12.07.12
13:50
Так ругается
26 SherifSP
 
12.07.12
14:14
Что нету никаких вариантов?