|
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
|
(32) http://www.google.com.ua/search?sourceid=chrome&ie=UTF-8&q=справочник+по+языку+1с+77
Например вторая ссылка. |
|||
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) ты серьезно?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |