Получить объект по ссылке из запроса 1с
Приветствую, коллеги! В данной статье будет рассмотрена работа с объектами и ссылками в 1С 8.3, в том числе я расскажу о том, как получать объект по ссылке и наоборот – ссылку из объекта.
Ни для кого не секрет, что в системе 1С очень многое держится на привязке различных типов данных, так как главной задачей языка 1С является обработка данных, которые были получены при помощи запроса.
Чаще всего в 1С данные представляются в виде объектов, хотя бывают случаи, когда данные выступают в роли таблицы. Например, рассмотрим объект «Справочник.ИмяСправочника»: он регулирует работу с определённым справочником, но и у самого объекта есть в наличии свойства (в данном случае – это поля с данными), а также присутствуют методы.
Объект в системе 1С создаётся при помощи специального оператора «Новый», после чего используется соответствующий конструктор для создания объектов. Если у типа объекта может существовать несколько конструкторов, то конструктор для создания объекта будет избран при помощи параметров, как показано в строке программного кода ниже:
Рис. 1 Выбор конструктора объектов для создания объектов
2. Менеджеры получения объектов системы 1С
Если необходимо создать объект 1С, который будет иметь связь с базой данных, то используются особые менеджеры, а не оператор «Новый».
Для всех видов метаданных есть соответствующий менеджер объектов 1С, который осуществляет получение значения из базы с данными, опираясь на признак, либо создание новой базы. Пример кода с созданием объекта через менеджер указан ниже:
Рис. 2 Создание объекта менеджером в 1С
3. Ссылки и объекты в 1С 8.3
Работа с объектами системы 1С:Предприятие может производится при помощи ссылки на данные, либо при помощи самого объекта.
Ссылки в языке 1С – это особые данные, которые можно только считывать. А объект в языке 1С – это данные, которые можно и считывать, и менять, и записывать.
Работа с ссылками выполняется гораздо быстрее, нежели с объектами.
Чтобы получить ссылку на объект, в 1С можно воспользоваться функцией, которая имеет следующий вид:
Рис. 3 Функция, чтобы получить ссылку на объект в 1С
Чтобы получить объект по ссылке, нужно воспользоваться функцией следующего вида:
Рис. 4 Функция, чтобы получить объект по ссылке
Также его можно создать с нуля при помощи следующей функции:
Рис. 5 Вариант функции получения объекта по ссылке
4. Как получить объект по ссылке?
Пускай некоторая переменная «СсылкаНаОбъект» принадлежит какому-то типу ссылки. Это может быть справочник, документ, план по счетам и так далее. Опираясь на это, мы используем специальную функция для того, чтобы получить объект по ссылке в 1С. Выглядит она следующим образом:
Рис. 6 Использование переменной СсылкаНаОбъект
5. Получение ссылки по объекту в 1С 8.3
Рассмотрим обратную процедуру, а именно: получение ссылки из объекта. Пусть есть некоторая переменная «Объект», которая является каким-то из объектных типов, тогда функция для получения ссылки из объекта будет выглядеть так:
Рис. 7 Переменная СсылкаНаОбъект для получения ссылки по объекту
Следует отметить, что реквизит «Ссылка» в 1С может быть заполнен только во время записи самого объекта. В случае, если объект не был прописан, то и соответствующей ссылки существовать не будет.
как получить ссылку на объект УТ 10.3.13 1с 8.2
Создаю платежное поручение. Ставлю "Оплата от покупателя". Договор как обычно, "Заказ покупателя".
Как получить значение запроса?
Пономаю что вопрос очень тупой, но плиз откройте мне глаза. Как получить значение для.
Получить объект на тонком клиенте
Как правильно получить объект на тонком клиенте? &НаСервере Функция ПолучитьДок(Ссылка) .
Объект до запроса не пустой, после запроса становиться пустым
Здравствуйте, форумчане) Возникла следующая проблема при отправке запросов на сервер. Есть.
Добавлено через 25 секунд
Что не работает?
Давай по порядку.
1. Что по твоему - СпрОбъект?
2. Что такое - ИсходныеКомплектующие?
3. Что такое - Количество?
Добавлено через 1 минуту
Ответь СЕБЕ! Включи логику!
мне не нужно я и так понимаю.
Добавлено через 5 минут
1. В данном контексте СпрОбъект объект какого то справочника. (Отличие ссылки от объекта:Ссылку - можно только читать; Объект - можно еще и изменять)
2. ИсходныеКомплектующие - скорее всего это табличная часть справочника (в ней может быть как ОДНА так и СТО строк)
3. Количество - А что ЭТО? Имя колонки табличной части? И что ты от этого имени хочешь? Тебе количество из какой строки нужно?
Добавлено через 1 минуту
Вопрос: Зачем нам ОБЪЕКТ, а не ССЫЛКА если мы только считываем данные?
Добавлено через 8 минут
Если тебе нужно умножать количество строк в таблице на количество полученное в выборке
то можно так:
Столкнулся с проблемой,как получить документ по ссылке COMObject.
Есть две базы : Розница 2.2 и Альфа Авто.
Из Розницы по номеру Чека надо найти в Альфе Чек с таким же номером и сделать в нем некоторые изменения.
: Ошибка при вызове метода контекста (ПолучитьОбъект): Произошла исключительная ситуация: : Процедура или функция с указанным именем не определена (Предупреждение)
Буду очень благодарен за подсказку. Как можно сделать?
(17) в Рознице в Общем модуле Полные права создаешь функцию ОбработатьЧекИзАльфы(НомерДокумента)номер тебе "приедет", а в самом коде ты работаешь не через КОМ-объект, а как будто сидишь в Рознице
а из Альфы вызываешь
(1) возможно в 8.1 получение объекта называется по другому? Из Розницы по номеру Чека надо найти в Альфе Чек с таким же номером и сделать в нем некоторые изменения. - может надо обработку запускать в Альфе, находить в Рознице данные и при необходимости в Альфе производить изменения. (5) это не решение, просто позволит писать в нужном контексте, чтобы синтаксис соответствовал.
(1) А зачем запрос по ком соединению, если вам нужен всего один документ?
Если Выборка не пустая, то это искомый документ. И проверяйте.
Если использовать команду Выбрать, то можно выбрать документы за период. (9) Да Найти по номеру я делал,сути это не меняет. Ссылку из внешней базы я получаю и данные этого документа. А мне надо в нем сделать изменения. Как сам документ то получить из внешней базы? (10)Выборка это и есть документ. Если и его не надо получать. Понимаю что задача стоит в подключенной базе по "кому" надо поменять данные в документе.
у самого есть подобная задача, пока не решал, но в ближайшее время буду решать.
Вариант запустить из Альфы и найти чек в рознице не рассматриваете?
(11) Что толку,что выборка ссылка на COMОбъект документ. Изменить в нем ничего нельзя.
Из Альфы (8.1) подключаюсь к Рознице 2.2 (8.3),
создаю в ней Чек, методы ПолучитьОбъект() и Удалить() с COMОбъектом работают,
А обратно из Розницы в Альфе не работает метод ПолучитьОбъект() по ссылке COMОбъекта.
Ребята,не знаю что придумать? Надо обязательно из Розницы изменить Чек в Альфе. Попробовать создать регистр сведений и через него фиксировать? Неожиданная преграда.
: Ошибка при вызове метода контекста (ПолучитьОбъект): Произошла исключительная ситуация: : Процедура или функция с указанным именем не определена (Предупреждение)ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(27)>Все работает оказывается! Просто в старых конфах на 8.1 не предполагали работу в разных контекстах. Тогда был только толстый клиент и писали как могли. Для работы тебе либо придется менять модуль, чтобы он мог компилироваться во внешнем соединении. Тестируй модуль на него. Либо переносить все на сторону базы 8.1 тогда модуль можно не трогать! Если обработку запускать не в регламентном задании иначе опять переделывать модуль! (16), какой модуль менять? Скорее всего это мне не по силам и придется искать другое решение. Всем ,спасибо за участие. (17) в Рознице в Общем модуле Полные права создаешь функцию ОбработатьЧекИзАльфы(НомерДокумента)
номер тебе "приедет", а в самом коде ты работаешь не через КОМ-объект, а как будто сидишь в Рознице
а из Альфы вызываешь
(17) в тексте ошибки написано же какой и строка кода на ошибку тоже!
А если попробовать преобразовывать com объекты?
ЗначениеВСтрокуВнутр
ЗначениеИзСтрокиВнутр?
Чек выписывается в Альфе-Авто (4.1) и пересылается в Розницу,где касса ККТ онлайн.
Эта часть отработана,то есть из Альфы 8.1 во внешнюю базу Розница 2.2 8.3.
А как только в Рознице кассир пробьет чек,который уходит в ФНС,надо в Альфе в исходном чеке сделать как бы отметку,что чек пробит и заблокировать его изменение.
К сожаление,пока ничего из предложенного не подошло.
Когда в отладке смотришь ВыборкаV8.Ссылка, то методы GetObject и другие обозначены ,как Метод не найден.
(7) ну как я писал, похоже получив запросом ссылку, ты получил не ссылку, вот и метод не работает. Получай номер документа, а затем ищи его через функцию. тогда и получить сможешь. (1) Судя по ошибке - она банальна.Модуль документа чека альфы не компилируется под внешним соединением.
Криворукие прогеры использовали в потенциально серверной части диалог предупреждения, которого на сервере (и во внешнем соединении) быть не может.
Если есть возможность доработки конфы, просто заверните стремные участки типа этого предупреждения в директивы компиляции только в толстом клиенте. Доступность:
Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент).
смотри что у тебя тут -
а так пиши функцию в рознице и туда передавай номер и делай что хочешь
(13), не понял
"а так пиши функцию в рознице и туда передавай номер и делай что хочешь".
Как я получу документ из внешней базы (COMОбъект)?
фактически у тебя получится, что запущен экземпляр Розницы, который через КОМ-соединение получил примитывный тип "Строка", а фактически это полноценно запущенная Розника, которая работает с этой строкойв Результа можешь возвращать Истина/Ложь, но я у себя возвращаю ГУИД документа в Рознице, чтобы полностью "связать"
Петр Самчук,огромное Вам спасибо! Не только проблема решена,но и новые для меня знания.
Приветствую, коллеги! В данной статье будет рассмотрена работа с объектами и ссылками в 1С 8.3, в том числе я расскажу о том, как получать объект по ссылке и наоборот – ссылку из объекта.
Ни для кого не секрет, что в системе 1С очень многое держится на привязке различных типов данных, так как главной задачей языка 1С является обработка данных, которые были получены при помощи запроса.
Чаще всего в 1С данные представляются в виде объектов, хотя бывают случаи, когда данные выступают в роли таблицы. Например, рассмотрим объект «Справочник.ИмяСправочника»: он регулирует работу с определённым справочником, но и у самого объекта есть в наличии свойства (в данном случае – это поля с данными), а также присутствуют методы.
Объект в системе 1С создаётся при помощи специального оператора «Новый», после чего используется соответствующий конструктор для создания объектов. Если у типа объекта может существовать несколько конструкторов, то конструктор для создания объекта будет избран при помощи параметров, как показано в строке программного кода ниже:
Рис. 1 Выбор конструктора объектов для создания объектов
2. Менеджеры получения объектов системы 1С
Если необходимо создать объект 1С, который будет иметь связь с базой данных, то используются особые менеджеры, а не оператор «Новый».
Для всех видов метаданных есть соответствующий менеджер объектов 1С, который осуществляет получение значения из базы с данными, опираясь на признак, либо создание новой базы. Пример кода с созданием объекта через менеджер указан ниже:
Рис. 2 Создание объекта менеджером в 1С
3. Ссылки и объекты в 1С 8.3
Работа с объектами системы 1С:Предприятие может производится при помощи ссылки на данные, либо при помощи самого объекта.
Ссылки в языке 1С – это особые данные, которые можно только считывать. А объект в языке 1С – это данные, которые можно и считывать, и менять, и записывать.
Работа с ссылками выполняется гораздо быстрее, нежели с объектами.
Чтобы получить ссылку на объект, в 1С можно воспользоваться функцией, которая имеет следующий вид:
Рис. 3 Функция, чтобы получить ссылку на объект в 1С
Чтобы получить объект по ссылке, нужно воспользоваться функцией следующего вида:
Рис. 4 Функция, чтобы получить объект по ссылке
Также его можно создать с нуля при помощи следующей функции:
Рис. 5 Вариант функции получения объекта по ссылке
4. Как получить объект по ссылке?
Пускай некоторая переменная «СсылкаНаОбъект» принадлежит какому-то типу ссылки. Это может быть справочник, документ, план по счетам и так далее. Опираясь на это, мы используем специальную функция для того, чтобы получить объект по ссылке в 1С. Выглядит она следующим образом:
Рис. 6 Использование переменной СсылкаНаОбъект
5. Получение ссылки по объекту в 1С 8.3
Рассмотрим обратную процедуру, а именно: получение ссылки из объекта. Пусть есть некоторая переменная «Объект», которая является каким-то из объектных типов, тогда функция для получения ссылки из объекта будет выглядеть так:
Рис. 7 Переменная СсылкаНаОбъект для получения ссылки по объекту
Следует отметить, что реквизит «Ссылка» в 1С может быть заполнен только во время записи самого объекта. В случае, если объект не был прописан, то и соответствующей ссылки существовать не будет.
Читайте также: