1с получить объект из запроса

Обновлено: 07.07.2024

Добрый день.
Нужна помощь начинающему в области 1с предприятие.
Есть документ А, есть документ Б.
Нужно создать внутреннюю обработку, в которой будет табличная часть где можно добавлять ссылки на эти документы, рядом с каждым будет соответствующий чекбокс. Создать кнопку "записать" при нажатии на которую нужно будет создавать пары документов и затем заносить их в регистр сведений.

-проблема-
когда создаю запрос, который обращается к данным табличной части, он не может найти мою табличную часть то есть "не удалось найти таблицу и указывает на кусок кода с "ИЗ Обработка.Связь.Таблица". Как только путь к таблице не указывал уже.

-вопрос-
В чём собственно заключается ошибка в пути или просто неправильном подходе реализации кнопки?

когда создаю запрос, который обращается к данным табличной части, он не может найти мою табличную часть то есть "не удалось найти таблицу и указывает на кусок кода с "ИЗ Обработка.Связь.Таблица". Как только путь к таблице не указывал уже.

Дело в том, что запрос обращается к базе данных. Обработки не имеют таблиц в БД и ничего там не хранят., во-вторых вы эту таблицу заполняете интерактивно, даже, если бы у вас была табличная часть документа, или справочника, то все изменения, которые вы внесли в открытой форме были бы еще не записаны в БД.

Собственно, что можно сделать: запросом получать данные из таблицы значений, которая передается параметром.
Код будет вида


А вообще, если вам нужна только пара документов, то запрос не нужен - ссылки уже находятся в таблице и достаточно ее обойти в цикле.

Пытаюсь обойти при помощи цикла, как Вы и советовали.
Не подскажите, как решить проблему с недоступностью данных на сервере ( видимо, неправильно работаю с ТекущимиДанными)?

&НаКлиенте
Процедура Команда1(Команда)
Команда1НаСервере();
КонецПроцедуры

&НаСервере
Процедура Команда1НаСервере()
Для Каждого СтрокаТаблицы из Элементы.Таблица.ТекущиеДанные ЦИКЛ
Если (СтрокаТаблицы.ЧекбоксА=ИСТИНА)ТОГДА
Для Каждого СтрокаТаблицы2 из Элементы.Таблица.ТекущиеДанные ЦИКЛ
Если (СтрокаТаблицы2.ЧекБоксБ=ИСТИНА) ТОГДА
НаборД=РегистрыСведений.ВзаимосвязиДокументов.СоздатьНаборЗаписей();
СтрокаДанных=НаборД.Добавить();
СтрокаДанных.СсылкаА=СтрокаТаблицы.СсылкаА;
СтрокаДанных.СсылкаБ=СтрокаТаблицы2.СсылкаБ;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры

Amarg0: Элементы - это объекты, отвечающие за отрисовку данные, а вам нужны сами данные. Это будет либо Для Каждого Строка Из Объект.МояТабличнаяЧасть , если табличная часть - реквизит обработки. Либо просто «МояТабличнаяЧасть», если табличная часть - реквизит формы.

На ютубе есть серия видео «разработка управляемого приложения» - очень советую, поможет навести порядок в понимании управляемых форм.

Ваша ошибка заключается в недопонимании различий между метаданными. Обработки в отличии от справочников, документов и так далее не описывают хранимую в базе данных информацию - это набор алгоритмов по обработке данных и описание графического/программного интерфейса взаимодействия с пользователем.

В реквизитах обработки, а так же на форме обработки в реквизитах самой формы могут размещаться некоторые данные, но данные из значения таких реквизитов существуют только на протяжении времени жизни обработки. Ни до создания экземпляра обработки, ни после её закрытия эти данные не существуют.

В вашем примере существует обработка под названием "Связь", в которой есть табличная часть "Таблица". Запросы языка 1С указанным вами способом (путь по метаданным) могут получать выборки лишь из данных, которые сохранены в СУБД базы. Т.е. у вас ничего не выйдет. Но язык запросов позволяет делать запросы еще и к структурам в памяти, если их передавать в качестве параметров. Вы можете поступить следующим образом:

как получить ссылку на объект УТ 10.3.13 1с 8.2
Создаю платежное поручение. Ставлю "Оплата от покупателя". Договор как обычно, "Заказ покупателя".


Как получить значение запроса?
Пономаю что вопрос очень тупой, но плиз откройте мне глаза. Как получить значение для.

Получить объект на тонком клиенте
Как правильно получить объект на тонком клиенте? &НаСервере Функция ПолучитьДок(Ссылка) .


Объект до запроса не пустой, после запроса становиться пустым
Здравствуйте, форумчане) Возникла следующая проблема при отправке запросов на сервер. Есть.

Добавлено через 25 секунд
Что не работает?

когда пытаюсь произвести вычисления, вроде КолВо = СпрОбъект.ИсходныеКомплектующие.Количество * Выборка.Количество выдает Поле объекта не найдено КолВо = СпрОбъект.ИсходныеКомплектующие.Количество

Давай по порядку.
1. Что по твоему - СпрОбъект?
2. Что такое - ИсходныеКомплектующие?
3. Что такое - Количество?

Добавлено через 1 минуту
Ответь СЕБЕ! Включи логику!

мне не нужно я и так понимаю.

Добавлено через 5 минут
1. В данном контексте СпрОбъект объект какого то справочника. (Отличие ссылки от объекта:Ссылку - можно только читать; Объект - можно еще и изменять)
2. ИсходныеКомплектующие - скорее всего это табличная часть справочника (в ней может быть как ОДНА так и СТО строк)
3. Количество - А что ЭТО? Имя колонки табличной части? И что ты от этого имени хочешь? Тебе количество из какой строки нужно?

Добавлено через 1 минуту
Вопрос: Зачем нам ОБЪЕКТ, а не ССЫЛКА если мы только считываем данные?

Добавлено через 8 минут
Если тебе нужно умножать количество строк в таблице на количество полученное в выборке
то можно так:

Читайте также: