|
|
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
Здравствуйте Пишу отчет Есть Регистр накопления НачислениеСФ, в нем реквизит Источник (Тип СправочникСсылка.ИсточникиТепла) Необходимо вывести отчеты, где: Справочники.ИсточникиТепла.ДалансоваяПринадлежность=Истина(1 отчет) и Справочники.ИсточникиТепла.ДалансоваяПринадлежность=Ложь(2 отчет) Делаю следущее: Выборка = Справочники.ИсточникиТепла.Выбрать(); Отбор = Новый Структура ("Источник",Выборка.Ссылка); Пока Выборка.Следующий() Цикл Данные=Начисление.Выбрать(НачДата,КонДата,Отбор); ТолькоСвои = Данные.Источник.БалансоваяПринадлежность; Если ТолькоСвои = Истина И ВидФормыОтчета = "3" Тогда ПечатьФормаОтпущеноТеплаКотельными(НачДата,КонДата,РегионМ,ИсточникМ,ВидФормыОтчетаМ,ТолькоСвои=Истина,ТаблНачисления,ТаблНачисленияК,СразуНаПечать); ИначеЕсли (ТолькоСвои = Ложь И ВидФормыОтчета = "4") Тогда ПечатьФормаОтпущеноТеплаКотельными(НачДата,КонДата,РегионМ,ИсточникМ,ВидФормыОтчетаМ,ТолькоСвои=Ложь,ТаблНачисления,ТаблНачисленияК,СразуНаПечать); КонецЕсли; КонецЦикла; При отладке выскакивает ошибка: Ошибка при вызове метода контекста (Выбрать): Недопустимое значение параметра (параметр номер '3') Данные=Начисление.Выбрать(НачДата,КонДата,Отбор); Подскажите, в чем тут дело... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 13:54 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
в 8-ке за такие "отчеты" принято бить между ушей чем-нибудь тяжелым... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 14:12 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
Выборка = Справочники.ИсточникиТепла.Выбрать(); Пока Выборка.Следующий() Цикл Отбор = Новый Структура ("Источник",Выборка.Ссылка); для начала... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 14:14 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
Господин ПЖВыборка = Справочники.ИсточникиТепла.Выбрать(); Пока Выборка.Следующий() Цикл Отбор = Новый Структура ("Источник",Выборка.Ссылка); для начала... такая же ошибка возникает.. Бить то зачем? в этой сфере я не давно, еще учусь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 14:28 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
Запрос = Новый Запрос; Запрос.Текст = "Выбрать | | НачислениеСФ.Источник | | ИЗ | | РегистрНакопления.НачислениеСФ КАК НачислениеСФ | | ГДЕ | НачислениеСФ.Источник.БалансоваяПринадлежность"; Рез = Запрос.Выполнить(); Если Рез.Пустой() Тогда Возврат; КонецЕсли; Выборка = Рез.Выбрать(); Пока Выборка.Следующий() Цикл Сообщить("" + Выборка.Источник); КонецЦикла; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 14:36 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
Olga-25 в этой сфере я не давно, еще учусь есть смысл сходить на курсы, почитать книжки... А то пока больше на метод научного тыка похоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 14:38 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
Господин ПЖOlga-25 в этой сфере я не давно, еще учусь есть смысл сходить на курсы, почитать книжки... А то пока больше на метод научного тыка похоже. курсы были есть сертификат Профессионал просто делаю, как наставник настоятельно советует... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 14:46 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
а я вот это еше просмотрел - "реквизит". Если реквизит в отборе, то он должен быть индексирован в регистре ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 15:05 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
Господин ПЖа я вот это еше просмотрел - "реквизит". Если реквизит в отборе, то он должен быть индексирован в регистре Это я проморгала... Теперь выдает ошибку: Значение не является значением объектного типа (БалансоваяПринадлежность) ТолькоСвои = Данные.Источник.БалансоваяПринадлежность; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 15:14 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
Olga-25 просто делаю, как наставник настоятельно советует... не знаю... мне не нравится то, что он вам советует. Запрос = Новый Запрос; Запрос.Текст = "Выбрать | | НачислениеСФ.Источник, | НачислениеСФ.Источник.БалансоваяПринадлежность | | ИЗ | | РегистрНакопления.НачислениеСФ КАК НачислениеСФ"; Рез = Запрос.Выполнить(); Если Рез.Пустой() Тогда Возврат; КонецЕсли; Выборка = Рез.Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.БалансоваяПринадлежность И ВидФормыОтчета = "3" Тогда .............. ИначеЕсли НЕ Выборка.БалансоваяПринадлежность И ВидФормыОтчета = "4" Тогда .............. КонецЕсли; КонецЦикла; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 15:29 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
Olga-25Господин ПЖа я вот это еше просмотрел - "реквизит". Если реквизит в отборе, то он должен быть индексирован в регистре Это я проморгала... Теперь выдает ошибку: Значение не является значением объектного типа (БалансоваяПринадлежность) ТолькоСвои = Данные.Источник.БалансоваяПринадлежность; логично... >>Данные=Начисление.Выбрать(НачДата,КонДата,Отбор); >>ТолькоСвои = Данные.Источник.БалансоваяПринадлежность; выборка есть, а где ее обход? Данные=Начисление.Выбрать(НачДата,КонДата,Отбор); Пока Данные.Следующий() Цикл ТолькоСвои = Данные.Источник.БалансоваяПринадлежность; КонецЦикла; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 15:32 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
хотя эта шиза какая-то... лазить в реквизит регистра накопления для формирования отчета... он (реквизит) кстати повторяется наверное в регистре... Запрос = Новый Запрос; Запрос.Текст = "Выбрать | | ВложенныйЗапрос.Источник, | ВложенныйЗапрос.Источник.БалансоваяПринадлежность | | ИЗ | (Выбрать РАЗЛИЧНЫЕ | ВложенныйЗапрос.Источник КАК Источник | ИЗ | РегистрНакопления.НачислениеСФ КАК НачислениеСФ) КАК ВложенныйЗапрос"; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 15:36 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
>>Данные=Начисление.Выбрать(НачДата,КонДата,Отбор); >>ТолькоСвои = Данные.Источник.БалансоваяПринадлежность; выборка есть, а где ее обход? Данные=Начисление.Выбрать(НачДата,КонДата,Отбор); Пока Данные.Следующий() Цикл ТолькоСвои = Данные.Источник.БалансоваяПринадлежность; КонецЦикла;[/quot] Так выборка у меня есть Только по справочнику... Получается вот как: в справочнике ИсточникиТепла ищем записи где БалансоваяПринадлежность или истина или Ложь (для разных отчетов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 15:38 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
Olga-25 Так выборка у меня есть Только по справочнику... ну да... а по регистру обход за вас - Пушкин делать будет? В этом и кривость исходного решения. Если нужно чисто по справочнику пройтись - зачем в регистр "нырять"? Если нужны только те элементы справочника, которые использовались в регистре - зачем обходить справочник? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 15:42 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
в Процедуру ПечатьОтпущеноТелпаКотельными не заходит(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 16:09 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
Olga-25в Процедуру ПечатьОтпущеноТелпаКотельными не заходит(( если оставили так: Выборка = Справочники.ИсточникиТепла.Выбрать(); Отбор = Новый Структура ("Источник",Выборка.Ссылка); Пока Выборка.Следующий() Цикл Данные=Начисление.Выбрать(НачДата,КонДата,Отбор); то и не зайдет. суете "Выборка.Ссылка" в отбор, ходя обход выборки по справочнику еще не начинался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 16:14 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
Выборка = Справочники.ИсточникиТепла.Выбрать(); Пока Выборка.Следующий() Цикл Отбор = Новый Структура ("Источник",Выборка.Ссылка); Данные=РегистрыНакопления.НачислениеСФ.Обороты(НачДата,КонДата,Отбор,,); Для Каждого ТекСтрока1 Из Данные Цикл ТолькоСвои = ТекСтрока1.Источник.БалансоваяПринадлежность; Если ТолькоСвои = Истина Тогда ПечатьФормаОтпущеноТеплаКотельными(НачДата,КонДата,РегионМ,ИсточникМ,ВидФормыОтчетаМ,ТолькоСвои,ТаблНачисления,ТаблНачисленияК,СразуНаПечать); Сделала так, работает Ном не еще нужно проверить, какая форма отчета выбрана (в диалоге размещены переключатели) Пыталась сделать так: Если ТолькоСвои = Истина И ВидФормыОтчетаМ="3" Тогда В этом случае в процедуру ПечатьФорма.. не заходит вообще.. Может я чего не так записываю?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 13:10 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
перепутала)) Если ВидФормыОтчетаМ="3" ИЛИ ВидФормыОтчета = "4" Тогда .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 13:23 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
во первых "Если ТолькоСвои = Истина" так писать не надо. Достаточно "Если ТолькоСвои И ..." ну и есть мнение что ВидФормыОтчетаМ это число... отладчик это подтвердит наверное т.о. имеем: Если ТолькоСвои И ВидФормыОтчета = 3 Тогда ИначеЕсли НЕ ТолькоСвои И ВидФормыОтчета = 4 Тогда КонецЕсли; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 13:25 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
вот это тоже странно выглядит ПечатьФормаОтпущеноТеплаКотельными(НачДата,КонДата,РегионМ,ИсточникМ,ВидФормыОтчетаМ, ТолькоСвои=Истина ,ТаблНачисления,ТаблНачисленияК,СразуНаПечать); ПечатьФормаОтпущеноТеплаКотельными(НачДата,КонДата,РегионМ,ИсточникМ,ВидФормыОтчетаМ, ТолькоСвои=Ложь ,ТаблНачисления,ТаблНачисленияК,СразуНаПечать); ибо при любом раскладе в функцию попадет "Истина" в ветку условия "Иначе" попадает при ТолькоСвои=Ложь. И в ней условие ТолькоСвои=Ложь будет равно Истина. П.э. надо передавать так как есть - "ТолькоСвои". Переменная сама знает, "истина" она или "ложь": ПечатьФормаОтпущеноТеплаКотельными(НачДата,КонДата,РегионМ,ИсточникМ,ВидФормыОтчетаМ, ТолькоСвои ,ТаблНачисления,ТаблНачисленияК,СразуНаПечать); ЗЫ увольнять надо за несоответствие вашего наставника. Вы лепите какую-то фихню, а куда он смотрит - не понятно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 13:30 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
то что истина можно опускать я знаю но в данном случае это не принципиально Значение переменной ТолькоСвои я ищу для двух форм, поэтому мне надо изначально поставить проверку на значение этой переменной это я и пыталась сделать конструкцией Если ВидФормыОтчетаМ="3" ИЛИ ВидФормыОтчета = "4" Тогда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 13:32 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
ну уволить его не надо просто работы очень много, времени на обучение не хватает вот и приходится самостоятельно тыкаться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 14:16 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
>>то что истина можно опускать я знаю но в данном случае это не принципиально это принципиально, в функцию постоянно попадает "Истина" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 14:18 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
я имею ввиду не принципиально в условии Если ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 19:57 |
|
||
|
Выборка по регистру накопления
|
|||
|---|---|---|---|
|
#18+
Еще вопрос Если ВидФормыОтчетаМ=3 ИЛИ ВидФормыОтчетаМ=4 Тогда Пока 1=1 Цикл Удалено=Ложь; Для Каждого ТекСтр Из ТаблНачисления Цикл //1 Если ВидФормыОтчетаМ=3 Тогда Если Не ТекСтр.Источник.БалансоваяПринадлежность Тогда ТолькоСвои=Истина; ТаблНачисления.Удалить(ТекСтр); Удалено=Истина; Прервать; КонецЕсли; ИначеЕсли ВидФормыОтчетаМ=4 Тогда Если ТекСтр.Источник.БалансоваяПринадлежность Тогда ТолькоСвои=Ложь; ТаблНачисления.Удалить(ТекСтр); Удалено=Истина; Прервать; КонецЕсли; КонецЕсли; КонецЦикла; Если Не Удалено Тогда Прервать; КонецЕсли; КонецЦикла; КонецЕсли; //1 Почему не заходит в цикл (для ВидФормыОтчетаМ=3 ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 10:44 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=36152538&tid=1523379]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 441ms |

| 0 / 0 |
