Имя: Пароль:
1C
1С v8
как передать таблицу параметром в запрос
0 LivingStar
 
17.07.12
14:38
НовыйЗапрос       = Новый Запрос;
   НовыйЗапрос.Текст = "
       |ВЫБРАТЬ
       |    Контрагенты.Ссылка       КАК Домоуправление
       |ИЗ
       |    Справочник.Контрагенты КАК Контрагенты
       |ГДЕ
       |    Контрагенты.ПризнакДомоуправление = ИСТИНА
       |
       |СГРУППИРОВАТЬ ПО
       |    Контрагенты.Ссылка
       |
       |УПОРЯДОЧИТЬ ПО
       |    Контрагенты.Наименование";
   ТзСписокДомоуправлений         = НовыйЗапрос.Выполнить().Выгрузить();
   З_АбонентыДомоуправлений       = Новый Запрос;
   З_АбонентыДомоуправлений.Текст = "
       |ВЫБРАТЬ
       |    ЗначенияСвойствОбъектовСрезПоследних.Период,
       |    ЗначенияСвойствОбъектовСрезПоследних.Объект,
       |    ЗначенияСвойствОбъектовСрезПоследних.Свойство,
       |    ЗначенияСвойствОбъектовСрезПоследних.Значение
       |ИЗ
       |    РегистрСведений.ЗначенияСвойствОбъектов.СрезПоследних КАК ЗначенияСвойствОбъектовСрезПоследних
       |ГДЕ
       |    ЗначенияСвойствОбъектовСрезПоследних.Свойство = &Участок
       |    И ЗначенияСвойствОбъектовСрезПоследних.Значение В(&ТзСписокДомоуправлений)";
   //
   З_АбонентыДомоуправлений.УстановитьПараметр("Участок",         Справочники.ЗначенияСвойствОбъектов.НайтиПоКоду("000000565"));
   З_АбонентыДомоуправлений.УстановитьПараметр("ТЗДомоуправления",ТзСписокДомоуправлений);
   ТзСписокАбонПоДомоупр = З_АбонентыДомоуправлений.Выполнить().Выгрузить();
1 х86
 
17.07.12
14:38
ВТ не предлагать?
2 HEKPOH
 
17.07.12
14:38
временная таблица в помощь
3 HEKPOH
 
17.07.12
14:39
параметром ТЗ никак
4 sivalor
 
17.07.12
14:40
массив тебе поможет
5 Лефмихалыч
 
17.07.12
14:41
НовыйЗапрос       = Новый Запрос;
   НовыйЗапрос.Текст = "
       |ВЫБРАТЬ
       |    Контрагенты.Ссылка       КАК Домоуправление
       |ПОМЕСТИТЬ ВремннаяТаблица
       |ИЗ
       |    Справочник.Контрагенты КАК Контрагенты
       |ГДЕ
       |    Контрагенты.ПризнакДомоуправление = ИСТИНА
       |
       |СГРУППИРОВАТЬ ПО
       |    Контрагенты.Ссылка
       |;
       |ВЫБРАТЬ
       |    ЗначенияСвойствОбъектовСрезПоследних.Период,
       |    ЗначенияСвойствОбъектовСрезПоследних.Объект,
       |    ЗначенияСвойствОбъектовСрезПоследних.Свойство,
       |    ЗначенияСвойствОбъектовСрезПоследних.Значение
       |ИЗ
       |    РегистрСведений.ЗначенияСвойствОбъектов.СрезПоследних(, Свойство = &Участок) КАК ЗначенияСвойствОбъектовСрезПоследних ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВременнаяТаблица ПО ЗначенияСвойствОбъектовСрезПоследних.Значение = ВРеменнаяТаблица.Домоуправление";
   //
6 х86
 
17.07.12
14:43
(3)да можно
(0)не хотел писать, но всё же. В твоём случае правильнее делать на ВТ

   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ТаблицаНарядов", ТаблицаНарядов);
   Запрос.Текст =
   "ВЫБРАТЬ РАЗЛИЧНЫЕ
   |    Табл.НомерНаряда КАК НомерНаряда
   |ПОМЕСТИТЬ ВремТаблНарядов
   |ИЗ
   |    &ТаблицаНарядов КАК Табл
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |    Табл.НомерНаряда КАК НомерНаряда
   |ИЗ
   |    ВремТаблНарядов КАК Табл
7 HEKPOH
 
17.07.12
14:44
(6) и как же ТЗ параметром? только без подмены понятий
8 LivingStar
 
17.07.12
14:46
(6) а ВТ там просто связи же, а мне нужно задать фильтр а не связать!!!
9 LivingStar
 
17.07.12
14:47
(4) напомни что там массив? я знаю в массив можно выгрузить как раз нужную колонку из таблицы значений!!!
10 HEKPOH
 
17.07.12
14:47
(8) соединение и наложит фильтр
11 sivalor
 
17.07.12
14:48
З_АбонентыДомоуправлений.УстановитьПараметр("ТЗДомоуправления",ТзСписокДомоуправлений.ВыгрузитьКолонку("Домоуправление"));
(10) прав
12 LivingStar
 
17.07.12
14:50
(7)  хотелось бы понять как это
(10) в каком случае оно наложит фильтр?
13 х86
 
17.07.12
14:50
(7)я ТЗ в запрос устанавливаю параметром
14 HEKPOH
 
17.07.12
14:51
(13) хоть один запрос отработал? :)
15 х86
 
17.07.12
14:52
(12)чем тебе ВТ не устраивает?
16 LivingStar
 
17.07.12
14:52
(6) ничего не понял из этого запроса
17 х86
 
17.07.12
14:52
(14)в (6) рабочий пример
18 HEKPOH
 
17.07.12
14:53
(12) в случае левого и внутреннего соединения
19 х86
 
17.07.12
14:53
(16)смотри (5), это твой случай
20 LivingStar
 
17.07.12
14:54
(11) а как этот параметр потом в запросе то использовать? ошибка на это:

{Форма.ФормаОтчета.Форма(49)}: Ошибка при вызове метода контекста (Выполнить)
   ТзСписокАбонПоДомоупр = З_АбонентыДомоуправлений.Выполнить().Выгрузить();
по причине:
{(11, 52)}: Ожидается выражение "("
И ЗначенияСвойствОбъектовСрезПоследних.Значение В <<?>>&ТзСписокДомоуправлений
21 sivalor
 
17.07.12
14:57
(20) |    И ЗначенияСвойствОбъектовСрезПоследних.Значение В(&ТЗДомоуправления)";

ты бы может книжек сначала почитал, не?
22 HEKPOH
 
17.07.12
14:59
(17) и где ты параметризуешь запрос таблицей значений? Ты ТЗ помещаешь в ВТ. Я же сказал, без подмены понятий, а ты юлить начинаешь. Или не силен в предметной области?
23 LivingStar
 
17.07.12
15:02
спасибо за подсказки
попробовал так,
|
   АбонентыДомоуправлений = "ВЫБРАТЬ
                            |    Контрагенты.Ссылка КАК Домоуправление
                            |ПОМЕСТИТЬ ВТ_Домоуправления
                            |ИЗ
                            |    Справочник.Контрагенты КАК Контрагенты
                            |ГДЕ
                            |    Контрагенты.ПризнакДомоуправление = ИСТИНА
                            |
                            |СГРУППИРОВАТЬ ПО
                            |    Контрагенты.Ссылка
                            |;
                            |
                            |////////////////////////////////////////////////////////////////////////////////
                            |ВЫБРАТЬ
                            |    ЗначенияСвойствОбъектовСрезПоследних.Период,
                            |    ЗначенияСвойствОбъектовСрезПоследних.Объект,
                            |    ЗначенияСвойствОбъектовСрезПоследних.Свойство,
                            |    ЗначенияСвойствОбъектовСрезПоследних.Значение,
                            |    ВТ_Домоуправления.Домоуправление
                            |ИЗ
                            |    РегистрСведений.ЗначенияСвойствОбъектов.СрезПоследних(, Свойство = &Участок) КАК ЗначенияСвойствОбъектовСрезПоследних
                            |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Домоуправления КАК ВТ_Домоуправления
                            |        ПО ЗначенияСвойствОбъектовСрезПоследних.Значение = ВТ_Домоуправления.Домоуправление";

|
завтра буду допиливать,
24 х86
 
17.07.12
15:05
(22)чо?
25 LivingStar
 
17.07.12
15:16
странно, но вот эта конструкция ничего не выбирает (((

   З_1_АбонентыДомоуправлений       = Новый Запрос;
   З_1_АбонентыДомоуправлений.Текст = "
       |ВЫБРАТЬ
       |    Контрагенты.Ссылка КАК Домоуправление
       |ПОМЕСТИТЬ ВТ_Домоуправления
       |ИЗ
       |    Справочник.Контрагенты КАК Контрагенты
       |ГДЕ
       |    Контрагенты.ПризнакДомоуправление = ИСТИНА
       |
       |СГРУППИРОВАТЬ ПО
       |    Контрагенты.Ссылка
       |;
       |
       |////////////////////////////////////////////////////////////////////////////////
       |ВЫБРАТЬ
       |    ЗначенияСвойствОбъектовСрезПоследних.Период   КАК Период,
       |    ЗначенияСвойствОбъектовСрезПоследних.Объект   КАК Абонент,
       |    ЗначенияСвойствОбъектовСрезПоследних.Свойство КАК Участок,
       |    ЗначенияСвойствОбъектовСрезПоследних.Значение КАК Домоуправление
       |ИЗ
       |    РегистрСведений.ЗначенияСвойствОбъектов.СрезПоследних(, Свойство = &Участок) КАК ЗначенияСвойствОбъектовСрезПоследних
       |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Домоуправления КАК ВТ_Домоуправления
       |        ПО ЗначенияСвойствОбъектовСрезПоследних.Значение = ВТ_Домоуправления.Домоуправление";
   З_1_АбонентыДомоуправлений.УстановитьПараметр("Участок",Справочники.ЗначенияСвойствОбъектов.НайтиПоКоду("000000565"));                        
   Тз_1_АбонентовПоДомоупр_1 = З_1_АбонентыДомоуправлений.Выполнить().Выгрузить();
26 Рэйв
 
17.07.12
15:17
или Свойсво=&Участок нет такого
или
Контрагенты.ПризнакДомоуправление = ИСТИНА  отсуствует
27 х86
 
17.07.12
15:19
РегистрСведений.ЗначенияСвойствОбъектов.СрезПоследних(, Свойство = &Участок и Объект в(выбрать * из ВТ_Домоуправления
)
28 LivingStar
 
17.07.12
15:22
(26) да вы правы, тама за место справочника, ПланыВидовХарактеристик !!!
(27) спасибо и так попробую!!!
29 LivingStar
 
17.07.12
15:26
З_1_АбонентыДомоуправлений       = Новый Запрос;
   З_1_АбонентыДомоуправлений.Текст = "ВЫБРАТЬ
                                      |    Контрагенты.Ссылка КАК Домоуправление
                                      |ПОМЕСТИТЬ ВТ_Домоуправления
                                      |ИЗ
                                      |    Справочник.Контрагенты КАК Контрагенты
                                      |ГДЕ
                                      |    Контрагенты.ПризнакДомоуправление = ИСТИНА
                                      |
                                      |СГРУППИРОВАТЬ ПО
                                      |    Контрагенты.Ссылка
                                      |;
                                      |
                                      |////////////////////////////////////////////////////////////////////////////////
                                      |ВЫБРАТЬ
                                      |    ЗначенияСвойствОбъектовСрезПоследних.Период КАК Период,
                                      |    ЗначенияСвойствОбъектовСрезПоследних.Объект КАК Абонент,
                                      |    ЗначенияСвойствОбъектовСрезПоследних.Свойство КАК Участок,
                                      |    ЗначенияСвойствОбъектовСрезПоследних.Значение КАК Домоуправление
                                      |ИЗ
                                      |    РегистрСведений.ЗначенияСвойствОбъектов.СрезПоследних(, Свойство = &Участок) КАК ЗначенияСвойствОбъектовСрезПоследних
                                      |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Домоуправления КАК ВТ_Домоуправления
                                      |        ПО ЗначенияСвойствОбъектовСрезПоследних.Значение = ВТ_Домоуправления.Домоуправление";
   З_1_АбонентыДомоуправлений.УстановитьПараметр("Участок",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("000000565"));                        
   Тз_1_АбонентовПоДомоупр_1 = З_1_АбонентыДомоуправлений.Выполнить().Выгрузить();


выполнилось, но долго долго стояло, пока я запустил просмотр таблицы по Shift+F9+F2
30 Kashemir
 
17.07.12
15:31
Если кому нужно, допилил к стандартной консольке с ИСТ возможность использования ТЗ как параметров  http://infostart.ru/public/78001/
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс