Всем добрый день.
Обычные формы, 8.2.
Есть реквизит на форме "Лицензия" с типом СправочникСсылка.Лицензии. Открывается форма элемента с выбором лицензии.
На этой же форме лицензии присутствует ТабличноеПоле("ПунктыРазгрузки") с типом СправочникСписок.алкПунктыРазгрузки. Это реквизит формы элемента.
Собственно как мне обратиться к этому табличному полю из другой формы или обработки,и получить данные из этого списка?
Обычные формы, 8.2.
Есть реквизит на форме "Лицензия" с типом СправочникСсылка.Лицензии. Открывается форма элемента с выбором лицензии.
На этой же форме лицензии присутствует ТабличноеПоле("ПунктыРазгрузки") с типом СправочникСписок.алкПунктыРазгрузки. Это реквизит формы элемента.
Собственно как мне обратиться к этому табличному полю из другой формы или обработки,и получить данные из этого списка?
По теме из базы знаний
- Веб-сервер многопоточный с обработкой запросов в коде 1С (1C.Net:Предприятие)
- Гарри Поттер и подкапотное пространство веб-клиента
- Практический опыт построения защищенного контура для 1С-приложения
- Интеграция с сайтом на WooCommerce (WordPress) через MySQL
- Чат-боты в 1С: возможность, эффективность и бизнес-кейсы
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Неверное восприятие системы в целом. Во первых , вы не указали , чья форма ? Форма бывают : Форма списка, форма элемента, Форма выбора ( аналог списка с элементами помощи в процессе выбора ) , произвольная форма и т.п.
Форма - в основном , всего лишь визуальное отображение Объекта базы.
В данном случае На форме у вас есть Табличное поле. Реквизит Лицензия , значения не имеет - непонятно , для чего вы его привели?
Данные в этом поле могут браться из Табличной части Объекта базы, которому принадлежит форма, либо собираться Запросом.
Судя по тому , что это РеквизитФормы, данные скорее всего собираются программно.
Ищите в процедурах ПередОткрытием, ПриОткрытии , как заполняются колонки ТабличногоПоля.
Теперь - обратится. Через ЭлементыФормы в процедурах ФормаЭлемента. или что у вас это за форма.
Там есть Текущие данные , Текущая строка. Это строка таблицы ПунктыРазгрузки, на котором установлен курсор.
Если вам нужна другая строка Таблицы - Ищите её через обработку Таблицы СправочникСписок - поиск , цикл и т.п. Открывайте методы этого типа объекта и смотрите подходящий.
Форма лишь отобразит изменения значений Реквизитов.
Форма - в основном , всего лишь визуальное отображение Объекта базы.
В данном случае На форме у вас есть Табличное поле. Реквизит Лицензия , значения не имеет - непонятно , для чего вы его привели?
Данные в этом поле могут браться из Табличной части Объекта базы, которому принадлежит форма, либо собираться Запросом.
Судя по тому , что это РеквизитФормы, данные скорее всего собираются программно.
Ищите в процедурах ПередОткрытием, ПриОткрытии , как заполняются колонки ТабличногоПоля.
Теперь - обратится. Через ЭлементыФормы в процедурах ФормаЭлемента. или что у вас это за форма.
Там есть Текущие данные , Текущая строка. Это строка таблицы ПунктыРазгрузки, на котором установлен курсор.
Если вам нужна другая строка Таблицы - Ищите её через обработку Таблицы СправочникСписок - поиск , цикл и т.п. Открывайте методы этого типа объекта и смотрите подходящий.
Форма лишь отобразит изменения значений Реквизитов.
Необходимо уточнить свойства табличного поля ПунктыРазгрузки:
1. Флажок "Сохраняемые данные" установлен?
Лучше приложить скрин палитры свойств реквизита.
В зависимости от свойств будет понятно, откуда конкретно взять данные. Может проще (и правильней) обратиться к данным ИБ.
На всякий случай надо посмотреть есть ли Владелец и каких типов у справочника алкПунктыРазгрузки
1. Флажок "Сохраняемые данные" установлен?
Лучше приложить скрин палитры свойств реквизита.
В зависимости от свойств будет понятно, откуда конкретно взять данные. Может проще (и правильней) обратиться к данным ИБ.
На всякий случай надо посмотреть есть ли Владелец и каких типов у справочника алкПунктыРазгрузки
(4) Надо посмотреть ПриОткрытии формы (или по другому событию) накладывается ли Отбор на СправочникСписок. Если никакого отбора там нет, то по идее в любой форме отображается просто весь список справочника алкПунктыРазгрузки. А если отбор накладывается, то надо обращаться к справочнику алкПунктыРазгрузки с аналогичным отбором.
Сейчас бы в обычных формах тянуть данные с форм. Эх, старый добрый УТАП 10.3
Посмотрите свойство реквизита формы, там явно определено события при изменении, которое заполняет ПунктыРазгрузки. Зная УТАП, там скорее всего какой-нибудь вызов функции из общего модуля. Вот это просто скопируйте и прикрутите к вашей хотелке.
С другой стороны, если в этой форме выбора лицензии есть ещё реквизиты, которые доступны пользователю для изменения, значит они должны возвращаться обратно на форму владельца, иначе зачем они нужны. Поставьте замер производительности до момента осуществления выбора лицензии (пользователь ещё не нажал на кнопу выбрать/ок/готово в форме выбора лицензии, но уже закончил редактировать состав реквизитов этой формы), а после осуществления выбора (форма закрылась и пользователя вернуло с результатом на форму владельца) снимите замер производительности и читайте портянку, что выдаст вам 1С (само собой запускать это в режиме отладки, иначе портянки не будет). Думаю там должно быть то, что ищите.
Посмотрите свойство реквизита формы, там явно определено события при изменении, которое заполняет ПунктыРазгрузки. Зная УТАП, там скорее всего какой-нибудь вызов функции из общего модуля. Вот это просто скопируйте и прикрутите к вашей хотелке.
С другой стороны, если в этой форме выбора лицензии есть ещё реквизиты, которые доступны пользователю для изменения, значит они должны возвращаться обратно на форму владельца, иначе зачем они нужны. Поставьте замер производительности до момента осуществления выбора лицензии (пользователь ещё не нажал на кнопу выбрать/ок/готово в форме выбора лицензии, но уже закончил редактировать состав реквизитов этой формы), а после осуществления выбора (форма закрылась и пользователя вернуло с результатом на форму владельца) снимите замер производительности и читайте портянку, что выдаст вам 1С (само собой запускать это в режиме отладки, иначе портянки не будет). Думаю там должно быть то, что ищите.
Какой вопрос, такой ответ:
Пример как обратиться к другой форме и заполнить реквизит объекта
PS Бойтесь своих вопросов, ведь вы можете получить на них ответы :[
Пример как обратиться к другой форме и заполнить реквизит объекта
ОкнаПриложения = ПолучитьОкна();
Для каждого ОкноПриложения Из ОкнаПриложения Цикл
Сообщить("Найдено окно: "+Строка(ОкноПриложения.Заголовок));
Если Найти(ОкноПриложения.Заголовок, "тест (Контрагенты)") > 0 Тогда
ОкноПриложения.ПолучитьСодержимое().Объект.ИНН=555;
КонецЕсли;
КонецЦикла;
PS Бойтесь своих вопросов, ведь вы можете получить на них ответы :[
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот