Имя: Пароль:
1C
 
Выгрузка запроса в Таблицу Значений
0 Mr_stone
 
10.01.08
09:02
Здравствуйте
Подскажите чайнику как правильно выгружать запрос в ТаблицуЗначений?
У меня че то не работает

   Запрос=СоздатьОбъект("Запрос");
   ТекстЗапроса="
   |Период с НачПер По КонПер;
   |Обрабатывать НеПомеченныеНаУдаление;
   |Контрагент=Регистр.Приход.Контрагенты;
   |СтатьяПрихода=Регистр.Приход.СтатьиПриходов;
   |Сумма=Регистр.Приход.Сумма;
   |Основание=Регистр.Приход.Основание;
   |Функция СуммаПрихода=Сумма(Сумма);
   |Условие(Контрагент в ВыбКонтрагент);
   |";
       
   Запрос.Выгрузить(ТабЗнач,0,0);

а в таблице вот такие выражение:
ТабЗнач.ПолучитьЗначение(н,1) | ТабЗнач.ПолучитьЗначение(н,2) | ТабЗнач.ПолучитьЗначение(н,3) | ТабЗнач.ПолучитьЗначение(н,4)

При этом выводится в таблицу, в первой колонки есть сумма а в других нет.
2065.54 | ТабЗнач.ПолучитьЗначение(н,2) | ТабЗнач.ПолучитьЗначение(н,3) | ТабЗнач.ПолучитьЗначение(н,4)
и всторке сообшений выводются 3 одинаковых ошыбок: "Номер за пределами значения!"

Потом сделал так:
  Запрос.Выгрузить(ТабЗнач,Запрос.Контрагент,Запрос.СтатьяПрихода,Запрос.Сумма,Запрос.Основание,0);
Теперь, даже таблица непоказывалась, опять ошибка: "Слишком много параметров передано при вызове функции/процедуры объекта"

следующий раз, если мног параметров вышло тогда пусть будет хоть один:
  Запрос.Выгрузить(ТабЗнач,Запрос.Контрагент,0);
теперь, ни каких ошибок, но и в таблице ничего нет, совсем пустая...
вот теперь, мне не за-что зацепится и незнаю что делать, помогите.

и еще, функция в языке запросов с Измерениями и Реквизитами регистра не работает что ли?
только с Ресурсами?
1 Фокусник
 
10.01.08
09:06
(0) какой-то злобный бот...
2 VladZ
 
10.01.08
09:11
(0) Не вижу строки Запрос.Выполнить(ТекстЗапроса)
3 Подводный Таракан
 
10.01.08
09:12
(0) функции нач и кон остатков только с ресурсами, с измерениями - не работает, сделай хоть группировку по запросу, а потом просто выгрузить и таблицу значений помести на форме и смотри на нее
4 Андрюха
 
10.01.08
09:13
Выгрузить(<ТаблЗнач>,<Флаг>,<Итоги>)
Назначение:
Выгружает результаты запроса в таблицу значений. Возвращает число: 1 - если выгрузка произошла успешно, иначе - 0.
Параметры:
<ТаблЗнач> - Таблица значений, куда выгружаются результаты запроса.
<Флаг> - необязательный параметр. Число или строка:
0 - значения групп и функций (по умолчанию);
1 - значения групп и функций, дополнительных переменных;
2 - значения упорядочиваний групп и функций;
3 - значения упорядочиваний групп и функций, дополнительных переменных;
Строка - '' Товар(1), Товар(2), Товар, Склад, Приход, Расход'', где Товар(1) - значение первого упорядочивания группировки ''Товар''.
<Итоги> - необязательный параметр. Число:
0 - итоги по группировкам не выводить;
1 - итоги по группировкам выводить сверху (по умолчанию);
2 - итоги по группировкам выводить снизу;
3 - итоги по группировкам выводить сверху и снизу.
5 Salimbek
 
10.01.08
09:13
(0) Выгрузить(<?>,,)
Синтаксис:
Выгрузить(<ТаблЗнач>,<Флаг>,<Итоги>)
Назначение:
Выгружает результаты запроса в таблицу значений. Возвращает число: 1 - если выгрузка произошла успешно, иначе - 0.
Параметры:
<ТаблЗнач> - Таблица значений, куда выгружаются результаты запроса.
<Флаг> - необязательный параметр. Число или строка:
0 - значения групп и функций (по умолчанию);
1 - значения групп и функций, дополнительных переменных;
2 - значения упорядочиваний групп и функций;
3 - значения упорядочиваний групп и функций, дополнительных переменных;
<Итоги> - необязательный параметр. Число:
0 - итоги по группировкам не выводить;
1 - итоги по группировкам выводить сверху (по умолчанию);
2 - итоги по группировкам выводить снизу;
3 - итоги по группировкам выводить сверху и снизу.
---
Исходя из этого надо писать так: Запрос.Выгрузить(ТабЗнач,1,0);
6 Mr_stone
 
10.01.08
15:08
Исправил параметр
Запрос.Выгрузить(ТабЗнач,1,0);

теперь выводит только одну строку, и в первой колонке общая сумма
2065.54 | ХГЭС | Начисление Электроэнергии | 1434.68

а проведено по этому документу 4 строки, вот эти:
Лен. Эс        | Начисление Электроэнергии | 212.21 | c/ф №
Истаравшан Эс  | Начисление Электроэнергии | 325.3  | с/ф №
ХГЭС             | Начисление Электроэнергии | 1434.68|    с/ф №
ЧГО Энергосбыт | Начисление Электроэнергии | 93.35  |    с/ф №

нужно загрузить в таблицу значение все строки заданного интервала времени.

а весь код такой
Процедура Сформировать()
   Запрос=СоздатьОбъект("Запрос");
   ТекстЗапроса="
   |Период с НачПер По КонПер;
   |Обрабатывать НеПомеченныеНаУдаление;
   |Контрагент=Регистр.Приход.Контрагенты;
   |СтатьяПрихода=Регистр.Приход.СтатьиПриходов;
   |Сумма=Регистр.Приход.Сумма;
   |Основание=Регистр.Приход.Основание;
   |Функция СуммаПрихода=Сумма(Сумма);
   |Условие(Контрагент в ВыбКонтрагент);
   |";
   Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
       Возврат;
   КонецЕсли;
   ТабЗнач=СоздатьОбъект("ТаблицаЗначений");
   Запрос.Выгрузить(ТабЗнач,1,0);
   Таб=СоздатьОбъект("Таблица");
       Таб.ВывестиСекцию("Заголовок");
   ТабЗнач.ВыбратьСтроки();
   Для н=1 по ТабЗнач.КоличествоСтрок() Цикл
       Таб.ВывестиСекцию("Строка");
   КонецЦикла;
   Таб.ТолькоПросмотр(1);
   Таб.Показать();
КонецПроцедуры
7 Ёпрст2
 
10.01.08
15:28
(6) При обращению к регистру Остатков указывайте обязательно функции для обращения к нему, такие как Приход,Расход,КонОст,НачОст ... сама функция Сумма ничего не считает... вот и нету в итоге у вас ни черта ...
8 Mr_stone
 
10.01.08
15:33
но, регистр то Оборотный а не регистр остатков
в этом случае что делать
9 Ёпрст2
 
10.01.08
15:46
(8) Добавить группировку в текст запроса ..
10 Mr_stone
 
11.01.08
13:00
Теперь запрос выводит только 4 последних проведенных документов не зависимо от количество проведенных документов. Как это так может быть и почему 4 строк?
Вот что выходит:
в первой колонке-Наименование контрагентов, во второй-суммы, в третей-статя прихода, в четвертой-опять те-же суммы что и во второй колонке, а по реквизиту основание вообще ни чего нету.
Что делать? подскажите...
11 Ёпрст2
 
11.01.08
13:37
(10) Показать новый текст запроса для начала, и как ты его выгружаешь в ТЗ.
12 Mr_stone
 
11.01.08
13:49
Процедура Сформировать()
   Запрос=СоздатьОбъект("Запрос");
   ТекстЗапроса="
   |Период с НачПер По КонПер;
   |Обрабатывать НеПомеченныеНаУдаление;
   |Контрагент=Регистр.Приход.Контрагенты;
   |СтатьяПрихода=Регистр.Приход.СтатьиПриходов;
   |Сумма=Регистр.Приход.Сумма;
   |Основание=Регистр.Приход.Основание;
   |Функция СуммаПрихода=Сумма(Сумма);
   |Группировка Контрагент упорядочить по Контрагент.Наименование;
   |Условие(Контрагент в ВыбКонтрагент);
   |";
   
   Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
       Возврат;
   КонецЕсли;
   ТабЗнач=СоздатьОбъект("ТаблицаЗначений");
   Запрос.Выгрузить(ТабЗнач,1,0);
   
   Таб=СоздатьОбъект("Таблица");
   Таб.ВывестиСекцию("Заголовок");
   ТабЗнач.ВыбратьСтроки();
   Для н=1 по ТабЗнач.КоличествоСтрок() Цикл
       Таб.ВывестиСекцию("Строка");
   КонецЦикла;
   Таб.ТолькоПросмотр(1);
   Таб.Показать();
КонецПроцедуры
13 Ёпрст2
 
11.01.08
14:02
(12) Для начала, выкинуть вот этот бред - |Обрабатывать НеПомеченныеНаУдаление;,
а во вторых, что там говоришь неправильно выводит то ?
ЗЫ: Выводит тебе клиентосов и сумму оборотов за период ... не более того.
И нахрена ты доп. переменные в выгрузку включил - токма тебе понятно
ЗЫЫ: И проще, ТЗ кинуть на форму - нагляднее (и не надо в Таблицу ничего выводить).. или уж ТЗ.ВыбратьСтроку() ...
14 Mr_stone
 
11.01.08
14:33
Для начала, выкинуть вот этот бред - |Обрабатывать НеПомеченныеНаУдаление;
Не помогает.

А что, не все переменные нужно выводит? данные по ним тоже нужны.

ЗЫЫ: И проще, ТЗ кинуть на форму - нагляднее (и не надо в Таблицу ничего выводить)..
А как можно кинуть Т3 на форму, как это делается? можно по подробнее пожалуйста
15 FreeFin
 
11.01.08
14:41
(14) не нуя не понял, берет запрос сумму по контрагентам, группировок по документам (и их самих) нету, а по-документам подавай. читай еще раз (9)
16 Ёпрст2
 
11.01.08
14:41
(14) Биомать а ... При обращении к регистру не надо пихать в текст запроса левые условия про документы и Обрабатывать НеПомеченны ... , т.к записи в регистре формируются только проведенными документами...
ЗЫ:
1. На форму кладешь ТаблицуЗначений, даешь ей идентификатор ...ТЗ , к примеру, выкидываешь из модуля строку  ТЗ=СоздатьОбъект("ТаблицаЗначений"); и просто выгружаешь запрос в эту ТЗ ...
2. Читаешь вниматочно параметры метода Выгрузить в СП ...
3. Читаешь эту методичку хотя бы:
http://infostart.ru/projects/578/
или это:
http://testpu.city.tomsk.net/1c/mp2/Index.htm
ну и это, чтоб понимать откуда ноги растут
http://www.mista.ru/articles1c/hare/article.47.html

ЗЫЫ: И поиграйся с группировками ...посмотри, что попадает после выполнения запроса... посмотри на движения документа в журнале, и может быть, о чудо! - придёт осветления от твоих действий.
17 Бармолей
 
11.01.08
18:40
(0) я бы не связывался с таблицами значений
18 Cthulhu
 
11.01.08
19:13
(17): не надоело разводить людей?.. (не. ну не верится мне, что реально можно быть настоолько тупыым)))