Имя: Пароль:
1C
1С v8
Запрос к табичной части
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(стр.ПолноеИмя);

ДОбавляем для каждой строки ТЧ товары картинки с сертификатами по имени. Однако некоторые сертификаты сответствуют нескольким номенклатурам. Собственно есть какая -то констукция позволяющая исключить дублирование данных картинок для разных строк номенклатуры