|
Как отладить запрос по кому? | ☑ | ||
---|---|---|---|---|
0
Галахад
гуру
22.11.13
✎
08:20
|
Вроде простой код, а возвращает Null.
Когда проверяю в консоли, в другой базе возвращает число. СотрудникВДругойБазе = База.Справочники.ФизическиеЛица.НайтиПоНаименованию(Сотрудник.Наименование); Если СотрудникВДругойБазе = База.Справочники.ФизическиеЛица.ПустаяСсылка() Тогда Возврат 0; КонецЕсли; Запрос = База.NewObject("Запрос"); Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОборотыДтКт.СуммаОборот |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&Дата1, &Дата2, , СчетДт = &Счет_70, , СчетКт = &Счет_68_1, , СубконтоДт1 = &СубконтоДт) КАК ХозрасчетныйОборотыДтКт"; Запрос.УстановитьПараметр("Дата1", Дата1); Запрос.УстановитьПараметр("Дата2", Дата2); Запрос.УстановитьПараметр("Счет_70", База.ПланыСчетов.Хозрасчетный.НайтиПоКоду("70")); Запрос.УстановитьПараметр("Счет_68_1", База.ПланыСчетов.Хозрасчетный.НайтиПоКоду("68.01")); Запрос.УстановитьПараметр("СубконтоДт", СотрудникВДругойБазе); Сумма = 0; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Сумма = Выборка.СуммаОборот; КонецЦикла; Возврат Сумма; |
|||
1
Wobland
22.11.13
✎
08:25
|
ну а отладчик же работает. посмотри в ТЗ из запроса
|
|||
2
Галахад
гуру
22.11.13
✎
08:26
|
(1) Да смотрел. Там одна строка и в ней Null.
|
|||
3
Wobland
22.11.13
✎
08:28
|
откуда? бредятина какая..
|
|||
4
Rovan
гуру
22.11.13
✎
08:29
|
Попробуй так
| РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&Дата1, &Дата2, , СчетДт.КОД = ""70"", , СчетКт.Код = ""68.1"", , СубконтоДт1.Наименование = "" + Сотрудник.Наименование + "" ) КАК ХозрасчетныйОборотыДтКт"; |
|||
5
George Wheels
22.11.13
✎
08:31
|
(2) Добавь в выборку какие-нибудь субконто Дт Кт, чтобы определиться, откуда это.
|
|||
6
Rie
22.11.13
✎
08:35
|
Если счета предопределённые - можно через ЗНАЧЕНИЕ.
|
|||
7
Галахад
гуру
22.11.13
✎
08:37
|
(3) Ну, написал. Чо.
(4) Идея. (5) Попробовал так: Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОборотыДтКт.СуммаОборот, | ХозрасчетныйОборотыДтКт.СчетДт, | ХозрасчетныйОборотыДтКт.СчетКт, | ХозрасчетныйОборотыДтКт.СубконтоДт1 |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&Дата1, &Дата2, , СчетДт = &Счет_70, , СчетКт = &Счет_68_1, , СубконтоДт1 = &СубконтоДт) КАК ХозрасчетныйОборотыДтКт"; Стало еще интереснее. Результат запроса пустой... |
|||
8
shuhard
22.11.13
✎
08:41
|
(7) будь мужиком
убери отборы, начиная с даты |
|||
9
Wobland
22.11.13
✎
08:43
|
а типа пустой результат запроса "из там" есть нулл?
|
|||
10
anaed
22.11.13
✎
08:45
|
СотрудникВДругойБазе = База.Справочники.ФизическиеЛица.НайтиПоНаименованию(Сотрудник.Наименование);
может дело в этом? что отладчик говорит про СотрудникВДругойБазе во время выполнения запроса? |
|||
11
Галахад
гуру
22.11.13
✎
08:47
|
(7)+ Соврал оказывается. В этом варианте все работает.
(я там даты не те поставил). Но непонятно, почему первый вариант возвращает фигню. |
|||
12
Галахад
гуру
22.11.13
✎
08:49
|
(8) Да, идея. Хотя я их все в отладчике проверил.
(9) Нет. Это СуммаОборот = Null. (10) Говорит, что комобъект. |
|||
13
anaed
22.11.13
✎
08:51
|
(12) А если СотрудникВДругойБазе.наименование
|
|||
14
Галахад
гуру
22.11.13
✎
08:53
|
(13) СотрудникВДругойБазе.Наименование = Сотрудник.Наименование Истина
Поставил два запроса один за другим. Из (0) и (7). В одном выборка пустая, в другом выборка есть, но СуммаОборот = Null. Крыша едет не спеша. |
|||
15
anaed
22.11.13
✎
09:04
|
(14) может во второй базе физ лица задвоены?
|
|||
16
Галахад
гуру
22.11.13
✎
09:10
|
(15) Гм. А какая разница? Запросы-то, по-идее один и тот же результат должны выдавать.
|
|||
17
Wobland
22.11.13
✎
09:10
|
или наименование немного похожи
https://www.dropbox.com/s/67dj21d48ecablf/20130912_153153.jpg |
|||
18
Wobland
22.11.13
✎
09:11
|
(16) найти находит любого подходящего
|
|||
19
anaed
22.11.13
✎
09:14
|
(16) а запрос ищет по ссылке и получается что по ссылке дубля нету никаких данных в хозрасчетном.
|
|||
20
Галахад
гуру
22.11.13
✎
09:17
|
Код привожу. Сотрудник один и тот же, запрос практически то же. А в результате разница.
СотрудникВДругойБазе = База.Справочники.ФизическиеЛица.НайтиПоНаименованию(Сотрудник.Наименование); Если СотрудникВДругойБазе = База.Справочники.ФизическиеЛица.ПустаяСсылка() Тогда Возврат 0; КонецЕсли; Запрос = База.NewObject("Запрос"); Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОборотыДтКт.СуммаОборот, | ХозрасчетныйОборотыДтКт.СчетДт, | ХозрасчетныйОборотыДтКт.СчетКт, | ХозрасчетныйОборотыДтКт.СубконтоДт1 |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&Дата1, &Дата2, , СчетДт = &Счет_70, , СчетКт = &Счет_68_1, , СубконтоДт1 = &СубконтоДт) КАК ХозрасчетныйОборотыДтКт"; Запрос.УстановитьПараметр("Дата1", Дата1); Запрос.УстановитьПараметр("Дата2", Дата2); Запрос.УстановитьПараметр("Счет_70", База.ПланыСчетов.Хозрасчетный.НайтиПоКоду("70")); Запрос.УстановитьПараметр("Счет_68_1", База.ПланыСчетов.Хозрасчетный.НайтиПоКоду("68.01")); Запрос.УстановитьПараметр("СубконтоДт", СотрудникВДругойБазе); Сумма = 0; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Сумма = Выборка.СуммаОборот; КонецЦикла; Запрос = База.NewObject("Запрос"); Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОборотыДтКт.СуммаОборот |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&Дата1, &Дата2, , СчетДт = &Счет_70, , СчетКт = &Счет_68_1, , СубконтоДт1 = &СубконтоДт) КАК ХозрасчетныйОборотыДтКт"; Запрос.УстановитьПараметр("Дата1", Дата1); Запрос.УстановитьПараметр("Дата2", Дата2); Запрос.УстановитьПараметр("Счет_70", База.ПланыСчетов.Хозрасчетный.НайтиПоКоду("70")); Запрос.УстановитьПараметр("Счет_68_1", База.ПланыСчетов.Хозрасчетный.НайтиПоКоду("68.01")); Запрос.УстановитьПараметр("СубконтоДт", СотрудникВДругойБазе); Сумма2 = 0; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Сумма2 = Выборка.СуммаОборот; КонецЦикла; Если Сумма <> Сумма2 Тогда Сообщить("ля-ля"); КонецЕсли; |
|||
21
Галахад
гуру
22.11.13
✎
09:18
|
Всегда "ля-ля".
|
|||
22
anaed
22.11.13
✎
09:31
|
(21) потому что в первом вернул null а во втором пустой результат запроса и сумма2 осталось 0.
|
|||
23
Галахад
гуру
22.11.13
✎
09:37
|
(22) А почему? Запросы же одинаковы.
З.Ы. Наоборот в первом пустой, а втором Null. |
|||
24
anaed
22.11.13
✎
09:42
|
Не одинаковы. Но оба говорят что нету данных в хозрасчетном по этой ссылке на ФизЛицо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |