Как преобразовать ссылку в строку 1с
Уважаемые, прошу направить на путь
Суть: Если стороннее ПО, соединяется по COM. В ПО из 1С8 передается параметр в виде GUID (пример: Путь до программы + » » + GUID). Получили в ПО ссылку на объект.
Проблемка: в файловом варианте — работает, в клиент-серверном — нет
В клиент-серверном пишет ошибку «Не удалось Мой_Документ.ПолучитьСсылку по УИД 51a1b24c-0d8f-11e8-80cd-a0d3c1fbc177»
Пошли другим путем: решили передавать в ПО ссылку на объект, ссылку передали в формате «Мой документ 94031 от 20.04.2018 9:32:12»
Теперь надо преобразовать Строку в Ссылку.
>В клиент-серверном пишет ошибку «Не удалось Мой_Документ.ПолучитьСсылку по УИД 51a1b24c-0d8f-11e8-80cd-a0d3c1fbc177»
ошибка другая
>Пошли другим путем: решили передавать в ПО ссылку на объект, ссылку передали в формате «Мой документ 94031 от 20.04.2018 9:32:12»
Как преобразовать ссылку в строку 1с
Вот допустип нужно в запросе получить строковое поле «Документ: ТоварнаяНакладная от 03.02.2009 №45»
если писать Выразить(ССылка КАК Строка)+»fg»
выдаёт ошибку.
(0) попробуй
Ссылка.Представление+»»fg»»
или
ПРЕДСТАВЛЕНИЕ(Ссылка)+»»fg»»
не , не работает
(2) запрос покажи.
да я сейчас за компом, где 1с нету
ты-то покажи часть запроса в котором такое работат 🙂
напиши сразу все что тебе надо, и что ты хочешь, и что у тебя не выходит и что тебе мне написать.
ну вот например
ВЫБРАТЬ
ПРЕДСТАВЛЕНИЕ(АвансовыйОтчет.Дата) + «»: DATA»» КАК СтрДата
ИЗ
Документ.АвансовыйОтчет КАК АвансовыйОтчет
ВЫБРАТЬ
ВЫРАЗИТЬ(АвансовыйОтчет.Дата КАК СТРОКА) + «»: DATA»» КАК СтрДата
ИЗ
Документ.АвансовыйОтчет КАК АвансовыйОтчет
ВЫРАЗИТЬ(АвансовыйОтчет.Дата КАК СТРОКА + «»: DATA»»)
Да никак это не сделаешь (разумными усилиями), нет в языке запросов 1С преобразования типов.
с извращениями можно
Запрос=Новый запрос;
МВТ=Новый МенеджерВременныхТаблиц;
Запрос.МенеджерВременныхТаблиц=МВТ;
Запрос.Текст ;
Запрос.УстановитьПараметр(«Ссылка»,Док);
МояТЗ=Запрос.Выполнить().Выгрузить();
Запрос.Текст «fg»» КАК НоваяСтрока2
|ИЗ
| МояВТ КАК МояВТ»;
Запрос.УстановитьПараметр(«МояТЗ»,МояТЗ);
Выб=Запрос.Выполнить().Выгрузить();
Сообщить(Выб[0].НоваяСтрока2);
Способы получения/передачи ссылки на документ в программе 1С
1. Копирование ссылки на документ (журнал или любой объект программы 1С).
Для обмена между коллегами, работающими в одной информационной базе, данными по документам в программе 1С существует способ получения/передачи ссылки на документ.
Вместо того, чтобы сообщать коллеге наименование документа, его номер и дату, можно просто отправить ссылку на документ.
Как это сделать: открываем документ, который необходимо посмотреть коллеге, см. рисунок ниже.
Далее нажимаем кнопку в правом верхнем окне программы (выделено красным).
или заходим через главное меню – Сервис – Получить ссылку:
Затем появляется ссылка на документ:
Мы ее копируем и отправляем коллеге письмом или другим способом, которым Вы общаетесь с коллегами.
Также получить ссылку на документ в программе можно с помощью горячих клавиш Ctrl+F11.
2. Открытие документа при помощи ссылки на документ:
После получения ссылки на документ, коллега может его открыть следующими способами:
1. В правом верхнем углу окна программы нажать кнопку «Перейти по ссылке» (см. ниже).
Далее в появившемся окне вставляем присланную ссылку на документ:
И нажимаем кнопку «Перейти», после чего откроется требуемый документ.
2. Перейти по ссылке можно и другими способами: через главное меню – сервис – перейти по ссылке.
3. С помощью горячих клавиш Shift+F11.
Для обмена между коллегами, работающими в одной информационной базе, данными по документам в программе 1С существует способ получения/передачи ссылки на документ.
Ниже приведены примеры, как можно получить ссылку на документ и открыть документ при помощи ссылки:
Открывая документ и нажимая на кнопку «Получить ссылку», копируем ссылку в появившейся форме и отправляем коллеге для просмотра.
Коллега, получая ссылку, нажимает кнопку «Перейти по ссылке», в открывшейся форме вводит полученную ссылку и открывает документ по кнопке «Перейти».
Преобразование ссылки в строку и обратно
Доброго времени суток. На сервере без контекста формируется большой объем табличных данных, который впоследствии передаются на клиент в виде массива структур и заполняются в дерево формы. Делается это возвратным значением функции, которая и формирует структуру возврата. Приложение управляемое 8.2, клиент тонкий и только такой. В ячейках «таблицы» как простые типы, так и ссылки.
Начиная с 1000 строк и 20 столбцов передача на клиент занимает от 5 секунд и выше, что неблагоприятно сказывается на быстродействии сотрудников. При практически неограниченной ширине канала это недопустимо, ведь реальный объем данных не превышает одного мегабайта за редким исключением. В связи с чем мною были выполнены тесты по архивации и они довольно существенно повысили скорость передачи. Достаточно схлопнуть примитивные типы из нескольких колонок в одну строку на стороне сервера и аналогично развернуть их на клиенте — и половины столбцов как ни бывало (я думаю, это связано с xml-механизмом передачи данных между клиентом и сервером, где лишние узлы прилично весят). Но примитивные типы составляют лишь половину таблицы.
А теперь внимание, вопрос. Как мне на сервере преобразовать ссылку на справочник или документ конкретного вида так, чтобы потом на клиенте можно было получить из строки эту ссылку. ЗначениеВСтрокуВнутр() не помогает, потому что на клиенте согласно документации она недоступна.
p.s. использовать временное хранилище работает также медленно, как и передача возвратного значения в виде массива структур. Поэтому просьба не предлагать решить вопрос другим способом — нужно именно преобразовать строку в ссылку на клиенте.