Имя: Пароль:
1C
1C 7.7
v7: Создать запрос к табличной части документа
0 AnisaL
 
24.10.13
14:50
Добрый день!
Подскажите пожалуйста как сделать запрос к табличной части документа? Конфигурация Торговля и склад 7.7.
1 Квиджибо
 
24.10.13
14:51
Можно руками, можно конструктором.
2 zak555
 
24.10.13
14:51
почему у регистру не хочешь сдеалть ?
3 Ёпрст
 
24.10.13
14:52
(0) можно
4 VladZ
 
24.10.13
14:53
(0) А что мешает?
5 AnisaL
 
24.10.13
14:53
(1) а как проще?
6 AnisaL
 
24.10.13
14:55
(4) нужно по не проведенным заявкам покупателей сделать запрос: у клиента была заявка по одной номенклатуре непроведенная, они не могут ее найти сейчас. Просят написать отчет по непроведенным заявкам с отбором по номенклатуре.
7 Mikeware
 
24.10.13
14:55
(5) программиста позвать.
8 Mikeware
 
24.10.13
14:56
(6) за пять минут можно было уже написаить и найти
9 AnisaL
 
24.10.13
14:57
(7) я сама программист.. только в 8-ке.. не помню как в 7-ке делается запрос к ТЧ, и вообще синтаксис запроса забыла. Как выводить помню, точнее недавно делала
10 ptiz
 
24.10.13
14:57
Конструктор отчета есть в конфигураторе
11 palpetrovich
 
24.10.13
15:02
(9) примерно так:
|Док = Документ.Заявка.ТекущийДокумент;
|Тов = Документ.Заявка.Товар;
12 Mikeware
 
24.10.13
15:04
(9) вы себе льстите...
13 AnisaL
 
24.10.13
15:04
(11) а не пишется выражение "ИЗ"?
14 1dvd
 
24.10.13
15:06
(13) Переходите на прямые запросы, если с восьмёрошнми запросами у вас проблем нет
15 AnisaL
 
24.10.13
15:07
(11) в заявке одна табличная часть, как к ней обратится?
Документ.Заявка.ТабличнаяЧасть ?
16 AnisaL
 
24.10.13
15:08
(14) с 8-ными все нормально, а прямые запросы что значит?
17 aka AMIGO
 
24.10.13
15:08
(15) нет. Одна табличная часть = уникальный реквизит
18 aka AMIGO
 
24.10.13
15:09
Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Заказ = Документ.Заказ.ТекущийДокумент;
    |Клиент = Документ.Заказ.Клиент;
    |Товар = Документ.Заказ.Товар;
    |Количество = Документ.Заказ.Количество;
    |Группировка Заказ;
    |Условие(Товар=ВыбТовар);
    |"//}}ЗАПРОС
    ;
19 AnisaL
 
24.10.13
15:10
(18) А т.е. к товару на прямую можно обращаться: Документ.Заявка.Товар
20 aka AMIGO
 
24.10.13
15:12
(19) да, поскольку каждый реквизит, что в ТЧ, что на форме - только один на весь документ
21 AnisaL
 
24.10.13
15:13
(20) понятно) спасибо!
22 palpetrovich
 
24.10.13
15:17
(21) не забудь про "непроведенных":

    |Период с ВыбНачПериода по ВыбКонПериода;
    |ОбрабатыватьДокументы НеПроведенные;
    |Док = Документ.Заявка.ТекущийДокумент;
    |Тов = Документ.Заявка.Товар;
    |Группировка Док;
23 AnisaL
 
25.10.13
08:07
(22) Спасибо) Вот что у меня получилось
         Запрос = СоздатьОбъект("Запрос");
        ТекстЗапроса =
        "//{{ЗАПРОС(РасходнаяНакладная)

        |Период с Дата1 по Дата2;
        |ОбрабатыватьДокументы НеПроведенные;
        |ДатаДок            = Документ.ЗаявкаПокупателя.ДатаДок;
        |НомерНакл          = Документ.ЗаявкаПокупателя.НомерДок;
        |Контрагент         = Документ.ЗаявкаПокупателя.Контрагент;
        |Товар              = Документ.ЗаявкаПокупателя.Номенклатура;
        |Группировка НомерНакл Упорядочить по ДатаДок;
        |Условие (Товар в Товар);
        |";//}}ЗАПРОС



    Запрос.УстановитьПараметр("Дата1",    Дата1);     //Дата
    Запрос.УстановитьПараметр("Дата2",    Дата2);     //Дата
    Запрос.УстановитьПараметр("Товар",    Товар);     //Номенклатура

В итоге программа выдает ошибку:
Запрос.УстановитьПараметр("Дата1",    Дата1);     //Дата
{\\SRV1C\CONFIG1C\КОПИЯ ТРУБОСНАБ 15-1212\МКООМЕРЦШТ091006\EXTFORMS\ОТЧЕТ ПО НЕПРОВЕДЕННЫМ ЗАЯВКАМ.ERT(36)}: Поле агрегатного объекта не обнаружено (УстановитьПараметр)
24 AnisaL
 
25.10.13
08:13
(23) + Т.е. что-то с установкой параметров не так у меня
25 1dvd
 
25.10.13
08:14
(24) их не надо устанавливать они автоматически берутся из контекста
26 AnisaL
 
25.10.13
08:20
(25) аа, понятно) спасибо
27 Стрелок
 
25.10.13
08:31
это называется "не знал да забыл". как можно "забыть" так чтобы не вспомнить просто глянув на пример? бред какой то
28 AnisaL
 
25.10.13
08:53
вот опять вышла ошибка
         Запрос = СоздатьОбъект("Запрос");
        ТекстЗапроса =
        "//{{ЗАПРОС(РасходнаяНакладная)

        |Период с Дата1 по Дата2;
        |ОбрабатыватьДокументы НеПроведенные;
        |ДатаДок            = Документ.ЗаявкаПокупателя.ДатаДок;
        |НомерНакл          = Документ.ЗаявкаПокупателя.НомерДок;
        |Контрагент         = Документ.ЗаявкаПокупателя.Контрагент;
        |Номенклатура              = Документ.ЗаявкаПокупателя.Номенклатура;
        |Группировка ДатаДок Упорядочить по ДатаДок
        |Условие (Номенклатура в Товар);
        |";//}}ЗАПРОС
29 AnisaL
 
25.10.13
08:55
(28) + Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{\\SRV1C\CONFIG1C\КОПИЯ ТРУБОСНАБ 15-1212\МКООМЕРЦШТ091006\EXTFORMS\ОТЧЕТ ПО НЕПРОВЕДЕННЫМ ЗАЯВКАМ.ERT(41)}: Условие (Номенклатура в Товар <<?>> );
Запрос[9] : Ошибка в условии
30 1dvd
 
25.10.13
08:59
(29) точку с запятой забыла
31 Стрелок
 
25.10.13
08:59
что такое "товар"?
32 mishaPH
 
модератор
25.10.13
09:00
(9) в 7ке есть для 7ки вполне приличный конструктор запросов.
33 mishaPH
 
модератор
25.10.13
09:01
|Группировка ДатаДок Упорядочить по ДатаДок

зачем в выборке доков если она штатно идет по дате это указывать?
34 mishaPH
 
модератор
25.10.13
09:01
(31) наверное это реквизит для выборки товара из группы
35 mishaPH
 
модератор
25.10.13
09:02
а так да, (30) прав
36 AnisaL
 
25.10.13
09:09
(33) ага, убрала я группировку по ДатаДок, и тогда ошибок не стало)
37 1dvd
 
25.10.13
09:11
(36) а надо было всего один символ добавить
38 ЧеловекДуши
 
25.10.13
09:16
(23) Жги еще :)
39 ЧеловекДуши
 
25.10.13
09:17
+(29) Попробуй почитать вот этот материал :)
http://yadi.sk/d/yPX85BHLBYMEP
40 ЧессМастер
 
25.10.13
09:29
(21) не забудь про помеченные на удаление документы (заявку можно сделать непроведенной а можно и пометить на удаление:

    |Период с ВыбНачПериода по ВыбКонПериода;
    |ОбрабатыватьДокументы Все; // для того чтобы попадали помеченные на удаление
    |ОбрабатыватьДокументы НеПроведенные;
    |Док = Документ.Заявка.ТекущийДокумент;
    |Тов = Документ.Заявка.Товар;
    |Группировка Док;
41 palpetrovich
 
25.10.13
12:42
(40) да ладно? помеченный на удаление прекрасно себе попадет в непроведенные, не вооди в заблуждение :)