Имя: Пароль:
1C
1С v8
присоединение третьей таблицы
0 lopolopserg
 
13.05.14
15:56
Ребят, что не так делаю? Две таблицы "Справочник.Номенклатура" и "Справочник.СпецификацииНоменклатуры" присоедини номарльно. и данные корреткно выгружаются. Теперь хочу табличку "Справочник.СпецификацииНоменклатуры.Состав" подцепить. Пробовал связывать по разному. Не зажглось. Вот код:

Функция Печать() Экспорт
    
    Макет = ПолучитьМакет("Макет");

    ОбластьШапки   = Макет.ПолучитьОбласть("Шапка");
    ОбластьДанные  = Макет.ПолучитьОбласть("Данные");
    //ОбластьПодвал  = Макет.ПолучитьОбласть("Подвал");
        
    ТабДок = Новый ТабличныйДокумент;
    
    ОбластьШапки.Параметры.Текст = "Спецификаця товара: " + СсылкаНаОбъектНом.Наименование;
    
    ТабДок.Вывести(ОбластьШапки);
    
    Запрос = новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                   |    Номенклатура.Код,
                   |    Номенклатура.Наименование,
                   |    Номенклатура.ЕдиницаХраненияОстатков.ЕдиницаПоКлассификатору,
                   |    Номенклатура.ЕдиницаХраненияОстатков.Коэффициент,
                   |    Номенклатура.ЕдиницаИзмеренияМест.ЕдиницаПоКлассификатору,
                   |    Номенклатура.ЕдиницаИзмеренияМест.Коэффициент,
                   |    Номенклатура.Ссылка
                   |ПОМЕСТИТЬ номенклатура
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура
                   |ГДЕ
                   |    Номенклатура.Ссылка = &Ссылка
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
                   |    номенклатура.Код,
                   |    номенклатура.Наименование,
                   |    номенклатура.ЕдиницаХраненияОстатковЕдиницаПоКлассификатору,
                   |    номенклатура.ЕдиницаХраненияОстатковКоэффициент,
                   |    номенклатура.ЕдиницаИзмеренияМестЕдиницаПоКлассификатору,
                   |    номенклатура.ЕдиницаИзмеренияМестКоэффициент,
                   |    СпецификацииНоменклатуры.Владелец.ЕдиницаХраненияОстатков.ЕдиницаПоКлассификатору,
                   |    СпецификацииНоменклатуры.Владелец.ЕдиницаХраненияОстатков.Коэффициент,
                   |    СпецификацииНоменклатуры.Владелец.ЕдиницаИзмеренияМест.ЕдиницаПоКлассификатору,
                   |    СпецификацииНоменклатуры.Владелец.ЕдиницаИзмеренияМест.Коэффициент,
                   |    СпецификацииНоменклатуры.НадписьНаМешке,
                   |    СпецификацииНоменклатуры.ИнформацияОМикронности,
                   |    СпецификацииНоменклатуры.ДопустимаяНагрузка,
                   |    номенклатура.Ссылка,
                   |    СпецификацииНоменклатуры.Владелец
                   |ПОМЕСТИТЬ спецНоме
                   |ИЗ
                   |    номенклатура КАК номенклатура
                   |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры КАК СпецификацииНоменклатуры
                   |        ПО номенклатура.Ссылка = СпецификацииНоменклатуры.Владелец
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    спецНоме.Код,
                   |    спецНоме.Наименование,
                   |    спецНоме.ЕдиницаХраненияОстатковЕдиницаПоКлассификатору,
                   |    спецНоме.ЕдиницаХраненияОстатковКоэффициент,
                   |    спецНоме.ЕдиницаИзмеренияМестЕдиницаПоКлассификатору,
                   |    спецНоме.ЕдиницаИзмеренияМестКоэффициент,
                   |    спецНоме.ВладелецЕдиницаХраненияОстатковЕдиницаПоКлассификатору,
                   |    спецНоме.ВладелецЕдиницаХраненияОстатковКоэффициент,
                   |    спецНоме.ВладелецЕдиницаИзмеренияМестЕдиницаПоКлассификатору,
                   |    спецНоме.ВладелецЕдиницаИзмеренияМестКоэффициент,
                   |    спецНоме.НадписьНаМешке,
                   |    спецНоме.ИнформацияОМикронности,
                   |    спецНоме.ДопустимаяНагрузка,
                   |    спецНоме.Ссылка,
                   |    СпецификацииНоменклатурыСостав.Материал,
                   |    СпецификацииНоменклатурыСостав.Количество,
                   |    СпецификацииНоменклатурыСостав.ДоляМатериала
                   |ИЗ
                   |    спецНоме КАК спецНоме,
                   |    Справочник.СпецификацииНоменклатуры.Состав КАК СпецификацииНоменклатурыСостав" ;
    
    
    Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
    Выборка = Запрос.Выполнить().Выбрать();
    Выборка.Следующий();
        
        ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);
        
        ОбластьДанные.Параметры.Код = Выборка.Код;
        ОбластьДанные.Параметры.Наименование = Выборка.Наименование;
        ОбластьДанные.Параметры.Упак = Выборка.ЕдиницаХраненияОстатковЕдиницаПоКлассификатору;
        ОбластьДанные.Параметры.Коф1 = Выборка.ЕдиницаХраненияОстатковКоэффициент;
        ОбластьДанные.Параметры.Меш = Выборка.ЕдиницаИзмеренияМестЕдиницаПоКлассификатору;
        ОбластьДанные.Параметры.Коф2 = Выборка.ЕдиницаИзмеренияМестКоэффициент;
        
        ОбластьДанные.Параметры.НадписьНаМешке = Выборка.НадписьНаМешке;
        ОбластьДанные.Параметры.ДопустимаяНагрузка = Выборка.ДопустимаяНагрузка;
        ОбластьДанные.Параметры.ИнформацияОМикронности = Выборка.ИнформацияОМикронности;
        
        ОбластьДанные.Параметры.Материал = Выборка.Материал;
        ОбластьДанные.Параметры.Количество = Выборка.Количество;
        ОбластьДанные.Параметры.ДоляМатериала = Выборка.ДоляМатериала;


    
        ТабДок.Вывести(ОбластьДанные);

    
    
    
    ТабДок.Показать();
    
КонецФункции // Печать
1 mikecool
 
13.05.14
15:57
а где тройная связь?
2 lopolopserg
 
13.05.14
15:58
(1) то есть?
3 mikecool
 
13.05.14
16:00
(2) Две таблицы "Справочник.Номенклатура" и "Справочник.СпецификацииНоменклатуры" присоедини номарльно. и данные корреткно выгружаются. Теперь хочу табличку "Справочник.СпецификацииНоменклатуры.Состав" подцепить
4 Grekos2
 
13.05.14
16:00
Может вот это условие
  Номенклатура.Ссылка = &Ссылка
  применить в двух запросах к подчиненным справочникам , а спр Номенклатура вообще не трогать ?
5 lopolopserg
 
13.05.14
16:01
(3) ну так "состав" это и есть третья табличка. Или мы о разном?
6 lopolopserg
 
13.05.14
16:03
(4) попробую.
7 Бледно Золотистый
 
13.05.14
16:04
(5) Таблички 3 шт, а слово СОЕДИНЕНИЕ одно.
8 lopolopserg
 
13.05.14
16:07
(7) так. совсем подустал.. Логика подсказывай что Д/Б три соединения. Так? А как тогда соединять. То есть что с чем ?
9 mikecool
 
13.05.14
16:09
(8) для трех таблиц требуется два соединения
10 lopolopserg
 
13.05.14
16:11
(9) Да, точно. То есть первое соединение у меня верно (работает). Дальше надо второе писать. Вот тут у меня и ступор. Надо соединить  "Справочник.Номенклатура" и "Справочник.СпецификацииНоменклатуры.Состав" ??
11 Крошка Ру
 
13.05.14
16:20
(0)
Может потому, что здесь нет соединения?:
|ИЗ
|    спецНоме КАК спецНоме,
|    Справочник.СпецификацииНоменклатуры.Состав КАК СпецификацииНоменклатурыСостав" ;
12 lopolopserg
 
13.05.14
16:22
(11) Спасибо. Как раз гадаю что с чем соединять там (((
Так не зажглось.


                   |ИЗ
                   |    спецНоме КАК спецНоме
                   |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры.Состав КАК СпецификацииНоменклатурыСостав
                   |        ПО спецНоме.Ссылка = СпецификацииНоменклатурыСостав.Ссылка
                   |ГДЕ
                   |    спецНоме.Ссылка = &Ссылка"
13 Ненавижу 1С
 
гуру
13.05.14
16:24
а так?

|ИЗ
                    |    номенклатура КАК номенклатура
                    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры КАК СпецификацииНоменклатуры
                    |        ПО номенклатура.Ссылка = СпецификацииНоменклатуры.Владелец
|        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры.Состав КАК СпецификацииНоменклатурыСостав
                    |        ПО СпецификацииНоменклатуры.Ссылка = СпецификацииНоменклатурыСостав.Ссылка
14 lopolopserg
 
13.05.14
16:27
(13) Увы((( не выгружает данные
15 Крошка Ру
 
13.05.14
16:30
(12) А зачем вот это?
|ГДЕ
|    спецНоме.Ссылка = &Ссылка"

Вед в первой ВТ(которая номенклатура) уже стоит это условие?
16 lopolopserg
 
13.05.14
16:31
(15) нет. я его удалил. вот как сейчас с последней подсказкой.

Функция Печать() Экспорт
    
    Макет = ПолучитьМакет("Макет");

    ОбластьШапки   = Макет.ПолучитьОбласть("Шапка");
    ОбластьДанные  = Макет.ПолучитьОбласть("Данные");
    //ОбластьПодвал  = Макет.ПолучитьОбласть("Подвал");
        
    ТабДок = Новый ТабличныйДокумент;
    
    ОбластьШапки.Параметры.Текст = "Спецификаця товара: " + СсылкаНаОбъектНом.Наименование;
    
    ТабДок.Вывести(ОбластьШапки);
    
    Запрос = новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                   |    Номенклатура.Код,
                   |    Номенклатура.Наименование,
                   |    Номенклатура.ЕдиницаХраненияОстатков.ЕдиницаПоКлассификатору,
                   |    Номенклатура.ЕдиницаХраненияОстатков.Коэффициент,
                   |    Номенклатура.ЕдиницаИзмеренияМест.ЕдиницаПоКлассификатору,
                   |    Номенклатура.ЕдиницаИзмеренияМест.Коэффициент,
                   |    Номенклатура.Ссылка
                   |ПОМЕСТИТЬ номенклатура
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура
                   |ГДЕ
                   |    Номенклатура.Ссылка = &Ссылка
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
                   |    номенклатура.Код,
                   |    номенклатура.Наименование,
                   |    номенклатура.ЕдиницаХраненияОстатковЕдиницаПоКлассификатору,
                   |    номенклатура.ЕдиницаХраненияОстатковКоэффициент,
                   |    номенклатура.ЕдиницаИзмеренияМестЕдиницаПоКлассификатору,
                   |    номенклатура.ЕдиницаИзмеренияМестКоэффициент,
                   |    СпецификацииНоменклатуры.Владелец.ЕдиницаХраненияОстатков.ЕдиницаПоКлассификатору,
                   |    СпецификацииНоменклатуры.Владелец.ЕдиницаХраненияОстатков.Коэффициент,
                   |    СпецификацииНоменклатуры.Владелец.ЕдиницаИзмеренияМест.ЕдиницаПоКлассификатору,
                   |    СпецификацииНоменклатуры.Владелец.ЕдиницаИзмеренияМест.Коэффициент,
                   |    СпецификацииНоменклатуры.НадписьНаМешке,
                   |    СпецификацииНоменклатуры.ИнформацияОМикронности,
                   |    СпецификацииНоменклатуры.ДопустимаяНагрузка,
                   |    номенклатура.Ссылка,
                   |    СпецификацииНоменклатуры.Владелец
                   |ПОМЕСТИТЬ спецНоме
                   |ИЗ
                   |    номенклатура КАК номенклатура
                   |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры КАК СпецификацииНоменклатуры
                   |        ПО номенклатура.Ссылка = СпецификацииНоменклатуры.Владелец
                   |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры.Состав КАК СпецификацииНоменклатурыСостав
                   |        ПО (СпецификацииНоменклатуры.Ссылка = СпецификацииНоменклатурыСостав.Ссылка)
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    спецНоме.Код,
                   |    спецНоме.Наименование,
                   |    спецНоме.ЕдиницаХраненияОстатковЕдиницаПоКлассификатору,
                   |    спецНоме.ЕдиницаХраненияОстатковКоэффициент,
                   |    спецНоме.ЕдиницаИзмеренияМестЕдиницаПоКлассификатору,
                   |    спецНоме.ЕдиницаИзмеренияМестКоэффициент,
                   |    спецНоме.ВладелецЕдиницаХраненияОстатковЕдиницаПоКлассификатору,
                   |    спецНоме.ВладелецЕдиницаХраненияОстатковКоэффициент,
                   |    спецНоме.ВладелецЕдиницаИзмеренияМестЕдиницаПоКлассификатору,
                   |    спецНоме.ВладелецЕдиницаИзмеренияМестКоэффициент,
                   |    спецНоме.НадписьНаМешке,
                   |    спецНоме.ИнформацияОМикронности,
                   |    спецНоме.ДопустимаяНагрузка,
                   |    спецНоме.Ссылка,
                   |    СпецификацииНоменклатурыСостав.Материал,
                   |    СпецификацииНоменклатурыСостав.Количество,
                   |    СпецификацииНоменклатурыСостав.ДоляМатериала
                   |ИЗ
                   |    спецНоме КАК спецНоме,
                   |    Справочник.СпецификацииНоменклатуры.Состав КАК СпецификацииНоменклатурыСостав" ;
    
    
    Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
    Выборка = Запрос.Выполнить().Выбрать();
    Выборка.Следующий();
        
        ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);
        
        ОбластьДанные.Параметры.Код = Выборка.Код;
        ОбластьДанные.Параметры.Наименование = Выборка.Наименование;
        ОбластьДанные.Параметры.Упак = Выборка.ЕдиницаХраненияОстатковЕдиницаПоКлассификатору;
        ОбластьДанные.Параметры.Коф1 = Выборка.ЕдиницаХраненияОстатковКоэффициент;
        ОбластьДанные.Параметры.Меш = Выборка.ЕдиницаИзмеренияМестЕдиницаПоКлассификатору;
        ОбластьДанные.Параметры.Коф2 = Выборка.ЕдиницаИзмеренияМестКоэффициент;
        
        ОбластьДанные.Параметры.НадписьНаМешке = Выборка.НадписьНаМешке;
        ОбластьДанные.Параметры.ДопустимаяНагрузка = Выборка.ДопустимаяНагрузка;
        ОбластьДанные.Параметры.ИнформацияОМикронности = Выборка.ИнформацияОМикронности;
        
        ОбластьДанные.Параметры.Материал = Выборка.Материал;
        ОбластьДанные.Параметры.Количество = Выборка.Количество;
        ОбластьДанные.Параметры.ДоляМатериала = Выборка.ДоляМатериала;


    
        ТабДок.Вывести(ОбластьДанные);

    
    
    
    ТабДок.Показать();
    
КонецФункции // Печать
17 lopolopserg
 
13.05.14
16:34
Теперь выгружаются не те данные в табличке "Состав"
18 Крошка Ру
 
13.05.14
16:40
(16)
Смотри.
Первая таблица (номенклатура): делается выборка из справочника Номенклатура с отбором по параметру &Ссылка и помещается в ВТ номенклатура
ВТ номенклатура соединяется со СпецификациейНоменклатуры и её табчастью Состав(ЛЕВОЕ СОЕДИНЕНИЕ), делается выборка, помещается в ВТ спецНоме.
И вот в последнем запросе у тебя стоит
|ИЗ
|    спецНоме КАК спецНоме,
|    Справочник.СпецификацииНоменклатуры.Состав КАК СпецификацииНоменклатурыСостав" ;

Здесь где соединение?
19 Крошка Ру
 
13.05.14
16:40
(18) Или ты просто опять старый код показываешь?
20 Крошка Ру
 
13.05.14
16:41
(19) А сорри, ступил
21 Крошка Ру
 
13.05.14
16:42
(16) убери последнюю строку в запросе
22 lopolopserg
 
13.05.14
16:43
(20) нет. код последний. И выгружаются "не те данные", то есть не с той позиции.
23 lopolopserg
 
13.05.14
16:45
(21) минуту. эту ?                     |    Справочник.СпецификацииНоменклатуры.Состав КАК СпецификацииНоменклатурыСостав" ;
24 Крошка Ру
 
13.05.14
16:45
(16) В принципе, последний запрос не нужен
Добавь строки
|    СпецификацииНоменклатурыСостав.Материал,
|    СпецификацииНоменклатурыСостав.Количество,
|    СпецификацииНоменклатурыСостав.ДоляМатериала
из третьего запроса во второй, убери третий и убери
|ПОМЕСТИТЬ спецНоме
из второго
25 lopolopserg
 
13.05.14
16:47
(24) сейчас попробую.
26 Крошка Ру
 
13.05.14
16:51
(25) И вопрос вдогонку: а конструктор запросов использовать не судьба? ))
27 lopolopserg
 
13.05.14
16:53
(24) СПАСИБО!!! с меня Месо и Пиво кусок !!!
Конструктор использую. но я только учусь ещё. это моя вторая пачатная форма. ...

Вот запрос.

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