Имя: Пароль:
1C
1С v8
Запрос, поиск данных
0 alexsandrinia
 
23.08.11
15:09
Всем привет! Вопрос такой: я создаю программно запрос и хочу получить из него один элемент (чтоб потом произвести сравнение с другим). Как мне это реализовать?
1 Grusswelle
 
23.08.11
15:10
Запросом.
2 alexsandrinia
 
23.08.11
15:11
а как именно? я сделал запрос. потом что?
3 salvator
 
23.08.11
15:13
Запрос выкладывать стесняешься?
4 alexsandrinia
 
23.08.11
15:16
ЗапросБУ = Новый Запрос;
   ЗапросБУ.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                    |    СоответствиеСчетовБУиНУ.СчетБУ,
                    |    СоответствиеСчетовБУиНУ.СчетНУ,
                    |    БУ.СчетДтБУ КАК СчетДтБУ,
                    |    БУ.СчетКтБУ КАК СчетКтБУ,
                    |    БУ.СуммаБУ КАК СуммаБУ,
                    |    БУ.Организация КАК Организация
                    |ИЗ
                    |    (ВЫБРАТЬ
                    |        Хозрасчетный.СчетДт КАК СчетДтБУ,
                    |        Хозрасчетный.СчетКт КАК СчетКтБУ,
                    |        СУММА(Хозрасчетный.Сумма) КАК СуммаБУ,
                    |        ОтражениеЗарплатыВРеглУчете.Организация.Ссылка КАК Организация
                    |    ИЗ
                    |        РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
                    |            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтражениеЗарплатыВРеглУчете КАК ОтражениеЗарплатыВРеглУчете
                    |            ПО Хозрасчетный.Регистратор = ОтражениеЗарплатыВРеглУчете.Ссылка
                    |    ГДЕ
                    |        ОтражениеЗарплатыВРеглУчете.Проведен = ИСТИНА
                    |        И ОтражениеЗарплатыВРеглУчете.ПериодРегистрации МЕЖДУ &НачалоПериода И &КонецПериода
                    |        И Хозрасчетный.Период МЕЖДУ &НачалоПериода И &КонецПериода
                    |    
                    |    СГРУППИРОВАТЬ ПО
                    |        Хозрасчетный.СчетКт,
                    |        ОтражениеЗарплатыВРеглУчете.Организация.Ссылка,
                    |        Хозрасчетный.СчетДт) КАК БУ
                    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоответствиеСчетовБУиНУ КАК СоответствиеСчетовБУиНУ
                    |        ПО БУ.СчетДтБУ = СоответствиеСчетовБУиНУ.СчетБУ
                    |
                    |УПОРЯДОЧИТЬ ПО
                    |    Организация,
                    |    БУ.СчетДтБУ.Код,
                    |    БУ.СчетКтБУ.Код";

   ЗапросБУ.УстановитьПараметр("НачалоПериода", НачалоПериода);
   ЗапросБУ.УстановитьПараметр("КонецПериода", КонецПериода);
         
   РезультатЗапросаБУ = ЗапросБУ.Выполнить();

теперь мне нужно найти чему равен СчетДтБУ
5 Lepochkin
 
23.08.11
15:16
РезультатЗапроса = Запрос.Выполнить();        
Если Не РезультатЗапроса.Пустой() Тогда
РезультатЗапроса.Выгрузить()[0].<Что там тебе нужно>;
КонецЕсли;
6 alexsandrinia
 
23.08.11
15:20
(5) РезультатЗапроса.Выгрузить()[0] Добавить, Очистить, Количество, Удалить
где тут вставить, то что мне надо?
7 salvator
 
23.08.11
15:24
(6) РезультатЗапроса.Выгрузить()[0].СчетДтБУ
8 alexsandrinia
 
23.08.11
15:25
(7) ошибка выходит

{Форма.ФормаОтчета(161,45)}: Неопознанный оператор
       РезультатЗапросаНУ.Выгрузить()[0].СчетДтБУ<<?>>;
9 Lepochkin
 
23.08.11
15:25
РезультатЗапроса.Выгрузить() - Это таблица.
Таблица[0] - первая строка этой таблицы.
Через точку пишу колонку которая тебе нужна.
Или уже если система не предложила вариантов то сделать ничего нельзя??
10 salvator
 
23.08.11
15:27
(8) ТЗ = РезультатЗапросаНУ.Выгрузить()[0].СчетДтБУ;
11 alexsandrinia
 
23.08.11
15:30
всё получилось, спасибо!
12 Lepochkin
 
23.08.11
15:30
(10) Думаю не особо интуитивно понятно будет присваивать переменной "ТЗ" (привыкли уже что это таблица значений) числовое значение...
13 alexsandrinia
 
23.08.11
15:33
а как сделать поиск по всем строкам таблицы?
14 Lepochkin
 
23.08.11
15:34
циклом вестимо
15 salvator
 
23.08.11
15:36
(12) На автомате написал, увидев "Выгрузить" :)
16 alexsandrinia
 
23.08.11
15:39
(14) просто сделать перебор по всем строкам?
17 salvator
 
23.08.11
15:43
(16) Смотря что именно тебе нужно. А так - да.
18 alexsandrinia
 
23.08.11
15:45
(17) мне просто нужно было найти определённый счёт, поэтому нужен был обход, решил путём добавления переменной в ТЗ = РезультатЗапросаНУ.Выгрузить()[0].СчетДтБУ, где вместо 0 поставил счётчик
19 salvator
 
23.08.11
15:50
(18) Используй метод таблицы значений Найти