Передать список значений в качестве параметра для запроса (управляемое приложени #789681


#0 by jyurik
Добрый день! Есть внешний отчет. На форме реквизит «Регистратор» имеет тип «Список значений» и тип значения «ДокументСсылка.оупПроизводственнаяПрограмма». Отбор по этому реквизиту осуществляется хорошо, я могу набрать любой список нужных документов. Только вот этот список не видит Модуль объекта, и параметр запроса пишет «пустое значение». Как мне поступить, чтобы можно было увидеть этот мой список значений на модуле объекта?
#1 by Cyberhawk
"на модуле объекта" это как?
#2 by jyurik
во внешнем отчете Действия – Открыть Модуль Объекта
#3 by jyurik
в Модуле объекта есть процедура "Сформировать" а в ней запрос Так вот параметр этого запроса пишет пустая ссылка – параметр не видит список значения (я так понимаю)
#4 by JeyRico
Туда похоже пишется первая строка списка, а она пустая. Перебери список на форме в цикле и закинь его в массив. Массив и передавай.
#5 by DailyLookingOnASunse
А как связаны реквизит формы и параметр СКД? И реквизит формы не виден в модуле объекта. И это так и должно быть.
#6 by jyurik
СКД нет
#7 by DailyLookingOnASunse
Если СКД нет, то как это было выкурено? "параметр запроса пишет «пустое значение»."
#8 by jyurik
так вот мне и не понятно как именно передавать на модуль объекта эти данные (массив) я так понимаю что-то должно быть написано на сервере что-то на клиенте
#9 by jyurik
ОШИБКА: {ВнешнийОтчет.ОперативныйПланЗакупок.МодульОбъекта}: Метод объекта не обнаружен (Пустая)     Если Не Регистратор1.Пустая Тогда
#10 by Cyberhawk
"увидеть на модуле объекта" это как?
#11 by jyurik
Если для проверки Сообщить(Регистратор1); выводит пустое поле Это я так понимаю, что я не вижу данные списка значений
#12 by Cyberhawk
Ну если речь про реквизит формы, то логично
#13 by jyurik
если не сложно можно пример как это описать
#14 by jyurik
я просто пытался выгрузить список значений в массив только мне не понятно как именно мой реквизит «Регистратор1»описать в массиве
#15 by FIXXXL
МассивРегистраторов = Регистратор1.ВыгрузитьЗначения
#16 by jyurik
Где это все описать на сервере или на клиенте - не работал с управляемым приложением
#17 by FIXXXL
потом тебе этот массив куда передавать?
#18 by jyurik
у меня на модуле объекта в процедуре сформировать есть запрос и там указан параметр «Регистратор» Если я реквизит «Регистратор» делаю обычного типа  ссылкой на документ и выбираю в поле один нужный документ то отчет работает, а мне нужно что бы я мог в отчете выбирать несколько документов вот и пытаюсь все сделать через список значений
#19 by jyurik
Если я меняю тип реквизита «Регистратор» на Список значений то отчет выдает ошибку: ОШИБКА: {ВнешнийОтчет.ОперативныйПланЗакупок.МодульОбъекта}: Метод объекта не обнаружен (Пустая)     Если Не Регистратор.Пустая Тогда
#20 by jyurik
я уже попробовал сделать вот так: но только толку мало
#21 by jyurik
мне не понятно, что и в какой процедуре на форме указать, что бы можно было увидеть мой список отобранных документов в параметре запроса на Модуле объекта
#22 by FIXXXL
а у тебя "Регистратор" случаем не реквизит ли отчета самого?
#23 by FIXXXL
#24 by jyurik
"Регистратор" - да
#25 by FIXXXL
Если Не Регистратор.Пустая Тогда на а в тексте запроса равно смени на В и условие по Иначе перепиши         Запрос.Текст = СтрЗаменить(Запрос.Текст,"И ПроизводственнаяПрограмма В (&Регистратор)","");
#26 by jyurik
во на что ругнулся {ВнешнийОтчет.ОперативныйПланЗакупок.МодульОбъекта}: Ошибка при вызове метода контекста (Выполнить)     Результат = Запрос.Выполнить; по причине: {(137, 36)}: Не задано значение параметра "Регистратор" И ПроизводственнаяПрограмма В (<<?>>&Регистратор)) КАК оупПланыПотребностейИСопутствующихИзделийОбороты
#27 by jyurik
а как здесь фотку экрана скинуть у меня есть подозрение с неправильно введенными реквизитами
#28 by jyurik
ошибка в {(137, 36)}: Не задано значение параметра "Регистратор"  - форма не передает мои данные списка значений и как эти данные оформить на форме отчета я так и не понимаю
#29 by aleks_default
У реквизита отчета скорее всего тип ДокументСсылка.оупПроизводственнаяПрограмма, а нужно сделать его "Список значений".
#30 by jyurik
тип стоит Список значений, а тип значений "ДокументСсылка.оупПроизводственнаяПрограмма" - и при отборе он подбирает любой список нужных мне документов, только вот параметр запроса считает, что этих данных нет
#31 by FIXXXL
ставь точку останова, выясняй кто на ком стоял
#32 by jyurik
не работает отладчик - ставлю точку останова в любом месте, а отладка проскакивает и не останавливается. Я, правда, не совсем понимаю в каком месте поставить точку останова, что бы поймать "выясняй кто на ком стоял". Да и еще вопрос, а отладка в управляемом приложении отличается от обычного?
#33 by FIXXXL
отладка на сервере включена? точку останова поставь перед "ну и замени Если Не Регистратор.Пустая Тогда на Если Не Регистратор.Количество=0 Тогда" я хз как у тебя там счас код выглядит
#34 by jyurik
"отладка на сервере включена?" а как ее включить и где? На самом серваке, где база стоит?
#35 by jyurik
извини за возможно глупые вопросы, но я не работал на управляемом приложении
#36 by FIXXXL
управляемое тут нипричем почитай гугла
#37 by jyurik
Отладка на сервере отключена админом (по его личным соображениям), так что отладку запустить не могу
#38 by ildary
тогда пусть админ и отлаживает 1С-ку, если он такой умный или подгоняет тебе сервер разработчика.
#39 by FIXXXL
покажи код по кнопке Сформировать(или как она у тебя там)
#40 by jyurik
#41 by jyurik
Извините, но не могли бы подсказать, где именно надо мне на форму сделать перебор и кинуть в массив, и как массив передать - с управляемым приложением не работал
#42 by vicof
3 Выхода: 1. Прострелить коленку 2. Убиться об стену, намазанную ядом 3. Прочитать хотя бы одну книжку по УФ
#43 by FIXXXL
на УФ кнопка - у кнопки команда - у команды процедура эту процедуру покажи ты же показываешь уже формирование отчета из модуля отчета тут "И ПроизводственнаяПрограмма В (&Регистратор)"
#44 by jyurik
"И ПроизводственнаяПрограмма В (&Регистратор)" я уже добавил Код запроса показал при этом варианте выдает ошибку: {ВнешнийОтчет.ОперативныйПланЗакупок.МодульОбъекта}: Ошибка при вызове метода контекста (Выполнить)     Результат = Запрос.Выполнить; по причине: {(137, 36)}: Не задано значение параметра "Регистратор" И ПроизводственнаяПрограмма В (<<?>>&Регистратор)) КАК оупПланыПотребностейИСопутствующихИзделийОбороты
#45 by FIXXXL
не в запросе, а в коде условие Количество=0 срабатывает, а из текста запроса кусок не вычищается, потому что кусок старый с "=", а не "В"
#46 by jyurik
эта ошибка я думаю про запрос, а условие я изменил:
#47 by jyurik
{ВнешнийОтчет.ОперативныйПланЗакупок.МодульОбъекта}: Ошибка при вызове метода контекста (Выполнить) по причине: {(137, 36)}: Не задано значение параметра "Регистратор" И ПроизводственнаяПрограмма В (<<?>>&Регистратор)) КАК оупПланыПотребностейИСопутствующихИзделийОбороты
#48 by h-sp
ну, правильно, в "Иначе" ты же не определил параметр Регистратор.
#49 by jyurik
как не передела? А так не правильно: Запрос.Текст = СтрЗаменить(Запрос.Текст,"И ПроизводственнаяПрограмма в (&Регистратор)","");
#50 by h-sp
ну вот у вас Если Не Регистратор.Количество=0 Тогда а потом идет другая ветка "Иначе" там где установка параметра? нету.
#51 by jyurik
вот как у меня по всем параметрам написано:
#52 by jyurik
может я чего-тоне вижу, но я не понял
#53 by h-sp
в Иначе вставь, чего чудишь.         Запрос.Текст = СтрЗаменить(Запрос.Текст,"И ПроизводственнаяПрограмма в (&Регистратор)",""); это не параметры, как ты не поймешь. Это ты меняешь текст запроса.
#54 by jyurik
извини точно туплю Завтра попробую Спасибо :)
#55 by jyurik
поставил в начале запроса: «Сообщить(Регистратор);» сообщение вышло пустое – значит, из формы не передаются данные в запрос о выбранных документах, и выдает ошибку: {ВнешнийОтчет.ОперативныйПланЗакупок.МодульОбъекта}: Значение не является значением объектного типа (Пустая)     Если Не Регистратор.Пустая Тогда
#56 by jyurik
текст установки параметра запроса:
#57 by МимохожийОднако
Перед Запрос.Выполнить остановись и посмотри Запрос.ТекстЗапроса и заполнение параметров.
#58 by jyurik
вот что у меня после запроса написано: что значить "остановись и посмотри Запрос.ТекстЗапроса и заполнение параметров." - это я так понимаю в отладчике?
#59 by МимохожийОднако
В отладчике. Ставишь кружочек на строке Запрос.Выполнить и ...
#60 by jyurik
у нас не работает отладчик специально на серваке отключен как говорит админ если включить, то базы начнут не корректно работать  виснуть. Так что проверить отладкой нет возможности. Может вы можете подсказать что мне и где надо на форме обработки написать для того чтобы передать данные о моем списке значений для модуля объекта (параметры в запрос)
#61 by jyurik
вот мой код на форме обработки:
#62 by jyurik
не тот код кинул - вот правильный: в нем я не знаю как и где передать мои параметры Списка значений "Регистратор" на модуль объекта в запрос
#63 by FIXXXL
вот тут а в процедуре СформироватьОтчет лови свой массив и устанавливай параметром в запрос
#64 by FIXXXL
МАССИВРЕГИСТРАТОРОВ - надо получить из реквизита формы, в который заводишь список свой
#65 by jyurik
я так написал, не уверен, что правильно:
#66 by jyurik
Я поэкспериментировал и написал вот так: теперь отчет открывается с выбранными мною документами но при условии того что я закомментировал строки в установке параметров запроса: Если не комментировать, то он все равно считает что параметр пустой
#67 by jyurik
Огромное СПАСИБО!!! за помощь
#68 by FIXXXL
>Если не комментировать, то он все равно считает что параметр пустой мож у тебя в тексте запроса еще где параметр &Регистратор используется? посмотри поиском
#69 by jyurik
один раз в запросе:
#70 by jyurik
сейчас у меня отчет формируется, если я заполняю список значений реквизита «Регистратор», а если я его не заполняю, то отчет не формируется выходит только шапка отчета и все. Получается теперь у меня не правильное условие установки параметра запроса?
#71 by jyurik
{ВнешнийОтчет.ОперативныйПланЗакупок.МодульОбъекта}: Метод объекта не обнаружен (Пустая)     Если Не Регистратор.Пустая Тогда
#72 by МимохожийОднако
Все отладки рекомендуется делать на копии или на локальном компьютере. Если НЕ ЗначениеЗаполнено(Регистратор) Тогда
#73 by jyurik
нет возможности делать отладку sql база на локальном компе не разворачивается - только серверный вариант на SQl ее размер примерно 40 гигов или около того
#74 by jyurik
и Огромное Вам СПАСИБО за помощь. Все получилось ТЕМА ЗАКРЫТА!!!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С