|
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 154
|
||||||
Выбор формы списка и передача параметра22.04.2010, 21:49. Показов 38097. Ответов 24
Метки нет (Все метки)
Подскажите в чем может быть неточность:
в документе Зачисление есть реквизиты Факультет(тип Справочник.Факультеты) и Специальность(тип Справочник.Специальности,в справочнике есть реквизит Факультет). Надо, чтобы при выборе факультета, открывалась форма списка справочника Специальности со списком только тех специальностей, которые соответствуют данному выбранному факультету. Я создала форму списка ДляВыбора в справочнике Специальности, где в модуле формы списка ДляВыбора прописала процедуру ПриОткрытии(Фак), где Фак - передающийся параметр из документа. В документе я присвоила реквизиту Специальность процедуру ВыборФормы(), где указала на открытие формы списка ДляВыбора и параметр Факультет(код ниже). !!!Проблема состоит в том, что у меня даже не открывается никакая форма при нажатии на реквизит документа Специальности. Подскажите в чем проблема. В свойствах реквизита документа во вкладке Дополнительно я установила Форма: ДляВыбора (хотя и при выборе Авто тож не работает)
0
|
||||||
| 22.04.2010, 21:49 | |
|
Ответы с готовыми решениями:
24
Передача параметра из закрываемой формы Передача в качестве параметра списка унаследованных объектов |
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
| 23.04.2010, 00:01 | |
|
Сорри, все назад, спутал с ОткрытьПодбор
Вроде, все написано правильно, а что в отладчике ? Попадаем ли на процедуру ВыборФормы ? Может, Факультет.Выбран()=1 не отрабатывает ? Или это вообще проверять не надо ?
0
|
|
|
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 154
|
||||||
| 23.04.2010, 00:21 | ||||||
|
вроде по проверке эта процедура правильная. Возможно проблема не в этом коде, а в коде, который написан в форме списка ДляВыбора:
0
|
||||||
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
| 23.04.2010, 00:48 | |
|
Попробуй ПриОткрытии() //без параметра, вроде так и должно быть
а в ней поставь Фак = Форма.Параметр // если он передается ссылкой на справочник и еще раз повторю то, что не отправилось своевременно Может, Факультет.Выбран()=1 не отрабатывает ? Или это вообще проверять не надо ?
0
|
|
|
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 154
|
|
| 23.04.2010, 01:16 | |
|
Переменная Фак пустая, значение выбранного реквизита документа не передается. А в ОткрытьФорму("Справочник.Специальности.Д ляВыбора",Факультет);, где факультет - это реквизит документа, который имеет тип Справочник.Факультеты и по нему надо отбирать специальности. Может надо как-то по-другому прописать Факультет?
0
|
|
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
| 23.04.2010, 01:20 | |
|
Попробуй передать параметры списком значений из одного значения "Факультет"
и в ПриОткрытии используй Форма.Параметр.Получить
0
|
|
|
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 154
|
|
| 23.04.2010, 01:44 | |
|
Вы бы не могли привести небольшой пример, а то что-то ничего не получается.
0
|
|
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
| 23.04.2010, 01:52 | |
|
Процедура ВыборФормы()
Если Факультет.Выбран()=1 Тогда Параметры = СоздатьОбъект("СписокЗначений"); Параметры.ДобавитьЗначение(Факультет,"Фа культет"); ОткрытьФорму("Справочник.Специальности.Д ляВыбора",Параметры); КонецЕсли; в форме списка Процедура ПриОткрытии() Фак = Форма.Параметр.Получить("Факультет"); ..... Если СпрСпец.Факультет = Фак тогда СписокЭлементов.ДобавитьЗначение(СпрСпец .ТекущийЭлемент()); ....... КонецПроцедуры
0
|
|
|
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 154
|
|
| 23.04.2010, 02:07 | |
|
В процедуре ПриОткрытии пишет :
Фак=Форма.Параметр.Получить("Факультет") ; Значение не представляет агрегатный объект (Получить)
0
|
|
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
| 23.04.2010, 02:13 | |
|
Параметр и Параметры
не перепутала ? В отладчике посмотри как выглядят переменные Параметры перед вызовом и Параметр при входе в форму списка. Вроде, механизм стандартный Вообще-то корректно сделать проверку Если ТипЗначенияСтр(Форма.Параметр) = "СписокЗначений" тогда Фак=Форма.Параметр.Получить("Факультет") ; и т.д.
0
|
|
|
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 154
|
|||||||||||
| 23.04.2010, 02:35 | |||||||||||
|
Я даже не могу просмотреть в отладчике процедуру ВыборФормы(): ставлю точки прерывания, а оно все равно сразу открывает форму списка и не переходит в отладчик на те точки, которые я поставила в документе.
Поставила проверку Если ТипЗначенияСтр(Форма.Параметр) = "СписокЗначений" тогда как вы и посоветовали, но как я поняла из отладчика это условие не выполняется, т.е. не равно "СписокЗначений". Я уже и не знаю что с этим делать, вроде бы все правильно. Еще раз приведу отрывки кода: В документе в реквизите Специальность:
0
|
|||||||||||
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
| 23.04.2010, 02:54 | |
|
А из какого-нибудь другого места не может вызываться открытие формы
ОткрытьФорму("Справочник.Специальности.Д ляВыбора",Параметры); ? Процедура ВыборФормы() Если Факультет.Выбран()=1 Тогда Параметры = СоздатьОбъект("СписокЗначений"); Параметры.ДобавитьЗначение(Факультет,"Фа культет"); // вот здесь остановись в отладчике и посмотри, чему равна переменная "Параметры", потом по F8 шагай ОткрытьФорму("Справочник.Специальности.Д ляВыбора",Параметры); КонецЕсли;
0
|
|
|
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 154
|
|||
| 23.04.2010, 03:09 | |||
Параметры.ДобавитьЗначение(Факультет,"Фа культет"); ОткрытьФорму("Справочник.Специальности.Д ляВыбора",Параметры); и ничего не остановилось, а просто открыло пустую форму списка( Как я понимаю, то список значений не создается. Что-то не то с переменной Факультет. В эту переменную не попадает значение (например название(наименование) факультета из справочника Факультеты), поэтому и список пустой
0
|
|||
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
||
| 23.04.2010, 03:21 | ||
Похоже, что при клике на реквизите "Специальности" сразу открывается форма списка. Тогда заведи в табличной части реквизит типа "текст"(Псевдоспециальность), на закладку "дополнительно" повесь "ВыборФормы", а после ее отработки заполняй реквизит "Специальность", каковой сделай недоступным для редактирования, а заполняться он будет при вызове формы списка (Ну, типа, выбор из возможных значений) Или, может, уже пора лечь спать, и ну ее, эту 1С ? Утро-то вечера мудренее. Главное ведь, чтобы была любовь и не было войны, а форма списка и до утра подождет
0
|
||
|
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 154
|
|
| 23.04.2010, 03:24 | |
|
Спасибо за советы и за помощь, действительно, пора бы уже спать. Спокойной ночи.
0
|
|
|
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 154
|
||
| 23.04.2010, 10:42 | ||
0
|
||
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
||
| 23.04.2010, 13:45 | ||
|
Чуть свет уж на ногах ? И я у Ваших ног... (с)
Я ведь всерьез предлагал
Добавлено: А если это реквизит шапки - еще проще - рядом с ним на форме вешаешь кнопку с вызовом ВыборФормы, а сам реквизит делаешь недоступным А в форме списка использовать Спр.ВыбратьЭлементыПоРеквизиту (ну, если отбор установлен) - экономичнее и точнее будет
0
|
||
|
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 154
|
||
| 23.04.2010, 21:02 | ||
0
|
||
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
| 24.04.2010, 00:26 | |
|
Передай через параметр
0
|
|
|
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 154
|
|
| 24.04.2010, 00:55 | |
|
Какой параметр и ккуда? Я что-то совсем уже запуталась
Не могли бы вы привести пару строчек примера, а то я не могу понять как взять параметр из появившейся формы списка (какую-то процедуру надо использовать?) и как его привязать к реквизиту документа PS: я конечно понимаю, что уже поднадоела, но просто что-то не получается решить эту проблему.
0
|
|
| 24.04.2010, 00:55 | |
|
Помогаю со студенческими работами здесь
20
Передача параметра при закрытии формы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|