IE 2017

Передача ссылок на документы и справочники между пользователями

Печать - Универсальные печатные формы

Реализация обмена ссылками на документы и справочники для 1С Бухгалтерия 2.0

Архив содержит два файла:

ПечатьСкопироватьСсылкуНаДокумент.epf - печатная форма на практически все виды документов и основные справочники с авторегистрацией на них.

Создает ссылку в буфере обмена на объект вида (без кавычек):

"М1115000002 от 15.11.2013 г. @ДокументСсылка.РеализацияТоваровУслуг:089aa2f8-4dac-11e3-8279-001195dff56d"

которую можно вставить в мессенджер, почту и т.д. и передать ее другому пользователю данной базы.

Тот копирует ее в буфер обмена и открывает:

 

ОткрытьОбъектПоСсылке.epf - внешний отчет, который читает буфер обмена и, если там есть ссылка на объект, открывает его.

Будет удобней, если загрузить его в "Дополнительные отчеты и обработки", но можно пользоваться и из "Файл" -> "Открыть"

Скачать файлы

Наименование Файл Версия Размер
ssylki.zip
.ZIP 11,59Kb
20.11.13
3
.ZIP 11,59Kb 3 Скачать

См. также

Комментарии
1. Владислав Чинючин (vcv) 84 21.11.13 08:04 Сейчас в теме
Ээээ... Может я что-то путаю, но в 1С8 уже много лет есть штатный функционал обмена ссылками на объекты базы... Чем этот велосипед лучше/функциональней?
2. Александр Градский (Cobranet123) 278 21.11.13 08:53 Сейчас в теме
Ну пытается человек перенести функционал управляемых форм в обычные, ну чего такого, пусть забавляется ))
3. yuran yuyu (yuran2000) 7 21.11.13 09:27 Сейчас в теме
(1) vcv, просветите, пожалуйста, где он в обычных формах?
4. V. L. (Vladal) 412 21.11.13 09:49 Сейчас в теме
Ух ты! Я подобное делал нашему финдиректору в прошлом году. Я в своей копии базы проводил документы, давал отчет об ошибках с внутренними ссылками, финотдел исправлял ошибки в рабочей базе прямо из моего отчета.

(1) vcv, тем, что и другие велосипеды. Т.е. ничем + желание новичка поделиться своим открытием. Я раньше тоже сюда вываливал тонны гов веолсипедов. Но потом после обсуждения со старшими товарищами убирал. Осталась может парочка. Один - это точно.

(3) yuran2000, где-где, в синтакс-помощнике. Как обмены происходят между разными базами? Например, торговой и бухгалтерской?
Попутно предложения:
1. А почему бы не сделать полную ссылку? Вида "тип объекта + ссылка на объект этого вида". Хотя эта вроде парсится "ДокуентСсылка.....".
2. Весь функционал надо поместить в одну обработку - в одном поле сформировали, в другом получили. Ведь всякие почтовики, скайпы и прочие асечки имеют один клиент, который и принимает и отправляет, у них же нет отдельно "скайпо-приёмное" и "скайпо-отправляльное".
3. Поправь в описании это ужасное "ковычки" на "кавычки".
4. Ключевое понятие "передать ее другому пользователю данной базы" в таком случае лучше сделать свой мессенджер в самой базе, и оповещать нужного пользователя. Такое существует еще со времен 7.7.
5. V. L. (Vladal) 412 21.11.13 09:58 Сейчас в теме
Вот примерно так я передавал ссылки между базами (по сути - клоном рабочей), как я описал выше:

Формировался обычный отчет с обычной расшифровкой:

	мНомер = мНомер+1;
	мОбластьСтрока.Параметры.Номер = мНомер;
	мОбластьСтрока.Параметры.Документ = ?(мОбрабатываемыйДокумент = Документ, "", Документ);
	мОбластьСтрока.Параметры.ДокументРасшифровки = Документ;
	мОбластьСтрока.Параметры.ОписаниеОшибки = ПредставлениеОшибки;
	мОбластьСтрока.Параметры.Контрагент = Контрагент;
	мОбластьСтрока.Параметры.СтавкаНДС = СтавкаНДС;
	мОбластьСтрока.Параметры.ВнутреннийИдентификатор = Документ.Ссылка.УникальныйИдентификатор();
	
	мТабДок.Вывести(мОбластьСтрока);
...Показать Скрыть


А после закрытия обработки, контекст расшифровки терялся, тем более, после открытия в другой базе. Поэтому восстанавливал расшифровку прямо из внутренней ссылки:

		УникальныйИдентификатор = Новый УникальныйИдентификатор(ТабличныйДокумент.Область("R"+Формат(К,"ЧГ=")+"C7").Текст);
		
		Для Каждого ЭлементМетаданных из Метаданные.Документы Цикл
			Ссылка = Документы[ЭлементМетаданных.Имя].ПолучитьСсылку(УникальныйИдентификатор);
			
			Если Найти(Ссылка, "Объект не найден") Тогда
				Продолжить;
			Иначе
				ТабличныйДокумент.Область("R"+Формат(К,"ЧГ=")+"C3").Расшифровка = Ссылка;
				Прервать;
			КонецЕсли;
			
		КонецЦикла;
...Показать Скрыть
6. Александр Капустин (kapustinag) 21.11.13 10:30 Сейчас в теме
(5) Vladal, Как-то программный код, вставленный в сообщение, странно выглядит - вместо раскрашенного текста показывает текст с тэгами. Во всяком случае, у меня в броузере Firefox так.
7. yuran yuyu (yuran2000) 7 21.11.13 10:31 Сейчас в теме
(4) Vladal,
Ключевое понятие "передать ее другому пользователю данной базы" в таком случае лучше сделать свой мессенджер в самой базе, и оповещать нужного пользователя. Такое существует еще со времен 7.7.

Зачем усложнять? Кому надо - доделает. У меня это в основном используется для отправки пользователем мне письма с вопросом по конкретному документу. Стало лень искать по виду/дате/номеру.
8. V. L. (Vladal) 412 21.11.13 11:34 Сейчас в теме
(6) kapustinag, побилось. Да. Я на другом компьютере открыл - действительно бодяга ХТМЛ. Нажимаю "Изменить" - нормальный текст с тэгом [1C-CODE]. Странно.
Сначала отправлял из огнелиса под виндой. Сейчас исправил в огнелисе в линухе. Видать, что-то с дополнениями, хотя огнелис у меня синхронизируется, может еще чего. Глубоко не копал.

(7) Зачем выкладывал с таким подходом? Развивая эту мысль: "Кому надо - сделают." Лучше использовать готовый продукт, чем разбираться в чужом коде и доделывать.
В описании нет, что ты этот процесс разделил на front- и back-.
9. V. L. (Vladal) 412 21.11.13 11:52 Сейчас в теме
По коду в (5)
В третьей колонке отчета выводится документ и расшифровка со ссылкой на этот документ (разных видов), в 7-й - внутренний идентификатор для восстановления расшифровки. Т.е. отчет формировался мной в копии рабочей базы, показывал ошибки, далее сохранялся во внешний файл MXL, в рабочей базе финик открывал этот файл из обработки и получал ссылки в расшифровке. Таким образом сохранялась кликабельность расшифровки в отчете.
10. yuran yuyu (yuran2000) 7 21.11.13 12:00 Сейчас в теме
(8) Vladal,
Зачем выкладывал с таким подходом? Развивая эту мысль: "Кому надо - сделают." Лучше использовать готовый продукт, чем разбираться в чужом коде и доделывать.

Это я про внутренний мессенджер. А со своей задачей обработка отлично справляется, и, что самое главное, отправить мне ссылку очень просто для пользователя.
Да и внешние месседжеры уже как правило у всех установлены, зачем их плодить?
11. Яков Коган (Yashazz) 2118 22.11.13 01:10 Сейчас в теме
Стоп. В буфере обмена? Это вы clipboard.dll припахали или чем другим воспользовались?
И да, xml-сериализация ссылок на объекты рулит. Туда и обратно в одну строку кода ))
12. Юрий (yurkov) 22.11.13 08:47 Сейчас в теме
(11) Yashazz,
Это вы clipboard.dll припахали

Все проще, справка рулит.
DrAku1a; yuran2000; +2 Ответить
13. Андрей Акулов (DrAku1a) 1213 27.11.13 06:45 Сейчас в теме
А не проще ли пользовать: ЗначениеВСтрокуВнутр(), ЗначениеИзСтрокиВнутр()?
14. yuran yuyu (yuran2000) 7 27.11.13 12:06 Сейчас в теме
(13) DrAku1a, Альтернатива, но не проще.
15. yuran yuyu (yuran2000) 7 27.11.13 12:11 Сейчас в теме
Что особенно удобно, так это, что документ откроется даже в том случае, если ему изменили номер и дату после создания ссылки.
В ссылке все, что находится до знака @ - только для наглядности.
Оставьте свое сообщение