Имя: Пароль:
1C
 
Не заполняется временная таблица в запросе, из таблицы значений
0 paren777
 
08.10.14
18:27
Процедура РасчетОстатковЗапрос()
    Тз1 = ЭтаФорма.Объект.Товары.Выгрузить();
    ТЗ = Новый ТаблицаЗначений;
    ОписаниеТиповНоменклатура = Новый ОписаниеТипов("СправочникСсылка.Номенклатура");
    ОписаниеТиповСклады = Новый ОписаниеТипов("СправочникСсылка.Склады");
    ТЗ.Колонки.Добавить("Номенклатура", ОписаниеТиповНоменклатура);
    ТЗ.Колонки.Добавить("Склады", ОписаниеТиповСклады);
    
    Для Каждого Стр Из Тз1 Цикл
        Добавить = ТЗ.Добавить();
        Номенклатура = Стр.Номенклатура.Ссылка;
        Склады = Стр.Склад.Ссылка;
        Добавить.Номенклатура = Номенклатура;
        Добавить.Склады = Склады;
    КонецЦикла;
    
    
    Запрос = Новый запрос;
    Запрос.УстановитьПараметр("ТЗ", ТЗ);
    Запрос.Текст = "ВЫБРАТЬ
                   |    ТЗ.Номенклатура,
                   |    ТЗ.Склады
                   |ПОМЕСТИТЬ ТЗ
                   |ИЗ
                   |    &ТЗ КАК ТЗ
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    ТЗ.Номенклатура,
                   |    ТЗ.Склады
                   |ИЗ
                   |    ТЗ КАК ТЗ";
                   Запрос.Выполнить();
КонецПроцедуры
1 Ёпрст
 
08.10.14
18:30
Стр.Склад.Ссылка Это чего за извращение ?
2 HEKPOH
 
08.10.14
18:31
Помести ТЗ в МенеджерВременныхТаблиц
3 Ёпрст
 
08.10.14
18:31
если че, табличная часть товары и так типизирована, не надо таким извратом заниматься вообще
4 palpetrovich
 
08.10.14
18:31
а тут "ЭтаФорма.Объект.Товары" какие типы? попахивает перестраховкой
5 palpetrovich
 
08.10.14
18:32
(2) нафейхуа?
6 Ёпрст
 
08.10.14
18:32
т.е создавть еще одну тз и добавлять данные из другой - лишнее.
7 palpetrovich
 
08.10.14
18:33
и кста, это тоже как-бы некрасиво выглядит
ПОМЕСТИТЬ ТЗ ИЗ &ТЗ КАК ТЗ
лучше так
ПОМЕСТИТЬ ВТ ИЗ &ТЗ КАК ТЗ
8 paren777
 
08.10.14
18:44
(7) (6) Таб= ЭтаФорма.Объект.Товары.Выгрузить();
        
    
    Запрос = Новый запрос;
    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    МенеджерТаблицыДанных = Запрос.МенеджерВременныхТаблиц;
    Запрос.Текст = "ВЫБРАТЬ
                   |*
                   |Поместить ВТ
                   |ИЗ
                   |&ТЗ КАК ТЗ";
                   Запрос.УстановитьПараметр("ТЗ", Таб);
                   Запрос.Выполнить();
    ЗапросКБазе = Новый запрос;
    ЗапросКБазе.МенеджерВременныхТаблиц = МенеджерТаблицыДанных;
    ЗапросКБазе.Текст = "Выбрать
    |ВТ.Номенклатура,
    |ВТ.Склад
    |Из
    |ВТ КАК ВТ";
     Результат = ЗапросКБазе.Выполнить().Выбрать();

Доработал код но все равно Ошибка чтения в результате запроса (6)
9 palpetrovich
 
08.10.14
18:47
(8) а зачем 2 запроса сделал?
куда "|;" дел? :)
10 paren777
 
08.10.14
18:47
(9) Делал и одним запросом все равно ошибка чтения данных
11 Ёпрст
 
08.10.14
18:49
Запрос = Новый запрос(
"ВЫБРАТЬ
                   |    ТЗ.Номенклатура,
                   |    ТЗ.Склады
                   |ПОМЕСТИТЬ ТЗ
                   |ИЗ
                   |    &ТЗ КАК ТЗ
                   |;
                   |

                   |ВЫБРАТЬ
                   |    ТЗ.Номенклатура,
                   |    ТЗ.Склады
                   |ИЗ
                   |    ТЗ КАК ТЗ");
Запрос.УстановитьПараметр(ТЗ,Товары.Выгрузить());                        Запрос.Выполнить().Выгрузить().ВыбратьСтроку();
12 paren777
 
08.10.14
18:55
(11) Запрос = Новый запрос;
Запрос.Текст = "ВЫБРАТЬ
                   |*
                   |Поместить ВТ
                   |ИЗ
                   |&ТЗ КАК ТЗ
                  | ;
                 |
            |Выбрать
    |ВТ.Номенклатура,
    |ВТ.Склад
    |Из
    |ВТ КАК ВТ";
    Запрос.УстановитьПараметр("ТЗ", Таб);
     Результат = Запрос.Выполнить().Выбрать();
    
Тоже не работает
13 DS
 
08.10.14
18:57
(12) Что значит не работает?
14 Крошка Ру
 
08.10.14
18:58
(12) Ты скопируй сюда весь текст сообщения об ошибки
15 Banned
 
08.10.14
18:59
Результат = Запрос.Выполнить().Выбрать();

вот тут - уже не результат, а выборка! Поэтому и не работает!
16 Крошка Ру
 
08.10.14
18:59
(12) И кстати. Это УФ? На клиенте?
17 Крошка Ру
 
08.10.14
19:00
(15) А какая разница? Я так понимаю сам запрос не выполняется.
18 paren777
 
08.10.14
19:03
(16) На сервере
19 Banned
 
08.10.14
19:03
(17) Тут пока понимает только сам ТС...
20 Banned
 
08.10.14
19:03
Но рассказывать не хочет
21 Крошка Ру
 
08.10.14
19:04
И, честно говоря, не понимаю высшего смысла таких манипуляций.
Выгрузить ТЧ документа, скопировать её в другую таблицу, передать эту таблицу в запрос и там выбрать то, что изначально есть в ТЧ документа.
22 Banned
 
08.10.14
19:06
(21) Это дзен.
Ты пока ещё не достиг просветления.
23 Крошка Ру
 
08.10.14
19:06
(18) Так передай в запрос ссылку на объект и в запросе делай с  его таб частью что угодно
24 paren777
 
08.10.14
19:07
(23) док еще не сохранен
25 Крошка Ру
 
08.10.14
19:07
(22) А конфигурация, видимо "1С:Дзен-Буддизм, 8.3"  ))
26 Жан Пердежон
 
08.10.14
19:08
(21) А руки-то жирные!
27 paren777
 
08.10.14
19:08
(23) ссылки нет
28 Крошка Ру
 
08.10.14
19:09
(24) И даже если так, на выходе у тебя получается, то что уже есть в ТЧ. Почему бы сразу не брать данные оттуда?
29 Banned
 
08.10.14
19:09
(25) Дзинь-Буддизьм!
30 paren777
 
08.10.14
19:12
(28) мне нужно будет еще остатки проверить запросом
31 Крошка Ру
 
08.10.14
19:17
(30)О! Так ты проверяешь на остатки... Небось, перед проведением документа?
32 GROOVY
 
08.10.14
19:17
(30) Ты их в какой момент собрался проверять?
33 Крошка Ру
 
08.10.14
19:22
ТЗ = ЭтаФорма.Объект.Товары.ВыгрузитьКолонки("Номенклатура,Склад");
    Запрос = Новый запрос;
    Запрос.УстановитьПараметр("ТЗ", ТЗ);
    Запрос.Текст = "ВЫБРАТЬ
                   |    ТЗ.Номенклатура,
                   |    ТЗ.Склад
                   |ПОМЕСТИТЬ ВТ_ТЗ
                   |ИЗ
                   |    &ТЗ КАК ТЗ
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////

                   |ВЫБРАТЬ
                   |    ТЗ.Номенклатура,
                   |    ТЗ.Склады
                   |ИЗ
                   |    ВТ_ТЗ КАК ТЗ";
                   Результат = Запрос.Выполнить();
34 Крошка Ру
 
08.10.14
19:22
Вот так что пишет?
35 paren777
 
08.10.14
19:23
(32) При нажатии на кнопку необходимо проверить остатки на складах
36 Крошка Ру
 
08.10.14
19:25
(33) Ошибся. В запросе нужно везде ТЗ.Склад, а не ТЗ.Склады
37 paren777
 
08.10.14
19:29
(36) Метода выгрузить колонки нет
38 Крошка Ру
 
08.10.14
19:30
(37) Товары - это таб часть?
39 paren777
 
08.10.14
19:30
(36) Там просто Выгрузить(, "Номенклатура", "Склад");
40 GROOVY
 
08.10.14
19:31
(33)  Рекомендую, для надежности, писать "ЭтаФорма.ЭтаФорма.ЭтаФорма.Объект"
41 Крошка Ру
 
08.10.14
19:35
(39) А, да, сорри. Вечно их путаю. Конечно, Выгрузить(, "Номенклатура, Склад")
42 paren777
 
08.10.14
19:36
(41) Все равно не работает
43 Крошка Ру
 
08.10.14
19:38
(40) Ну нравится мне такая конструкция! Имею я право на маленькие слабости? )
44 paren777
 
08.10.14
19:38
Что страна у Результат.Колонки.Номенклатура.ТипЗначения: ПозицияНоменклатуры, NULL , Когда должно быть без NULL или я ошибаюсь?
45 Крошка Ру
 
08.10.14
19:38
(42) "не работает" - это очень информативно
46 Крошка Ру
 
08.10.14
19:40
(44) Так может тебе стоит зарыться в отладчик и посмотреть у кого какие типы и есть ли что-нибудь в переменных?
47 paren777
 
08.10.14
19:44
(46) Да в передаваемую таблицу значения встают все необходимые параметры и их типы
48 Banned
 
08.10.14
19:47
эм....
Вангую.
Забыто Результат.Следующий()....
49 Крошка Ру
 
08.10.14
19:48
(47) Тогда продолжаем разговор - что значит "не работает"?
50 paren777
 
08.10.14
19:51
(49) В Результат.Выполнить() значения нет
51 paren777
 
08.10.14
19:52
(48) Что вы имеете ввиду?
52 Banned
 
08.10.14
19:52
(51) Конкретно и дословно
Добавь мои слова и повторно посмотри отладчиком на Результат.
Только замени ... на ;
53 paren777
 
08.10.14
19:54
(52) Говорит что метод Результат.Следующий() не обнаружен
54 Крошка Ру
 
08.10.14
19:56
(53) Поставь точку останова где-нибудь после запроса и в отладчике вбей "Запрос.Выполнить().Выгрузить()". Что покажет?
55 Banned
 
08.10.14
19:56
Тогда весь код. Полностью. Без вырезок.
От получения ТЗ до чтения результата.
Надоело телепатизмом заниматься, не в том я уже возрасте
56 GROOVY
 
08.10.14
19:57
(53)  Ну там еще выборка нужна...
57 Крошка Ру
 
08.10.14
19:58
(55) Да еле-еле за 50-й пост вылезли! Где твой азарт? Где стремление к истине? ))
58 Banned
 
08.10.14
20:00
(57) Сегодня среда, и поэтому я трезв. Поэтому ни азарта, ни стремления....
59 Banned
 
08.10.14
20:00
Просто хочется взять и.... подарить... Да хоть того же Митичкина. А лучше - его книгу, больше пользы будет.
60 Крошка Ру
 
08.10.14
20:05
(58) "среда" и "трезв". Вообще не вижу связи между этими понятиями. Я-то как раз отмечаю непонятки со своей половинкой. Так что азарта... хоть отбавляй.
61 Banned
 
08.10.14
20:07
(60) Каждому своё, а мне ещё три дня работать....
62 paren777
 
08.10.14
20:08
Все заработало, все огромное спасибо)))
63 paren777
 
08.10.14
20:09
(62) *Всем огромное спасибо
64 Крошка Ру
 
08.10.14
20:10
(61) Ооо! Jedem das Seine. Хороший девиз. Честный.
65 Banned
 
08.10.14
20:10
Мда... Вот мы и не постигли всей мудрости дзэна...

(62) Может, поделишься, что было-то?
66 Крошка Ру
 
08.10.14
20:11
(63) Ю а вэлкам.
67 Крошка Ру
 
08.10.14
20:13
(65) Да сам же спугнул. "не в том я уже возрасте", "поэтому я трезв", "ни азарта ни стремления"... Вот теперь жалей об упущенной возможности поправить карму!
68 Banned
 
08.10.14
20:14
(67) Не дождёшься, не пойду я за бутылкой. Буду копить обиду.
)))