Имя: Пароль:
1C
1C 7.7
v7: Почему не работает запрос
0 andryus
 
01.09.11
20:06
Есть список значений в который добавлены значения командой

Спр = Это справочник Контрагенты

СписокКонтрагентов.ДобавитьЗначение(Спр.ТекущийЭлемент(),Спр.Наименование);

Далее мне нужно запрос сделать с учетом текущего значения списка значений, вот код:
Для А=1 ПО СписокКонтрагентов.РазмерСписка() Цикл
ТекущийКонтрагент = СписокКонтрагентов.ПолучитьЗначение(А);
БухИтПФ = СоздатьОбъект("БухгалтерскиеИтоги");
БухИтПФ.ИспользоватьСубконто(ВидыСубконто.Контрагенты,ТекущийКонтрагент);
БухИтПФ.ВыполнитьЗапрос(НачДата,КонДата,"МДР.П.0",,"С",,,);
   БухИтПФ.ВыбратьСубконто(1);
   Пока БухИтПФ.ПолучитьСубконто(1) = 1 Цикл
КонецЦикла;
КонецЦикла;

Почему то в отладчике доходить до ВыбратьСубконто(1) и уходит в конец цикла, получается что запрос не выбирает значения по субконто 1. Почему так? В чем ошибка?
1 2S
 
01.09.11
20:12
бред какой-то
а что мешает запихнуть СЗ в БИ?
2 Темный Эльф
 
01.09.11
20:13
1. А что у тебя за буква "С" на месте валюты?
2. И зачем тебе цикл по субконто, если значение субконто у тебя одно в выборке?
3. А что за запрос в цикле?
4. В чем смысл жизни?
5. Кто убил Кеннеди?
3 Guk
 
01.09.11
20:14
(0) прочти внимательно СП на предмет параметров метода Выполнить запрос. у тебя эти параметры почти все перепутаны...
4 poligraf
 
01.09.11
20:14
(0) прям по всем контрагентам ничего не получает?
и это... отступы синтаксические могут ни о чем не говорить, а могут и о бардаке в мыслях.
5 zak555
 
01.09.11
20:22
//цикл по спр
Если Спр.ЭтоГруппа() = 1 Тогда
  Продолжить;
КонецЕсли;
СписокКонтрагентов.ДобавитьЗначение(Спр.ТекущийЭлемент());

//заончился цикл
БухИтПФ = СоздатьОбъект("БухгалтерскиеИтоги");
БухИтПФ.ИспользоватьСубконто(ВидыСубконто.Контрагенты,ТСписокКонтрагентов,2,0);
БухИтПФ.ВыполнитьЗапрос(НачДата,КонДата,СчетПоКоду("МДР.П.0"),,1,,1);
БухИтПФ.ВыбратьСубконто(1);
Для А=1 ПО СписокКонтрагентов.РазмерСписка() Цикл
   Если БухИтПФ.ПолучитьСубконто(,,СписокКонтрагентов.ПолучитьЗначение(А))=0 Тогда
      Продолжить;
   КонецЕсли;
   //получаем итоги по контру
КонецЦикла;
6 andryus
 
01.09.11
22:13
(2)
1. С "С" перепутал малость, но это особого значения не имеет. Я посмотрел другие запросы, там тоже ТипСуммы стоит не на своем месте, однако дает необходимый результат
2. Ну не буду же я писать полностью весь код. Если у меня так запутано, то значит мне нужно получить какие то данные таким образом, т.е. таким обходом данных
.... на остальные не отвечаю
(3) насчет "почти все перепутаны" Вы имеете ввиду букву "С" не на своем месте? Я уже на это ответил, смотрите выше
(4) да по всем. Насчет отступов, то это тут так получилось выложить, в самом конфигураторе все красиво, не так убого как получилось тут
(5) вот единственная конструктивная идея из всех выше написанных. Тут малость не подходит.
1. Дело в том что там не одно субконто, а 3, ну это мелочи.
2. Основное, почему у меня цикл по СЗ идет до БИ, дело в том, что БИ должны собирать итоги, обороты по каждому контрагенту, после сбора всех данных по субконто (трем) данные суммируются и выводятся за БИ. После БИ, данные еще суммируются и выводится таблица (печатная), т.е. нужно получить печатную таблицу для каждого контрагента, НО со своими данными
7 Сияющий Асинхраль
 
01.09.11
23:36
Напиши ка лучше задачу, код крайне плохой и тормозной. Его не править, его переписывать надо
8 zak555
 
02.09.11
00:28
(6)

1. распиши задачу - мне надоело быть телепатом
2. + распиши все счета + их аналитики и учёты
9 Cthulhu
 
02.09.11
00:40
(6): В ИспользоватьСубконто поставить в значение СЗ, флаг 1.
Вне зависимости от того, что там и сколько чего - перебор этого субконто, выполняемый стандартно, будет давать результаты по значениям из СЗ. ПЛЕВАТЬ при каких "сложностях".
10 andryus
 
02.09.11
06:16
(8) вообщем есть счет забалансовый, активно-массивный. У него 3 вида субконто: Контрагенты, ВидыПомощи, ВидРасхода.
Пытаясь создать отчет. Отчет не будет многострочным, точнее говоря он выглядит в виде заранее установленной формы, в которую нужно забить данные бухгалтерских итогов и вывести данный отчет на экран. Одним словом, отчет из одной секции.
В форме отчета есть поле выбора в котором содержится список контрагентов, по которым нужно сформировать отчет, т.е. сколько значений в данном списке столько отчетов. При нажатии на кнопку Сформировать, отчет проходит по списку, выбирает контрагента, по нему с счета собирает различные итоги и обороты, присваивает данные переменным и выводит отчет, примерно так:
По Контрагенту1
ДОВидПомощи1ВидРасхода1=1000
ДОВидПомощи1ВидРасхода2=100
ДОВидПомощи2ВидРасхода1=500
ДОВидПомощи2ВидРасхода2=300
... и т.д.
ДО - дебетовый оборот, суммы после ровно результаты запроса, после того как цикл собрал все данные по Контрагенту, выводится отчет с собранными данными по Контрагенту, переходим к следующему контрагенту из списка в форме, так же собираем все данные и выводим отчет по нему с собранными данными
Вот типа такая задача
11 andryus
 
02.09.11
08:44
Вообщем тема закрыта, ошибка в том что я писал первоначально была в том, что я писал ИспользоватьСубконто по тому виду субконто (третьего по порядку), которого у данного счета нет, счета перепутал одним словом. Ошибка глупая, но была, а насчет того кода что пишите что он не верный, то зря, каждый ищет методы решения своим путем, я еще один путь решения нашел, который позволил бы не делать в цикле запрос, но не хочется переписывать, к тому же зачем, если тот код работает и выдает верный результат.
12 zuza
 
02.09.11
10:30
+(2) 6.Кто убил Кени
Программист всегда исправляет последнюю ошибку.