| 
    
            
         
         | 
    
    
  | 
Запрос к табичной части | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        GreenDay1986    
     16.02.14 
            ✎
    22:57 
 | 
         
        Запрос = Новый Запрос;
 
        Запрос.Текст = "ВЫБРАТЬ |Док.Номенклатура.Ссылка.Сертификаты.Имя КАК Имя |ИЗ Документ.РеализацияТоваровУслуг.Товары КАК Док |ГДЕ Док.Ссылка = &ЭтотОбъект"; Хочу выбратьиз табличной части документа реализации товаров и услуг Имена сертификатов. Сертификаты это табличная часть справочника Номенклатура. Собственно как лучше сделать, так не получается.  | 
|||
| 
    1
    
        ДенисЧ    
     16.02.14 
            ✎
    23:00 
 | 
         
        что именно не получается?     
         | 
|||
| 
    2
    
        GROOVY    
     16.02.14 
            ✎
    23:01 
 | 
         
        Номенклатура.Ссылка. - ты хоть понимаешь что это еще одно соединение? Нафига оно?
 
        (1) ЭтотОбъект у него не получается, так как в таблице не объект, а ссылка.  | 
|||
| 
    3
    
        GreenDay1986    
     16.02.14 
            ✎
    23:04 
 | 
         
        (2) Номенклатуру он выбирает из табличной части документа. Если скажем написать |Док.Номенклатура.Ссылка КАК Имя - то наименование номенклатуры он сообщает. Собственно мне не наименование нужно а наименование сертификатов соответствующих номенклатуре. Они лежат в таблице справочника Номенклатура 
 
        Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ |Док.Номенклатура.Сертификаты.Имя КАК Имя |ИЗ Документ.РеализацияТоваровУслуг.Товары КАК Док |ГДЕ Док.Ссылка = &ЭтотОбъект"; Так тоже не работает  | 
|||
| 
    4
    
        GreenDay1986    
     16.02.14 
            ✎
    23:06 
 | 
         
        Или напрямую нельзя обращаться к табличной части справочника из документа? Хотелось бы узнать     
         | 
|||
| 
    5
    
        ДенисЧ    
     16.02.14 
            ✎
    23:06 
 | 
         
        в ЭтотОбъект что передаёшь?     
         | 
|||
| 
    6
    
        GreenDay1986    
     16.02.14 
            ✎
    23:07 
 | 
         
        Запрос.УстановитьПараметр("ЭтотОбъект", ЭтотОбъект.Ссылка);     
         | 
|||
| 
    7
    
        GreenDay1986    
     16.02.14 
            ✎
    23:07 
 | 
         
        (6) к (5)     
         | 
|||
| 
    8
    
        GreenDay1986    
     16.02.14 
            ✎
    23:08 
 | 
         
        То есть выбираю номенклатуру из табличной части документа в котором нахожусь. Саму номенклатуру запросом выбирает, а к ее табличной части обратиться не могу, умом слабоват:(     
         | 
|||
| 
    9
    
        GROOVY    
     16.02.14 
            ✎
    23:08 
 | 
         
        (6) И зачем "ЭтотОбъект.Ссылка"? Когда в контексте "Ссылка" достаточно. Кто так кодить учит?     
         | 
|||
| 
    10
    
        ДенисЧ    
     16.02.14 
            ✎
    23:09 
 | 
         
        Может, Док.Номенклатура.Сертификаты.Наименование?     
         | 
|||
| 
    11
    
        GROOVY    
     16.02.14 
            ✎
    23:09 
 | 
         
        Объект записан?     
         | 
|||
| 
    12
    
        ДенисЧ    
     16.02.14 
            ✎
    23:09 
 | 
         
        (9) Может, у него объект есть, а не ссылка....     
         | 
|||
| 
    13
    
        GROOVY    
     16.02.14 
            ✎
    23:10 
 | 
         
        (12) В 8.3 - ЭтотОбъект вообще будет контекстом модуля, о чем ты говоришь?!     
         | 
|||
| 
    14
    
        ДенисЧ    
     16.02.14 
            ✎
    23:11 
 | 
         
        (13) Может, у него какая-то функция, которая получает объект, а не ссылку? Всего текста мы же не видим?     
         | 
|||
| 
    15
    
        GreenDay1986    
     16.02.14 
            ✎
    23:11 
 | 
         
        (9) Я не кодер, я админ - самоучка ) 
 
        (11) Да, все записано и проведено  | 
|||
| 
    16
    
        GreenDay1986    
     16.02.14 
            ✎
    23:12 
 | 
         
        (10) Нет. В справочнике Номенклатурав ТЧ сертификаты реквизит "Имя".     
         | 
|||
| 
    17
    
        GROOVY    
     16.02.14 
            ✎
    23:13 
 | 
         
        (16) Что тогда не получается? Что запрос возвращает?     
         | 
|||
| 
    18
    
        GreenDay1986    
     16.02.14 
            ✎
    23:13 
 | 
         
        Да нет, хочу имена сертификатов получить запросом, собственно функции больше нет     
         | 
|||
| 
    19
    
        GreenDay1986    
     16.02.14 
            ✎
    23:16 
 | 
         
        К примеру если Запрос = Новый Запрос;
 
        Запрос.Текст = "ВЫБРАТЬ |Док.Номенклатура.Код КАК Имя |ИЗ Документ.РеализацияТоваровУслуг.Товары КАК Док |ГДЕ Док.Ссылка = &ЭтотОбъект"; то коды всех позиции номенклатуры в табличной части Если Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ |Док.Номенклатура.Сертификаты.Имя КАК Имя |ИЗ Документ.РеализацияТоваровУслуг.Товары КАК Док |ГДЕ Док.Ссылка = &ЭтотОбъект"; то ничего Я и подумал, к реквизитам справочника можно обратиться а к реквизитам ТЧ его же не получается. Мож написал что не так?  | 
|||
| 
    20
    
        GROOVY    
     16.02.14 
            ✎
    23:19 
 | 
         
        мне кажется, что запрос выдает вам вложенную в результат таблицу.     
         | 
|||
| 
    21
    
        GROOVY    
     16.02.14 
            ✎
    23:20 
 | 
         
        В оригинале запрос выглядит как-то так:
 
        "ВЫБРАТЬ | Документ1.Номенклатура.Сертификаты.( | Имя | ) |ИЗ | Документ.Документ1 КАК Документ1 |ГДЕ | Документ1.Ссылка = &Ссылка";  | 
|||
| 
    22
    
        ДенисЧ    
     16.02.14 
            ✎
    23:20 
 | 
         
        (20) С какого перепою?     
         | 
|||
| 
    23
    
        GROOVY    
     16.02.14 
            ✎
    23:22 
 | 
         
        (22) Обращение к вложенной таблице.     
         | 
|||
| 
    24
    
        ДенисЧ    
     16.02.14 
            ✎
    23:22 
 | 
         
        (23) в (0) никакой вложенной таблицы нет. И запрос написан корректно. Некорректно поставлен вопрос.     
         | 
|||
| 
    25
    
        GreenDay1986    
     16.02.14 
            ✎
    23:22 
 | 
         
        Получается элементу справочника Номенклатура соответствует скажем 3 сертификата, мож он таблицу в результат выводить не хочет     
         | 
|||
| 
    26
    
        GROOVY    
     16.02.14 
            ✎
    23:24 
 | 
         
        (24) Я тебе секрет открою:
 
        Док.Номенклатура.Сертификаты.Имя = Док.Номенклатура.Сертификаты.(Имя) Что дает нам вложенную таблицу при условии что "Сертификаты" - это ТЧ справочника.  | 
|||
| 
    27
    
        GROOVY    
     16.02.14 
            ✎
    23:25 
 | 
         
        (25) Повторю вопрос: Так что в результате запроса у нас? Он пустой? Запрос с ошибкой вываливается? Сколько строк в результате запроса?     
         | 
|||
| 
    28
    
        GreenDay1986    
     16.02.14 
            ✎
    23:28 
 | 
         
        (27) Пишу сообщить(Рез.Имя) собственно ничего не сообщает     
         | 
|||
| 
    29
    
        GROOVY    
     16.02.14 
            ✎
    23:30 
 | 
         
        Рез.Количество() + отладчик ответит на наши вопросы.     
         | 
|||
| 
    30
    
        GreenDay1986    
     16.02.14 
            ✎
    23:36 
 | 
         
        Интересно к примеру 
 
        Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ |Ном.Сертификаты.ГоденДо КАК Имя |ИЗ Справочник.Номенклатура КАК Ном |ГДЕ Ном.Ссылка = &ЭтотОбъект"; Запрос.УстановитьПараметр("ЭтотОбъект", Справочники.Номенклатура.НайтиПоКоду("09147")); также ничего не выдает а Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ |Ном.ГоденДо КАК Имя |ИЗ Справочник.Номенклатура.Сертификаты КАК Ном |ГДЕ Ном.Ссылка = &ЭтотОбъект"; Запрос.УстановитьПараметр("ЭтотОбъект", Справочники.Номенклатура.НайтиПоКоду("09147")); выдает сроки годности тех же сертификатов. То есть напрямую все же видимо обращаться нельзя.  | 
|||
| 
    31
    
        GreenDay1986    
     16.02.14 
            ✎
    23:37 
 | 
         
        (29) Отадчик еще не изучал, надо добраться 
 
        В (30) по-моему запросы идентичны, а результат разный. Или неидентичны?  | 
|||
| 
    32
    
        GROOVY    
     16.02.14 
            ✎
    23:38 
 | 
         
        (31) Не идентичны. В (30) запрос к одной таблице, а выше к 3м.     
         | 
|||
| 
    33
    
        GreenDay1986    
     16.02.14 
            ✎
    23:41 
 | 
         
        (32) Результат теоретически должен быть одинаков. Видимо ошибаюсь.     
         | 
|||
| 
    34
    
        GROOVY    
     16.02.14 
            ✎
    23:53 
 | 
         
        (33) Нет. Не одинаков. Даже количество таблиц к которым обращаются эти запросы разное.     
         | 
|||
| 
    35
    
        GreenDay1986    
     17.02.14 
            ✎
    00:20 
 | 
         
        Так и не сообразил как сделать. Может подскажете как в кострукцию для каждого - ВЫБРАТЬ РАЗЛИЧНЫЕ запихать 
 
        Для Каждого ст ИЗ Сертификаты Цикл Для Каждого стр Из ст.Номенклатура.Сертификаты Цикл ФайлКартинка = Новый COMОбъект("WIA.ImageFile"); ФайлКартинка.LoadFile(стр.ПолноеИмя); ДОбавляем для каждой строки ТЧ товары картинки с сертификатами по имени. Однако некоторые сертификаты сответствуют нескольким номенклатурам. Собственно есть какая -то констукция позволяющая исключить дублирование данных картинок для разных строк номенклатуры  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |