Имя: Пароль:
1C
1C 7.7
v7: Пример запроса к справочнику и обхода результата запроса
,
0 Fedor
 
05.01.12
21:43
Напишите, пожалуйста, пример запроса к справочнику и выполнение и обход результата запроса.
1 GROOVY
 
05.01.12
21:44
А мне напишите код для прогнозирования курсов валют!
2 GROOVY
 
05.01.12
21:44
Мне под 8рку!
3 Cthulhu
 
05.01.12
21:46
Не надо по справочнику запросом...
4 aka MIK
 
05.01.12
21:48
(1) (2) Легко!

Предупреждение("$1 = $1");
5 Fedor
 
05.01.12
21:48
(3) Да, понимаю. Но очень надо.
6 GreyK
 
05.01.12
21:49
(0) Поищи Конструктор запросов. У меня есть, но не продам :)
7 Fedor
 
05.01.12
21:54
(6) Сгенери в нем плиз какой-нить пример с обходом и напиши.
8 ТакВотЖе
 
05.01.12
21:56
(7) а у тебя и конфигуратор украли?)
9 GreyK
 
05.01.12
21:58
(7)
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
   Перем Запрос, ТекстЗапроса, Таб;
   //Создание объекта типа Запрос
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |ТекущийЭлемент = Справочник.Контрагенты.ТекущийЭлемент;
   |ИНН = Справочник.Контрагенты.ИНН;
   |ДокументСерия = Справочник.Контрагенты.ДокументСерия;
   |"//}}ЗАПРОС
   ;
   // Если ошибка в запросе, то выход из процедуры
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
       Возврат;
   КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   // Заполнение полей "Заголовок"
   Таб.ВывестиСекцию("Заголовок");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   // Вывод заполненной формы
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать", "");
КонецПроцедуры
10 ТакВотЖе
 
05.01.12
21:59
(9) феерично)))
11 Fedor
 
05.01.12
22:05
Спс, но я не это имел ввиду. А с обходом - т.е. пока ... <обход запроса>.
12 GreyK
 
05.01.12
22:07
(11) :)
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
   Перем Запрос, ТекстЗапроса, Таб;
   //Создание объекта типа Запрос
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Без итогов;
   |ТекущийЭлемент = Справочник.Контрагенты.ТекущийЭлемент;
   |ИНН = Справочник.Контрагенты.ИНН;
   |ДокументСерия = Справочник.Контрагенты.ДокументСерия;
   |"//}}ЗАПРОС
   ;
   // Если ошибка в запросе, то выход из процедуры
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
       Возврат;
   КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   // Заполнение полей "Заголовок"
   Таб.ВывестиСекцию("Заголовок");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   Пока Запрос.Группировка() = 1 Цикл
       // Заполнение полей Сформировать
       Таб.ВывестиСекцию("Сформировать");
   КонецЦикла;
   // Вывод заполненной формы
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать", "");
КонецПроцедуры
13 Fedor
 
05.01.12
22:08
Вот пример, может кому пригодится:
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |ТекущийЭлемент = Справочник.Контрагенты.ТекущийЭлемент;
   |ИНН = Справочник.Контрагенты.ИНН;
   |ДокументСерия = Справочник.Контрагенты.ДокументСерия;
   |Группировка ТекущийЭлемент;
   |"//}}ЗАПРОС
Пока Запрос.Группировка("ТекущийЭлемент ") = 1 Цикл
   <выполнение действий с данными>
КонецЦикла;
14 a_alenkin
 
05.01.12
22:11
мне точно не пригодится
15 GreyK
 
05.01.12
22:13
(13) Думаешь эпидемия воровства конструкторов из меню конфигуратора началась?
16 Fedor
 
05.01.12
22:23
(15) Похоже на то )
17 Fedor
 
05.01.12
22:26
А как выбрать только не помеченные на удаление элементы справочника?
18 GreyK
 
05.01.12
22:31
(17) Жмакнуть по списку "Выбирать" в конструкторе запросов и выбрать "НеПомеченныеНаУдаление" :)
19 Fedor
 
05.01.12
22:51
(18) Это да :)
А если Справочник1 подчинен Справочнику2. И я выбираю элементы из Справочника1, но только те, у которых соответствующий Владелец не помечен на удаление?
20 GreyK
 
05.01.12
22:56
(19) А кто мешает сделать группировку по Владельцу?
21 GreyK
 
05.01.12
22:58
Ну или так:

//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
   Перем Запрос, ТекстЗапроса, Таб;
   //Создание объекта типа Запрос
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Обрабатывать НеПомеченныеНаУдаление;
   |Без итогов;
   |ТекущийЭлемент = Справочник.Контрагенты.ТекущийЭлемент, Справочник.Договоры.Владелец;
   |ИНН = Справочник.Контрагенты.ИНН;
   |ДокументСерия = Справочник.Контрагенты.ДокументСерия;
   |ВалютаДоговора = Справочник.Договоры.ВалютаДоговора;
   |Группировка ТекущийЭлемент;
   |"//}}ЗАПРОС
   ;
   // Если ошибка в запросе, то выход из процедуры
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
       Возврат;
   КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   // Заполнение полей "Заголовок"
   Таб.ВывестиСекцию("Заголовок");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   Пока Запрос.Группировка() = 1 Цикл
       // Заполнение полей Сформировать
       Таб.ВывестиСекцию("Сформировать");
   КонецЦикла;
   // Вывод заполненной формы
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать", "");
КонецПроцедуры
22 Fedor
 
05.01.12
23:00
(21) Не очень понял, что делает эта строка:
23 Fedor
 
05.01.12
23:00
|ТекущийЭлемент = Справочник.Контрагенты.ТекущийЭлемент, Справочник.Договоры.Владелец;
24 Fedor
 
05.01.12
23:01
И не понял насчет помеченного на удаление владельца.
Объясни, плиз.
25 GreyK
 
05.01.12
23:02
(23) А кто запрещает так сделать запрос?
26 Fedor
 
05.01.12
23:04
(25) Не спорю. Но смысл не очень понял. В какой переменной будет владелец? Тоже в ТекущемЭлементе?
27 GreyK
 
05.01.12
23:04
(24) Ты теоретик?
28 Fedor
 
05.01.12
23:06
(28) Нет ) Вроде понял, в чем суть. Завтра проверю. Спасибо.
29 ЧеловекДуши
 
05.01.12
23:46
(28)(0)Заметь, все примеры, которые тебе выложили, были получены мастером запросов :)
30 Fedor
 
06.01.12
12:39
(29) Знаю. Тоже их делал в мастере. Но в тех примерах не было группировок и примера обхода запроса (а было нужно именно это)
31 Lexxxxx
 
06.01.12
12:46
(30) В справочнике по языку все это, и даже больше, есть!
32 Fedor
 
06.01.12
12:49
(31) Кинь плиз этот справочник
33 1Сергей
 
06.01.12
13:00
(32) СП бесплатно не раздают
34 Mikeware
 
06.01.12
13:02
(33) А уж учат его читать - жуть как дорого....
35 Lexxxxx
 
06.01.12
13:08
36 Fedor
 
06.01.12
13:11
Нашел справочник ) Вот ссылка:
http://justtry.ru/1s-8-x/spravochniki-1s
37 1Сергей
 
06.01.12
13:24
(36) открой уже для себя Ctrl+F1
38 andrewks
 
06.01.12
13:26
(37) всю интригу испортил! надо было подождать, пока он письмо Нуралиеву напишет
39 Fedor
 
06.01.12
13:28
(37) Та не переживай, открыл ) Но справочник по 1С почитать тоже полезно )
40 1Сергей
 
06.01.12
13:29
(39) он у тебя бумажный должен быть. Ты ведь не пираткой пользуешься?
41 Mikeware
 
06.01.12
13:30
(38) Думаешь, у Нуралиева СП подешевле, чем у ДенисаЧ? :-))
Я вообще бесплатно отдаю. А деньги беру за обучение чтению :-)
42 andrewks
 
06.01.12
13:31
(41) это известный приём! хочешь развести человека на деньги - предложи халяву )
43 ШтушаКутуша
 
06.01.12
13:32
(1,2) ты серьезно?
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс