|
Почему то не работает запрос.. бух 2.0 | ☑ | ||
---|---|---|---|---|
0
kasazanov
10.06.13
✎
10:39
|
Конфигурация бухгалтерия 2.0
Делаю обработку проведения по новому регистру в документе перемещение товаров и хочу вытащить суммы из хозрасчетного, но чето не выходит. Когда делаю отладку в "Выборка" пишет ошибка чтения значения, создал новую печатку с пустым макетом, тот же самый запрос выбирает то что нужно, а тут не работает.. почему? Движения.АстекоЗаказы.Очистить(); Для каждого стрДвижениеПоЗаказам из ЭтотОбъект.Товары Цикл ДвижениеПоЗаказам = Движения.АстекоЗаказы.Добавить(); ДвижениеПоЗаказам.Период = Дата; ДвижениеПоЗаказам.Организация = Организация; ДвижениеПоЗаказам.СкладОтправитель = СкладОтправитель; ДвижениеПоЗаказам.СкладПолучатель = СкладПолучатель; ДвижениеПоЗаказам.Заказ = Заказ; ДвижениеПоЗаказам.Количество = стрДвижениеПоЗаказам.Количество; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОбороты.СуммаОборотДт, | ХозрасчетныйОбороты.Регистратор, | ХозрасчетныйОбороты.Субконто1 |ИЗ | РегистрБухгалтерии.Хозрасчетный.Обороты(, , Регистратор, , , , , ) КАК ХозрасчетныйОбороты |ГДЕ | ХозрасчетныйОбороты.Регистратор = &Регистратор"; Запрос.УстановитьПараметр("Регистратор", ЭтотОбъект.Ссылка); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ДвижениеПоЗаказам.Сумма = стрДвижениеПоЗаказам.Выборка.Сумма; КонецЦикла; КонецЦикла; |
|||
1
Жирафка
10.06.13
✎
10:40
|
Как же я обожаю запросы в цикле
|
|||
2
Любопытная
10.06.13
✎
10:41
|
В чем смысл
Пока Выборка.Следующий() Цикл ДвижениеПоЗаказам.Сумма = стрДвижениеПоЗаказам.Выборка.Сумма; КонецЦикла; ? |
|||
3
kasazanov
10.06.13
✎
10:43
|
(2) а как мне лучше выбрать что то из запроса?
|
|||
4
Любопытная
10.06.13
✎
10:45
|
(3) а где там вообще обращение к результатам запроса?
стрДвижениеПоЗаказам.Выборка.Сумма обращается к значению реквизита Выборка строки стрДвижениеПоЗаказам, к запросу это не имеет никакого отношения |
|||
5
Ненавижу 1С
гуру
10.06.13
✎
10:45
|
(3) а какое отношение
ДвижениеПоЗаказам.Сумма = стрДвижениеПоЗаказам.Выборка.Сумма; имеет к данным запроса? |
|||
6
kasazanov
10.06.13
✎
10:47
|
Я просто делал псевдоним у СуммаОборотДт = Сумма
Просто потом править начал и удалил этот псевдоним. |
|||
7
kasazanov
10.06.13
✎
10:48
|
А ДвижениеПоЗаказам.Сумма это ресурс в регистре накопления
|
|||
8
Любопытная
10.06.13
✎
10:48
|
Ну и собственно - в чем смысл кода?
Зачем запрос в цикле? И вообще, хрень какая-то получается |
|||
9
kasazanov
10.06.13
✎
10:49
|
Вынул запрос из цикла, тоже самое, ошибка чтения значения.
|
|||
10
Любопытная
10.06.13
✎
10:51
|
(9)Что ты делаешь?
|
|||
11
Любопытная
10.06.13
✎
10:52
|
Запрос вернет суммы всех оборотов документа по субконто1 каждого движения. Это что вообще? Если рассматривать запрос на примере документа реализация, например, то мы получим суммы по номенклатуре, по контрагенту, и еще по НДС при большом желании. И все это в одной куче. Какой смысл?
|
|||
12
lisrws
10.06.13
✎
10:54
|
как-то так:
Движения.АстекоЗаказы.Очистить(); Для каждого стрДвижениеПоЗаказам из ЭтотОбъект.Товары Цикл ДвижениеПоЗаказам = Движения.АстекоЗаказы.Добавить(); ДвижениеПоЗаказам.Период = Дата; ДвижениеПоЗаказам.Организация = Организация; ДвижениеПоЗаказам.СкладОтправитель = СкладОтправитель; ДвижениеПоЗаказам.СкладПолучатель = СкладПолучатель; ДвижениеПоЗаказам.Заказ = Заказ; ДвижениеПоЗаказам.Количество = стрДвижениеПоЗаказам.Количество; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОбороты.СуммаОборотДт Как Сумма, | ХозрасчетныйОбороты.Регистратор, | ХозрасчетныйОбороты.Субконто1 |ИЗ | РегистрБухгалтерии.Хозрасчетный.Обороты(, , Регистратор, , , , , ) КАК ХозрасчетныйОбороты |ГДЕ | ХозрасчетныйОбороты.Регистратор = &Регистратор"; Запрос.УстановитьПараметр("Регистратор", ЭтотОбъект.Ссылка); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ДвижениеПоЗаказам.Сумма = Выборка.Сумма; КонецЦикла; КонецЦикла; |
|||
13
kasazanov
10.06.13
✎
10:56
|
В документе перемещение нету в ТЧ реквизита "сумма" она появляется только после проведения документа, соответственно я хочу выбрать эти суммы чтобы они записались в новый регистр.
поэтому запрос выбирает суммы, а условие регисратор определяет что это конкретно для моего документа. |
|||
14
lisrws
10.06.13
✎
10:56
|
"| ХозрасчетныйОбороты.СуммаОборотДт Как Сумма,"
и "Выборка.Сумма" но код, конечно бредовый. ты делаешь запрос в цикле, при этом не передавая каждое новое значение в запрос. у тебя запрос при каждой итерации будет возвращать один и тот же результат. вынеси его перед циклом |
|||
15
fmrlex
10.06.13
✎
10:58
|
(0) Запрос в цикле?
*расчехляю дробовик* |
|||
16
kasazanov
10.06.13
✎
11:00
|
(12) это тоже самое, только псевдоним добавил, я про это писал в (6)
проблема в том что в "Выборка" не передаются значения. (15) вынимал запрос из цикла - тоже самое. |
|||
17
Любопытная
10.06.13
✎
11:04
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОбороты.СуммаОборотДт Как Сумма, | ХозрасчетныйОбороты.Регистратор, | ХозрасчетныйОбороты.Субконто1 |ИЗ | РегистрБухгалтерии.Хозрасчетный.Обороты(, , Регистратор, , , , , ) КАК ХозрасчетныйОбороты |ГДЕ | ХозрасчетныйОбороты.Регистратор = &Регистратор"; Запрос.УстановитьПараметр("Регистратор", ЭтотОбъект.Ссылка); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Номенклатура = Выборка.субконто1; СтрокаТЧ = ЭтотОбъект.Товары.Найти(Номенклатура); Если не СтрокаТЧ = Неопределено ТОгда ДвижениеПоЗаказам = Движения.АстекоЗаказы.Добавить(); ДвижениеПоЗаказам.Период = Дата; ДвижениеПоЗаказам.Организация = Организация; ДвижениеПоЗаказам.СкладОтправитель = СкладОтправитель; ДвижениеПоЗаказам.СкладПолучатель = СкладПолучатель; ДвижениеПоЗаказам.Заказ = Заказ; ДвижениеПоЗаказам.Количество = СтрокаТЧ.Количество; ДвижениеПоЗаказам.Сумма = Выборка.Сумма; КонецЕсли; КонецЦикла; КонецЦикла; На, извращайся. Из твоего кода в блокноте нацарапала. Но так не делают тоже, вообще-то Поймай момент, в котором формируется таблица для проводок и бери эту таблицу для твоего регистра |
|||
18
lisrws
10.06.13
✎
11:08
|
и в запрос в качестве параметра еще не плохо бы передать список номенклатуры для субконто 1. иначе для документа в 2 строки будут все возможные субконто перебираться
|
|||
19
lisrws
10.06.13
✎
11:08
|
зы. но это если запрос перед циклом, как в (17)
|
|||
20
kasazanov
10.06.13
✎
11:09
|
(17) попробовал твой код, тоже самое, нету сумм - в отладке в "Выборка" пишет "Ошибка чтения значения"
|
|||
21
Любопытная
10.06.13
✎
11:11
|
(20) Сделай Запрос.Выполнить().Выгрузить() и посмотри, что в ТЗ.
Ошибку целиком сюда. Желательно вместе со строкой, на которой ошибка |
|||
22
kasazanov
10.06.13
✎
11:29
|
Короче я все понял, спасибо ))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |