1С передать ссылку на клиент

  • автор:

1с 8 2 получить ссылку на справочник. И дешево.Для этого в 1С есть. Передать ему.

Везде пишут, что можно. Но не получается: на клиент в форму документа возвращается некая иная сущность, &НаСервере Функция ПолучитьСсылкуНаТовар(ШтрихКодТовара) Возврат Справочники.Номенклатура.НайтиПоРеквизиту(‘ШтрихКод’, ШтрихКодТовара); КонецФункции у которой не доступны значения реквизитов &НаКлиенте Процедура ОбработкаТовара(ШтрихКодТовара) ТоварСсылка = ПолучитьСсылкуНаТовар(ШтрихКодТовара); Сообщить(ТоварСсылка.Наименование); КонецПроцедуры говорит, что Поле объекта не обнаружено (Наименование). Что я делаю не так? ТипЗнч(ТоварСсылка) возвращает представление объекта, т.е. Как бы все чисто. Отлично, буду знать.

Вообще-то на клиенте мне нужна ссылка как таковая, чтобы присвоить ее реквизиту табличной части документа: &НаКлиенте Процедура ОбработкаТовара(ШтрихКодТовара) ТоварСсылка = ПолучитьСсылкуНаТовар(ШтрихКодТовара); Элементы.ТабличнаяЧасть.ДобавитьСтроку(); НоваяСтрока = ТекущийЭлемент.ТекущиеДанные; //НоваяСтрока.Товар = ТоварСсылка; НоваяСтрока.Цена = 4.5; // получить цену из регистра. КонецПроцедуры Еще вчера НоваяСтрока.Товар = ТоварСсылка; отлично работало, а сегодня в обед поломалось и выдает ошибку Значение не является значением объектного типа (товар). Н могу понять, в чем дело.

Более того, аналогичную ошибку выдает и следующая строка: НоваяСтрока.Цена = 4.5; — ей тоже нужно значение объектного типа (???).

Вариант 1: ОкноКлиентскогоПриложения (ClientApplicationWindow) ПолучитьНавигационнуюСсылку (GetURL) Синтаксис: Код 1C v 8.х ПолучитьНавигационнуюСсылку() Возвращаемое значение: Тип: Строка. Описание: Получает навигационную ссылку в формате 1С:Предприятия на текущую форму.

Доступность: Тонкий клиент, веб-клиент, толстый клиент, внешнее соединение. Вариант 2: Глобальный контекст (Global context) ПолучитьНавигационнуюСсылку (GetURL) Синтаксис: Код 1C v 8.х ПолучитьНавигационнуюСсылку(,, ) Параметры: (обязательный) Тип: Ссылка на объект информационной базы.

Ссылка на объект. (необязательный) Тип: Строка. Имя реквизита объекта или ресурса Регистра сведений, для которого нужно выяснить ссылку. Если это реквизит табличной части объекта, то параметр указывается как., то есть с разделителем ‘.’

(необязательный) Тип: Число. Индекс строки в табличной части, в том случае если объект является реквизитом табличной части. Первая строка имеет индекс равный 0. Возвращаемое значение: Тип: Строка. Описание: Получает текст ссылки на объект информационной базы или его реквизит в формате 1С:Предприятия. В первом случае принимает в качестве параметра ссылку на объект (это может быть как ссылка, так и ключ записи регистра сведений).

Объектом могут быть: справочник, документ, ключ записи регистра сведений, бизнес процессы, задачи. Во втором, в качестве параметров принимает ключ объекта (это может быть как ссылка, так и ключ записи регистра сведений) и имя реквизита (ресурса). Если нужно получить ссылку на реквизит табличной части, перед именем реквизита необходимо добавить имя табличной части и точку ‘.’

Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. Примечание: Выполняет обращение к серверу только при получении ссылки на реквизит. При получении ссылки на объект информационной базы запрос на сервер не выполняется. Код 1C v 8.2 УП // Адрес объекта Адрес1 = ПолучитьНавигационнуюСсылку(Объект.Ссылка); // Адрес реквизита объекта Адрес2 = ПолучитьНавигационнуюСсылку(Объект.Ссылка, ‘Реквизит1’); // Адрес реквизита табличной части объекта Адрес3 = ПолучитьНавигационнуюСсылку(Объект.Ссылка, ‘ТабличнаяЧасть1.Реквизит1’, 10); // ПолучитьНавигационнуюСсылку на форму обработки сс=ПОлучитьНавигационнуюСсылку(Обработки.Обработка1.ПолучитьФорму(‘Форма1’)); // ‘e1cib/app/Обработка.Обработка1’ Получить навигационную ссылку для константы?

Вопрос: В конфигурации есть константа с типом ХранилищеЗначения для хранения изображения. Пытаюсь реализовать Загрузку и Выгрузку изображения: СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(Константы.Логотип.Получить()); где СсылкаНаКартинку — реквизит формы с типом строка, а на форме есть элемент, у которого путь к данным = СсылкаНаКартинку Возможно ли реализовать отображение картинки таким образом, или стоит хранить картинку где-либо еще? Ответ: Навигационную ссылку на константу получить не получится( Получится только так: Код 1C v 8.2 УП СсылкаНаКартинку = ПоместитьВоВременноеХранилище(Константы.Логотип.Получить().Получить(),УникальныйИдентификатор); т.е. В процедуру ПриСозданииНаСервере поместить картинку во временное хранилище и она там сидит пока закроете форму Есть форма списка справочника ‘Сотрудники’. В нем есть реквизит ‘Фото’, который имеет тип ‘СправочникСсылка.ХранилищеДополнительнойИнформации’ (справочник ‘ХранилищеДополнительнойИнформации’ по структуре полностью совпадает анологичным справочником в 1С 8.1).

В реквизиты формы списка добавил ‘АдресКартинки’ тип ‘строка’, в элементы добавил поле ‘Картинка’ (вид — поле картинки) с путем к данным ‘АдресКартинки’. Как вывести Картинку? Ответ: Код 1C v 8.2 УП &НаКлиенте Процедура СписокПриАктивизацииСтроки(Элемент) СотрудникСсылка = Элементы.Список.ТекущиеДанные.Ссылка; //в форме списка должен быть такой элемент — Ссылка Показатькартинку(СотрудникСсылка); КонецПроцедуры &НаСервере Процедура ПоказатьКартинку (СотрудникСсылка) АдресКартинки = ПолучитьНавигационнуюСсылку(СотрудникСсылка.Фото, ‘Хранилище’); КонецПроцедуры ‘Хранилище’ — это ‘стандартный’ реквизит справочника ‘ХранилищеДополнительнойИнформации’. Имеется регистр сведений с именем ‘Изображения’ следующей структуры: Измерения: — ИдИзображения (тип — уникальный идентификатор); Реквизиты: — Изображение (тип — ХранилищеЗначений) Реализовать возможность записи изображений в него, проблемы не составило. А застрял на получении навигационной ссылки на нужную запись регистра? Ответ — Для регистра сведений первым параметром должен быть ключ записи, а не ссылка на объект.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *