Как получить объект 1с
В управляемой форме есть реквизит «РеквизитКарточка» типа СправочникСсылка.ИнформационнаяКарта. В процедуре &НаСервере делаю
Значение = РеквизитФормыВЗначение(«РеквизитКарточка»);
Недопустимое значение параметра (параметр номер ‘1’)
у меня вон Если РежимПоиска=»0″ Тогда //по наименованию
работает
Как мне получить объект с клиента в серверной процедуре, что бы его менять?
(3) какой такой объект? откуда сейчас возник объект?
Сначала нужно получить значение реквизита, а оно будет ссылкой.
Потом нужно проверить, что она не пустая.
И только после этого мы получаем объект.
А ссылка с клиента на сервер и обратно передаётся без проблем.
Значение = РеквизитФормыВЗначение(«Объект»); —
получишь весь объект. А через него уже можешь обращаться к своему Значение.РеквизитКарточка
Не забудь записать измененные данные в объект
ЗначениеВРеквизитФормы(Значение, «Объект»);
Как получить объект по ссылке в УФ?
Реально надо. Есть на форме таблица с документами по текущему выбранному элементу. И есть блок где по этот документ редактировать или новый создавать и редактировать и потом сохранять. То есть по любому нужен реквизит ДокНорм типа справочникОбъект. Но как сделать чтобы загрузить в ДокНорм объект из таблицы документов по текущему (там ссылка на справочник)?
&НаКлиенте Процедура ОткрытьДокументНормирования(_ДСЕ) Если Элементы.ЭлементыНормирования.ТекущиеДанные<>Неопределено Тогда Если ЗначениеЗаполнено(Элементы.ЭлементыНормирования.ТекущиеДанные.Документ) Тогда ДокументНормирования = _ПолучитьОбъект(Элементы.ЭлементыНормирования.ТекущиеДанные.Документ); КонецЕсли; КонецЕсли; КонецПроцедуры &НаСервере Функция _ПолучитьОбъект(_Ссылка) Возврат _Ссылка.ПолучитьОбъект(); КонецФункции
Выдает ошибку. Как быть?
Отслеживать
задан 15 окт 2019 в 8:49
1 3 3 бронзовых знака
Выдает ошибку. Как быть? Ну как минимум процитировать сообщение об ошибке, с точным указанием места (строка кода) и времени (ввод, рантайм) её возникновения — простой констатации недостаточно. PS. Искренне порадовала «ссылка в ультрафиолете».
15 окт 2019 в 8:56
На форме нужно хранить Ссылку на объект; А если нужно в самом объекте что-то править, то как написали ниже в ответе, — при клике на Ссылку (на форме) Открываем форму через ОткрытьЗначение(СсылкаНаОбъект);
Получить объект по ссылке 1С и наоборот
Пусть переменная СсылкаНаОбъект принадлежит любому ссылочному типу: справочнику, документу, плану счетов и т.д. Получить объект по ссылке можно так:
Объект = СсылкаНаОбъект.ПолучитьОбъект();
Пусть переменная Объект принадлежит любому объектному типу. Получить ссылку из объекта можно так:
СсылкаНаОбъект = Объект.Ссылка;
Будьте внимательны, реквизит “Ссылка” заполняется только при записи объекта. Если объект не записан — ссылки не будет.
- Создание внешней печатной формы для управляемого приложения в 1С 8.3
- Создание обработки заполнения табличной части 1С 8
- Создание внешних печатных форм 1С — обычное приложение
- Язык запросов 1С 8.3 и 8.2 — краткое руководство по всем конструкциям
Подпишитесь на наш YouTube канал
Аноним 06.03.2018 в 12:19 Ответить
Работает только на Сервере
Green 13.03.2018 в 01:07 Ответить
А в обычном приложении без разницы..
Нефилим 03.06.2019 в 00:59 Ответить
Обход такой
Создаете процедуру на сервере с графом экспорт и в клиенте в нужном месте вызываете процедуру которую хотите.
Сергей 24.08.2020 в 10:44 Ответить
Респект и уважуха за подсказку!
Коьска 19.09.2019 в 16:22 Ответить
Аноним 29.08.2018 в 18:49 Ответить
Максим 15.09.2022 в 18:48 Ответить
Спасибо за подсказку! Для новичка не всегда очевидны простые вещи. Даже если он их где-то и когда-то видел. При решении конкретной задачи не всегда вспомнишь, что и как надо делать!
Pluto 02.11.2022 в 16:08 Ответить
Я себе вообще в общих модулях сделал функцию и её и вызываю с указанием СправочникСсылка и требуемый реквизит. Ну т.е. примерно то, что написал Нефилим. &НаСервере
Функция ПолучитьРеквизитСправочника(СсылкаНаСправочник, Реквизит) Экспорт ЗначениеРеквизита=»»;
Выполнить(«ЗначениеРеквизита = СсылкаНаСправочник.» + Реквизит);
Возврат ЗначениеРеквизита;
КонецФункции
Связаться с нами можно по телефону:
Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.
Услуги и цены можно увидеть по ссылке.
Будем рады помочь Вам!
Свежие записи
- Как выгрузить базу из 1С 8.3 на флешку
- Поиск и удаление дублей в 1С 8.3
- Настройка 1С ЗУП 8.3 — пошаговая инструкция
- Зарплатный проект в 1С 8.3 Бухгалтерия
- Оказание услуг в 1С 8.3 — пошаговая инструкция
- Как сделать договор в 1С 8.3: шаблоны договоров
Показать больше
Подписывайтесь на наш YouTube канал, чтобы узнать больше о 1С. Там вы найдете множество видео-уроков. Ждем вас!
При использовании данного сайта, вы подтверждаете свое согласие на использование файлов cookie в соответствии с настоящим уведомлением в отношении данного типа файлов. Если вы не согласны с тем, чтобы мы использовали данный тип файлов, то вы должны соответствующим образом установить настройки вашего браузера или не использовать сайт
© 2020–2023 Все права защищены
ПолучитьОбъект() документа
Здравствуйте. Я плохо знаю русский. Извините за этого. Я еще новичок в 1С программирование. В документов есть реквизит ответственный. Надо что доступность было ложь для всех документов. Через подписка на событии не могла это сделать. По-моему надо создать обработку. Но есть такой вопрос как ПолучитьОбъект() для всех документов. Метаданные.Документы? или через запрос?
Спасибо всем за ранее
По теме из базы знаний
- Удаление документов Реализация и Счет-фактура выданный в конфигурации Бухгалтерия предприятия КОРП 3.0
- Многопоточная обработка данных на примере перепроведения документов
- Программное создание и расчет документов начисления зарплаты в конфигурации ЗУП 3.1 и ERP (по подразделениям)
- Исправление документов интеркампани
- Восстановление / перенос движений документов
- Дата
- Дата
- Рейтинг всех уровней
- Рейтинг 1-го уровня
- Древо развёрнутое
- Древо свернутое
Свернуть все
2. YannikAlx 43 17.04.19 11:43 Сейчас в теме
У вас все-таки трудности не с русским языком, а с логикой. Почему -то очень трудно понять не ваш язык, а то что вы пытаетесь сделать. Причем во всех ваших темах.
Если вам необходимо закрыть доступность Ответственного в документах, лучшим решением будет создание расширения, в котором будут новые формы для ваших документов с запроещенным для изменения полем формы.
В чем проблема не ясно.
И уж тем более не понятно при чем тут подписки на событие , обработки и ПолучитьОбъект().
4. SedovSU@mail.ru 296 17.04.19 11:54 Сейчас в теме
(2) Ну вот нет. создавать расширение и туда пихать все документы — это не очень хорошая идея — трудно затратная
Автор смотрите, На самом деле Вы правильно смотрите на ПОДПИСКИ СОБЫТИЯ.
Можно создать подписку на события, в качестве источника выбрать ДокументМенеджер и событие ОбработкаПолученияФормы и написать код. То есть событие будет подключаться когда будет открываться форма. В процедуру передается источник — документ менеджер и вид формы. Следовательно я получил документ и форму, в этой форме можно найти элементы для Отвественного и установить доступность ЛОЖЬ!
5. _7445_ 17.04.19 13:09 Сейчас в теме
(4)Спасибо за вниманию. Написал код такой. Но по-моему есть ошибка.
Процедура ОтключитьДоступностьРеквизитаОтветственныйОбработкаПолученияФормы(Источник, ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) Экспорт СтандартнаяОбработка = Ложь; Объект = Источник.Ссылка.ПолучитьОбъект(); Объект.Ответственный.Доступность = Ложь; КонецПроцедуры
6. SedovSU@mail.ru 296 17.04.19 14:21 Сейчас в теме
(5) а скажите у вас обычные формы или управляемые??
7. _7445_ 17.04.19 14:41 Сейчас в теме
8. SedovSU@mail.ru 296 17.04.19 14:47 Сейчас в теме
(7) тогда должно вот так получиться (как вы написали немного не так)
Если ТипЗнч(Источник) = Тип("ДокументМенеджер.ДокументКакойто") Тогда Если ВидФормы = "ФормаОбъекта" Тогда // или ФормаДокумента СтандартнаяОбработка = ложь; // Получаем форму открываемомго объекта Если Параметры.Свойство("Ключ") Тогда Документ = Параметры.Ключ.ПолучитьОбъект(); Иначе ЭлементОбъект = Документы.ДокументКакойто.СоздатьДокумент(); КонецЕсли; ФормаДокумента = ЭлементОбъект.ПолучитьФорму("ФормаОбъекта"); // или ФормаДокумента // Изменям форму программно ФормаДокумента .ЭлементыФормы.Ответственный.Доступность = Ложь; // Открываем измененную форму ФормаДокумента.Открыть(); КонецЕсли; КонецЕсли;
9. _7445_ 17.04.19 14:47 Сейчас в теме
(6)Могу ли создавать обработку для ее.
Писал такой код но выдают ошибку. —
Для Счетчик = 0 По Метаданные.Документы.Количество() Цикл //Получить количеству документов Стр = Метаданные.Документы.Получить(Счетчик); СтрокаБезКавычки = СтрЗаменить(Стр.Имя,"""",""); //Удаляем кавычки Запрос = Новый Запрос; Запрос.Текст = "Выбрать |Ссылка |ИЗ |Документы." + СтрокаБезКавычки; //Вот по-моему ошибка в запросе. Там пусто. Надо указать дата? Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Документ = Выборка.Ссылка.ПолучитьОбъект(); Документ.Ответственный.Доступность = Ложь; КонецЦикла;
10. SedovSU@mail.ru 296 17.04.19 14:48 Сейчас в теме
(9) у вас таким подходом не получится. потому что доступность реквизита определяется на уровне формы. То есть Вы блокируете не реквизит а элемент формы к которому привязан данный реквизит. Поэтому ваш код выше не получиться так реализовать.
3. SedovSU@mail.ru 296 17.04.19 11:46 Сейчас в теме
Для Каждого ОбъектМетаданных Из Метаданные.Документы Цикл ВыборкаДокументов = Документы[ОбъектМетаданных.Имя].Выбрать(); Пока ВыборкаДокументов.Следующий() Цикл ОбъектДокумент = ВыборкаДокументов.Ссылка.ПолучитьОбъект(); //// тут тип документ объект, далаем что нам нужно КонецЦикла; КонецЦикла;
То есть берем все объекты метадданых документов и каждый вид начинаем перебирать и получать каждый документ!
