#0
by poddex
Добрый день, уважаемые специалисты и форумчане. Платформа 8.1, файловая база. Необходимо получить программный доступ к Табличному полю в форме списка Документа. Табличное поле никак не связано ни с какими реквизитами, нужно заполнять его на основе данных, отбираемых циклом из документов. Как заполнить, я сообразил, но неожиданно столкнулся с проблемой: не могу получить доступ к элементу формы Табличное Поле в форме списка документа. Что сделал: 1) На форме списка документа создал элемент формы "Таблица значений" и добавил в него руками колонки. 2) В общем модуле (стоит галка "Глобальный" написал следующий код (привожу кусок кода с проблемой) пПереборДокументов=Документы.докДело.Выбрать; Проблема в том, что я не могу загрузить в переменную пЛентаНапоминаний Элемент формы списка ЛентаНапоминаний - выскакивает ошибка "Поле объекта недоступно для чтения". Обращаюсь к объекту вроде верно, в причине ошибки пока сам не могу разобраться. Заранее спасибо за помощь.
#2
by poddex
Замысел таков: приделать код, который срабатывал бы раз в определенное время и заполнял бы таблицу определенными значениями вне зависимости от того, открыта форма или нет (то есть событие формы ПриОткрытии отпадает).
#3
by Fish
А какой смысл заполнять ТП, да ещё и не связанное ни с какими реквизитами в неоткрытой форме? Как ты себе это представляешь?
#4
by poddex
Представляю так: при открытии конфигурации код опрашивает документы и, связываясь с таблицей на форме списка, путем доступа к ее колонкам (колонки же я в таблицу завел), производит заполнение таблицы кое-какими значениями. Форму, получается, надо обязательно открыть? Что-то я не понял из мануала. Судя по тому, что напрямую достучаться не получается - или обращение неверное, или неверно представляю.
#5
by tznimble
Во-первых, добавив ТабличноеПоле и создав колонки Вы уже создали Реквизит Формы (ТаблицуЗначений). И именно его/её Вам надо заполнять. НО! ЗАЧЕМ заполнять реквизит закрытой формы? Ссылку на форму Вы не сохраняете, то есть открыть её в заполненном состоянии не сможете.
#6
by StanleyMarsh
ну ты даешь)) нафига заполнять через форму?) Заполняй обычным способом - получи объект, заполни табличную часть. Форма - это всего лишь интерфейсное отображение реквизитов объекта.
#8
by poddex
Дело в том, что Табличное Поле, которое я создал в Форме Списка Документа, я хочу сделать так, чтобы оно не было привязано конкретно к какому-то документу, а просто заполнялось данными из всех документов согласно условию. То есть код просматривает документы и заполняет таблицу данными, взятыми из этих документов. Если я буду получать каждый раз объект, то каждый раз у меня будет очередной документ. Именно поэтому я перебираю все документы, а так как Табличное Поле не привязано к какому-то документу конкретно, то я и обращаюсь к Форме Списка - форма-то одна, значит, и Табличное Поле будет одно. я что-то недопёр, то есть, данные, внесенные в табличное поле таким образом, не сохранятся?
#9
by poddex
В этой форме собирается нужная информация вне зависимости от того, какие другие формы открыты. Когда открываю эту форму с Табличным полем - данные уже собраны там. То есть, чтобы к открытию формы сбор данных не был бы привязан. Замысел как раз такой.
#10
by StanleyMarsh
мне кажется ты как то не понятно объясняешь "не было привязано конкретно к какому-то документу, а просто заполнялось данными из всех документов согласно условию" это очень похоже на объект журнал документов
#11
by tznimble
Насколько Вы представляете себе механизмы ООП? ФормаСписка - объект. Команда .ПолучитьФорму - возвращает ссылку на объект Два-три-четыре последовательных вызова этой команды вернут ссылки НА РАЗНЫЕ объекты. В Вашем варианте, ссылку на полученный объект Вы не сохраняете. Более того, при выходе из Вашей процедуры эта ссылка будет освобождена, объект в памяти уничтожен вместе с заполненной таблицей. Именно поэтому заполнение необходимо делать в момент открытия формы. Либо иметь глобальную переменную, в которой Вы сохраните ссылку на заполняемую форму и открывать форму по этой ссылке. Учтите, стандартная команда интерфейса создает свой объект ФормаСписка с Вашим никак не связанный
#13
by poddex
Всем спасибо. Пока что сделал все на форме ПриОткрытии формы. Насчет регистра - покопаю.
#14
by poddex
Реализовал по , все получилось даже лучше, чем в моем первом варианте, но тут попутно назрел другой вопрос: ТабличноеПоле с типом данных РегистрСведений не содержит никаких данных, а только отображает список РегистраСведений, который я использовал в качестве Данных Табличного поля. Возникла необходимость обратиться к текущей строке ТабличногоПоля, и тут я и получил ТекущаяСтрока = Неопределено. Смотрю в отладчике - данные из регистра в ТекущуюСтроку не падают, но ведь событие ПриВыводеСтроки в том же Табличном поле работает, то есть, как-то данные можно получить (там параметр ДанныеСтроки). Вопрос: есть ли возможность получить данные под курсором в табличном поле? Пока не могу понять, к чему обратиться, чтобы их вытащить.
#15
by tznimble
ТекущиеДанные Вам в помощь. Кроме того, ТекущаяСтрока = Неопределено, если ни одна строка не выбрана.
#16
by poddex
В том-то и дело, что курсор на нужной строке стоит. Получаю данные так: ТекущаяСтрока, ТекущиеДанные - в отладчике висит "Неопределено". Может, неверно делаю, что обращаюсь через элементы формы?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v7 Доступ из модуля обработки к функциям модуля формы документа.
- Из формы списка не вызывается процедура общего модуля.
- Управляемые формы. Настройка формы выбора из настройки списка
- Программный доступ к пользовательским видам субконто
- Вызов заданной формы элемента из формы списка справочника
- v7: Как узнать владельца формы списка справочника, в модуле этой формы списка
- Страница панели - как закрыть доступ ее элементам формы?
- Вызов общего модуля из модуля управляемой формы.
- Программный вызов сверки итогов Атол
- УТ11 Программный вызов дополнительного отчета
В этой группе 1С
- Перенос данных учета зарплаты с Камин и 1С:ЗуП на ERP
- Выпуск продукции в ERP 2.0
- Регистр бухгалтерии 8,2
- Бухгалтерия 3.0 Не считается северная надбавка
- Как на управляемых формах во внешней обработки получить макет этой же обработки?
- Организация партионного учета
- Расчет водоотведения в ВДГБ Учет в управляющих компаниях ЖКХ, ТСЖ и ЖСК
- как программно добавлять строки(колонки) в таблицуЗначений?
- Бухгалтерия ПРОФ 3.0. Программно заменить один вид субконто на другой
- Согласование заказов в УТ 11
- Переход на постгри и линукс
- УПП. покупка через посредника (позиция посредника/агента)
- Whatsapp и 1с
- СКД Группировка и сворачивание колонок
- Можно ли получить список свойств ДанныеФормыЭлементКоллекции
- Конвертация данных 2.1.8.2. Сравнение и объединение правил обмена.
- Синхронизация между двумя одинаковыми базами УТ
- Акт сверки взаиморасчетов, УТ 10.3
- отчет комитенту о закупках
- Уязвимость связанная с выполнением команды REG ADD