Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Гиперссылка 1С 8  [new]
Nata75
Member

Откуда:
Сообщений: 127
Привет!!! Снова к Вам за помощью! Насчет гиперссылок 2 вопроса:
1. В конфигураторе создаю Форма\Вставить элемент управления\Надпись и ставлю галочку Гиперссылка, а какой текст обработки должен быть чтобы по клику открылся вордовский файл?
и 2. Самое сложное - у меня каждому 1С-овскому документу соответствует вордовский, т.е. напр. уже в 1С:Предприятие открываю Приходная накладная - в табличной части заполняю что пришло, а в шапке должна быть гиперссылка по которой открывается отсканировынный и помещенный в ворд договор с этим поставщиком. Причем это должны делать пользователи. У меня этот файл раньше делался в экселе и пользователь когда создавал новый объект делал гиперссылку к вордовскому документу - там все просто, а как быть в 8-ке?
Очень-Приочень-Приочень нужна Ваша помощь!!!
15 апр 08, 09:01    [5545794]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
dlednev
Member

Откуда: Омск
Сообщений: 143
1. посмотри процедуру глобального модуля "ЗапуститьПриложение".
2. ну как минимум (что самое быстрое) придется хранить имя файла для каждого документа. для этого надо либо свойство для документов добавить (кстати, какая у тебя онфигурация? ;) ) либо дополнительный реквизит в документе прописать.

ЗЫ. вообщето в 1С есть такой тип - "ХранилищеДанных" - в нем можно хранить и образы файлов. А еще есть стандартный механизм работы с файлами. он в справочнике контрагентов реализован (УПП и УТ). Можешь его посмотреть... для интересу - может, пригодится
15 апр 08, 10:09    [5546066]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Nata75
Member

Откуда:
Сообщений: 127
dlednev
1. посмотри процедуру глобального модуля "ЗапуститьПриложение".
2. ну как минимум (что самое быстрое) придется хранить имя файла для каждого документа. для этого надо либо свойство для документов добавить (кстати, какая у тебя онфигурация? ;) ) либо дополнительный реквизит в документе прописать.

ЗЫ. вообщето в 1С есть такой тип - "ХранилищеДанных" - в нем можно хранить и образы файлов. А еще есть стандартный механизм работы с файлами. он в справочнике контрагентов реализован (УПП и УТ). Можешь его посмотреть... для интересу - может, пригодится

Спасибо огромное что откликнулись!!! Мне надо самостоятельно переписывать акцессовские базы данных и данные которые хранились в экселе в 1С8, поэтому никаких примеров нет, а все купленные продукты ведет сторонняя фирма и там все под паролями, попробую поговорить с ними и найти примеры. Спасибо!!!
15 апр 08, 11:52    [5546981]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
dlednev
Member

Откуда: Омск
Сообщений: 143
если разработку ведет сторонняя фирма, то изменения вам надо согласовать, ту же самую ниперссылку. А то они твои изменения в документе потрут и скажут что так и былО и нечего им под ногами мешаться. А свойства можно из интерфейса добавить - без изменений метаданных.
хотя бы ссылки на файл не потеряешь, а как првильно потом связывать - пусть разработчики потом сами думают.
ЗЫ. понимаю, что это не правильный метод "сотрудничества", но сам побывал в такой ситуации - знаю как спиной разработчики экран загораживают
15 апр 08, 12:13    [5547219]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Nata75
Member

Откуда:
Сообщений: 127
dlednev
если разработку ведет сторонняя фирма, то изменения вам надо согласовать, ту же самую ниперссылку. А то они твои изменения в документе потрут и скажут что так и былО и нечего им под ногами мешаться. А свойства можно из интерфейса добавить - без изменений метаданных.
хотя бы ссылки на файл не потеряешь, а как првильно потом связывать - пусть разработчики потом сами думают.
ЗЫ. понимаю, что это не правильный метод "сотрудничества", но сам побывал в такой ситуации - знаю как спиной разработчики экран загораживают

Да тут такая ситуация что у меня нет перед глазами даже базы с примерами (как Борей в акцессе), единственное что есть - книга Радченко и вы мои Гуру, поэтому и приходится обращаться к вам за помощью... А вот как быть с гиперссылкой не знаю...
15 апр 08, 13:24    [5547980]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Господин ПЖ
Member [заблокирован]

Откуда:
Сообщений: 5753
>>Да тут такая ситуация что у меня нет перед глазами даже базы с примерами (как Борей в акцессе)

Берешь диск ИТС, ставишь то что вам ближе - БП, УТ, УПП демо и "тренируешься на кошках"
15 апр 08, 14:10    [5548397]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Господин ПЖ
Member [заблокирован]

Откуда:
Сообщений: 5753
реализацию многих вещей проще подглядеть там, чем выдумывать велосипед
15 апр 08, 14:11    [5548404]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Nata75
Member

Откуда:
Сообщений: 127
Спасибо!
15 апр 08, 14:15    [5548437]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Leoligov
Member

Откуда:
Сообщений: 111
это уже есть на уровне типовой конфигурации, посмотрите как в справочниках сделана кнопка файлы, аналогично можно сделать и для документов, причем всё ваши документы будут хранится в самой базе.
25 апр 08, 09:45    [5594675]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Nata75
Member

Откуда:
Сообщений: 127
Leoligov
это уже есть на уровне типовой конфигурации, посмотрите как в справочниках сделана кнопка файлы, аналогично можно сделать и для документов, причем всё ваши документы будут хранится в самой базе.

Спасибо!
29 апр 08, 09:57    [5606614]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Алексей Р.
Member

Откуда:
Сообщений: 304
Накладная может быть на нескольких листах.

Если документов много, то хранил бы в базе только ссылку к файлу.
Дополнительный справочник, поля: объект, папка, имя файла.

К именом файлов добавлял ссылку объекта, чтобы если что можно было определить что за файл и наоборот по файлу найти объект, например,
Накладная_№12345_от_04.05.2008_лист_1_3e54bb02-5d93-11da-9809-005004463ac9.tif
При изменении

Для целостности данных в модуле в предопределенном методе
ПередУдалением() проверял бы наличие прикрепленных файлов.

Нужно учесть, что в NTFS при настройках по умолчанию при большом количестве файлов в папке замедляется поиск файла, если это будет напрягать, то можно раскидать по папкам (год-месяц например).


Если мало , то можно и сами сканы (хранилище).
Дополнительный справочник, поля: объект, значение.

Среди сторонних разработок есть подключение сканера (вроде на mista видел)

Гиперссылку (или лучше к меню добавил кнопку) создал программно, в ПриОткрытии.

Можно реализовать drag&drop для быстрого выбора файла.

Как пример
Процедура ПолеФотоПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
	
	Попытка
		Расширение = ВРег(ПараметрыПеретаскивания.Значение.Расширение);
		Если Расширение = ".JPG" или Расширение = ".PNG" или Расширение = ".GIF" или Расширение = ".TIF" или 
			Расширение = ".BMP" Тогда
			СтандартнаяОбработка = Ложь;
			ПараметрыПеретаскивания.ДопустимыеДействия = ДопустимыеДействияПеретаскивания.Перемещение;
		иначе
			ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Отмена;
		КонецЕсли;
	Исключение
		ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Отмена;
	КонецПопытки;
	
КонецПроцедуры

Процедура ПолеФотоПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
	
	Попытка
		Расширение = ВРег(ПараметрыПеретаскивания.Значение.Расширение);
		Если Расширение = ".JPG" или Расширение = ".PNG" или Расширение = ".GIF" или Расширение = ".TIF" или Расширение = ".BMP" Тогда
			
			МояКартинка = Новый ДвоичныеДанные(ПараметрыПеретаскивания.Значение.ПолноеИмя);
			Фото = Новый ХранилищеЗначения(МояКартинка);
			ОтобразитьФото();
		
		КонецЕсли;
	Исключение
	КонецПопытки;
	
КонецПроцедуры
4 май 08, 13:17    [5621233]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Nata75
Member

Откуда:
Сообщений: 127
Алексей Р.
Накладная может быть на нескольких листах.

Если документов много, то хранил бы в базе только ссылку к файлу.
Дополнительный справочник, поля: объект, папка, имя файла.

К именом файлов добавлял ссылку объекта, чтобы если что можно было определить что за файл и наоборот по файлу найти объект, например,
Накладная_№12345_от_04.05.2008_лист_1_3e54bb02-5d93-11da-9809-005004463ac9.tif
При изменении

Для целостности данных в модуле в предопределенном методе
ПередУдалением() проверял бы наличие прикрепленных файлов.

Нужно учесть, что в NTFS при настройках по умолчанию при большом количестве файлов в папке замедляется поиск файла, если это будет напрягать, то можно раскидать по папкам (год-месяц например).


Если мало , то можно и сами сканы (хранилище).
Дополнительный справочник, поля: объект, значение.

Среди сторонних разработок есть подключение сканера (вроде на mista видел)

Гиперссылку (или лучше к меню добавил кнопку) создал программно, в ПриОткрытии.

Можно реализовать drag&drop для быстрого выбора файла.

Как пример
Процедура ПолеФотоПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
	
	Попытка
		Расширение = ВРег(ПараметрыПеретаскивания.Значение.Расширение);
		Если Расширение = ".JPG" или Расширение = ".PNG" или Расширение = ".GIF" или Расширение = ".TIF" или 
			Расширение = ".BMP" Тогда
			СтандартнаяОбработка = Ложь;
			ПараметрыПеретаскивания.ДопустимыеДействия = ДопустимыеДействияПеретаскивания.Перемещение;
		иначе
			ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Отмена;
		КонецЕсли;
	Исключение
		ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Отмена;
	КонецПопытки;
	
КонецПроцедуры

Процедура ПолеФотоПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
	
	Попытка
		Расширение = ВРег(ПараметрыПеретаскивания.Значение.Расширение);
		Если Расширение = ".JPG" или Расширение = ".PNG" или Расширение = ".GIF" или Расширение = ".TIF" или Расширение = ".BMP" Тогда
			
			МояКартинка = Новый ДвоичныеДанные(ПараметрыПеретаскивания.Значение.ПолноеИмя);
			Фото = Новый ХранилищеЗначения(МояКартинка);
			ОтобразитьФото();
		
		КонецЕсли;
	Исключение
	КонецПопытки;
	
КонецПроцедуры

Спасибо огромное что откликнулись!!! Но не оставляйте меня, пожалуйста! Дело в том что мне очень-очень нужно это реализовать, но на тех дисках ИТС что мне дали этого просто нет, а больше сказали дисков нет. Я Вас очень-приочень прошу расскажите мне подробно как это делать, дело в том что я 1С практически не знаю вообще. Я так поняла что должна создать справочник СправочникСвязьСВорд один из реквизитов должен иметь тип ХранилищеЗначения. Дальше в форме Документа ДокументСГиперссылкой добавляю реквизит в котором тип определяю как СправочникСсылка.СправочникСвязьСВорд. А вот как поместить из этого справочника поле в форму чтобы пользователь при заполнении документа просто указал путь к файлу с договором по данному объекту не поняла, совсем не поняла... очень-приочень жду Вашей помощи!!!!!!!!!!!!!! Заранее благодарна!
4 май 08, 13:42    [5621331]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Алексей Р.
Member

Откуда:
Сообщений: 304
Nata75
Я так поняла что должна создать справочник СправочникСвязьСВорд один из реквизитов должен иметь тип ХранилищеЗначения. Дальше в форме Документа ДокументСГиперссылкой добавляю реквизит в котором тип определяю как СправочникСсылка.СправочникСвязьСВорд. А вот как поместить из этого справочника поле в форму чтобы пользователь при заполнении документа просто указал путь к файлу с договором по данному объекту не поняла, совсем не поняла... очень-приочень жду Вашей помощи!!!!!!!!!!!!!! Заранее благодарна!



Никакие реквизиты добавлять к документу не нужно

Если конфигурацию поддерживаете Вы, тогда создаете гиперссылку на форме.
А лучше кнопку в меню.

Если не вы поддерживаете, тогда лучше программно. Обновлять легче будет.


Создаете справочник СканыДокументов. Реквизиты: Объект (тип любая ссылка, индексировать), Фото (тип Хранилище значения).

Создаете форму списка справочника.
На форму кидаете список и картинку.

К форме добавляете реквизит ПоОбъекту тип любая ссылка.

При открытии смотреть, если задан ПоОбъекту , то устанавливать отбор по объекту.

К сообщению приложен файл. Размер - 0Kb
4 май 08, 14:03    [5621416]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Алексей Р.
Member

Откуда:
Сообщений: 304
//Отбор в справочнике установить так можно

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	
	СправочникСписок.Отбор["Объект"].Использование = Истина;
	СправочникСписок.Отбор["Объект"].Значение = ПоОбъекту ;
	СправочникСписок.Отбор["Объект"].ВидСравнения = ВидСравнения.Равно;
	
КонецПроцедуры

//В документе 
Процедура КнСканыНажатие(...
	
	ФормаСканов = Справочники.Сканы.ПолучитьФормуСписка("ПоОдномуОбъекту");
	ФормаСканов.ПоОбъекту = ЭтотОбъект.Ссылка;
	ФормаСканов.ОткрытьМодально();
	
КонецПроцедуры
// Нужно еще проверить записан ли документ ...

В форме списка справочника
По активизации строки показывать картинку.
Ну и сделать все остальное.
4 май 08, 14:19    [5621499]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Nata75
Member

Откуда:
Сообщений: 127
Алексей Р.
Nata75
Я так поняла что должна создать справочник СправочникСвязьСВорд один из реквизитов должен иметь тип ХранилищеЗначения. Дальше в форме Документа ДокументСГиперссылкой добавляю реквизит в котором тип определяю как СправочникСсылка.СправочникСвязьСВорд. А вот как поместить из этого справочника поле в форму чтобы пользователь при заполнении документа просто указал путь к файлу с договором по данному объекту не поняла, совсем не поняла... очень-приочень жду Вашей помощи!!!!!!!!!!!!!! Заранее благодарна!



Никакие реквизиты добавлять к документу не нужно

Если конфигурацию поддерживаете Вы, тогда создаете гиперссылку на форме.
А лучше кнопку в меню.

Если не вы поддерживаете, тогда лучше программно. Обновлять легче будет.


Создаете справочник СканыДокументов. Реквизиты: Объект (тип любая ссылка, индексировать), Фото (тип Хранилище значения).

Создаете форму списка справочника.
На форму кидаете список и картинку.

К форме добавляете реквизит ПоОбъекту тип любая ссылка.

При открытии смотреть, если задан ПоОбъекту , то устанавливать отбор по объекту.

Только не ругайтесь и не бросайте!!! Мне грубо говоря надо что - когда пользователь заполняет документ (что-то типа приходной накладной) т.е. задает ИмяОбъекта, Район, а в табличной части прописывает все остальное, то в шапке должна быть гиперссылка(или еще что-нибудь) при нажатии на которую открывается стандартное окно виндовс "Открытие документа" пользователь указывает путь к файлу Ворд где договор на разрешение строительства данного объекта и все, а программа должна запомнить этот путь и когда в следующий раз пользователь откроет этот документ, то при нажатии на эту гиперссылку у него на экране откроется этот документ Ворд, т.е. это надо для того, чтобы когда нужно показать договор чтобы пользователь не шел в проводник и не искал там этот договор а мог нажать только кнопку и он открывался... Не могу сделать... не получается... не бросайте!!!...
4 май 08, 14:28    [5621537]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Алексей Р.
Member

Откуда:
Сообщений: 304
Nata75

Только не ругайтесь и не бросайте!!! Мне грубо говоря надо что - когда пользователь заполняет документ (что-то типа приходной накладной) т.е. задает ИмяОбъекта, Район, а в табличной части прописывает все остальное, то в шапке должна быть гиперссылка(или еще что-нибудь) при нажатии на которую открывается стандартное окно виндовс "Открытие документа" пользователь указывает путь к файлу Ворд где договор на разрешение строительства данного объекта и все, а программа должна запомнить этот путь и когда в следующий раз пользователь откроет этот документ, то при нажатии на эту гиперссылку у него на экране откроется этот документ Ворд, т.е. это надо для того, чтобы когда нужно показать договор чтобы пользователь не шел в проводник и не искал там этот договор а мог нажать только кнопку и он открывался... Не могу сделать... не получается... не бросайте!!!...


Можно совсем по простому, если проблемы обновления вас не касаются и нужен ворд.

Пример выбора файла
Процедура ВыбратьФото()
	Перем РежимДиалога, ДиалогВыбораФайла, Каталог;

	РежимДиалога = РежимДиалогаВыбораФайла.Открытие;//.ВыборКаталога;
	ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалога);
	ДиалогВыбораФайла.ПроверятьСуществованиеФайла = Истина;
	ДиалогВыбораФайла.ПредварительныйПросмотр = Истина;
	ДиалогВыбораФайла.Заголовок = "Выберите фотографию";
	ДиалогВыбораФайла.Фильтр = "*.jpg|*.jpg|*.tif|*.tif|*.png|*.png|*.bmp|*.bmp|*.png|*.png|*.*|*.*";
	Если ДиалогВыбораФайла.Выбрать() Тогда
		МояКартинка = Новый ДвоичныеДанные(ДиалогВыбораФайла.ПолноеИмяФайла);
		Фото = Новый ХранилищеЗначения(МояКартинка);
	КонецЕсли;

КонецПроцедуры

Процедура КоманднаяПанель1ВыбратьФото(Кнопка)
	
	ВыбратьФото();
	
КонецПроцедуры

Замените выбор картинки на выбор вордовского документа.

По второй кнопке нужно сделать очистку Фото = Неопределено

По третьей кнопке открытие документа в ворде.

Nata75

... программа должна запомнить этот путь ...

Нельзя запоминать путь. Пользователь переместит файл или просто переименует и его из программы уже не открыть. Либо храним в БД, либо копируем в свою папку и уже тут можно запомнить путь.
4 май 08, 14:46    [5621641]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Nata75
Member

Откуда:
Сообщений: 127
Алексей Р.
Nata75

Только не ругайтесь и не бросайте!!! Мне грубо говоря надо что - когда пользователь заполняет документ (что-то типа приходной накладной) т.е. задает ИмяОбъекта, Район, а в табличной части прописывает все остальное, то в шапке должна быть гиперссылка(или еще что-нибудь) при нажатии на которую открывается стандартное окно виндовс "Открытие документа" пользователь указывает путь к файлу Ворд где договор на разрешение строительства данного объекта и все, а программа должна запомнить этот путь и когда в следующий раз пользователь откроет этот документ, то при нажатии на эту гиперссылку у него на экране откроется этот документ Ворд, т.е. это надо для того, чтобы когда нужно показать договор чтобы пользователь не шел в проводник и не искал там этот договор а мог нажать только кнопку и он открывался... Не могу сделать... не получается... не бросайте!!!...


Можно совсем по простому, если проблемы обновления вас не касаются и нужен ворд.

Пример выбора файла
Процедура ВыбратьФото()
	Перем РежимДиалога, ДиалогВыбораФайла, Каталог;

	РежимДиалога = РежимДиалогаВыбораФайла.Открытие;//.ВыборКаталога;
	ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалога);
	ДиалогВыбораФайла.ПроверятьСуществованиеФайла = Истина;
	ДиалогВыбораФайла.ПредварительныйПросмотр = Истина;
	ДиалогВыбораФайла.Заголовок = "Выберите фотографию";
	ДиалогВыбораФайла.Фильтр = "*.jpg|*.jpg|*.tif|*.tif|*.png|*.png|*.bmp|*.bmp|*.png|*.png|*.*|*.*";
	Если ДиалогВыбораФайла.Выбрать() Тогда
		МояКартинка = Новый ДвоичныеДанные(ДиалогВыбораФайла.ПолноеИмяФайла);
		Фото = Новый ХранилищеЗначения(МояКартинка);
	КонецЕсли;

КонецПроцедуры

Процедура КоманднаяПанель1ВыбратьФото(Кнопка)
	
	ВыбратьФото();
	
КонецПроцедуры

Замените выбор картинки на выбор вордовского документа.

По второй кнопке нужно сделать очистку Фото = Неопределено

По третьей кнопке открытие документа в ворде.

Nata75

... программа должна запомнить этот путь ...

Нельзя запоминать путь. Пользователь переместит файл или просто переименует и его из программы уже не открыть. Либо храним в БД, либо копируем в свою папку и уже тут можно запомнить путь.

Ясненько, спасибо огромное!!! Если Вам будет не сложно, то пожалуйста, пришлите пример на мэйловский адрес, или в эту тему, я обязательно его скачаю и посмотрю! Заранее благодарна! Спасибо огромное что помогаете!!!
4 май 08, 15:24    [5621892]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Алексей Р.
Member

Откуда:
Сообщений: 304
Nata75

Ясненько, спасибо огромное!!! Если Вам будет не сложно, то пожалуйста, пришлите пример на мэйловский адрес, или в эту тему, я обязательно его скачаю и посмотрю! Заранее благодарна! Спасибо огромное что помогаете!!!


Если делать по простому, то и скидывать то и нечего, несколько процедур...
По любому не раньше завтра...
4 май 08, 15:27    [5621904]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Nata75
Member

Откуда:
Сообщений: 127
Алексей Р.
Nata75

Ясненько, спасибо огромное!!! Если Вам будет не сложно, то пожалуйста, пришлите пример на мэйловский адрес, или в эту тему, я обязательно его скачаю и посмотрю! Заранее благодарна! Спасибо огромное что помогаете!!!


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

Алексей Р.!!!!! Завтра так завтра я и до послезавтра подожду!!! Спасибо Вам огромное!!!
мой адрес: Natik12345@list.ru или на сайт - как Вам будет удобно! Спасибо ОГРОМНОЕ!!!!!!!!!
4 май 08, 15:31    [5621923]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Алексей Р.
Member

Откуда:
Сообщений: 304
Сделал, потому, что самому интересно и использую потом для себя.
После небольшой доработки к документу можно будет прикладывать любой файл. Нужно только сохранять тип файла. Тип, имя файла, и сам файл можно упаковать в структуру и структуру сохранить в БД. Или отдельными полями.

/// 
/// с помощью этой конструкции можно сохранять в базе данных файл (в данном случае вордовский), в реквизите "Приложение".
/// А так же открывать или сохранять в новый файл.
/// Кнопки работы с приложением создаются программно.
/// Для использования в своих конфигурациях нужно
/// 1 Создать в документе (справочнике) реквизит
/// "Приложение" - тип ХранилищеЗначения.
/// 2 Скопировать процедуры в модуль формы
/// 3 Наслаждаться результатом
/// Прим. Не рекомендуется без обдумывания использовать для конф. стоящих на поддержке.
/// Сделано не как эталон, а для примера.
/// 
/// (с) Алексей Р.
///
Процедура КоманднаяПанельПриложениеНажатиеКнопки(Кнопка)
	Перем РежимДиалога, ДиалогВыбораФайла, Кнопки, дд, ИмяФайла, Папка, ПолноеИмяФайла;	
	
	Кнопки = ЭлементыФормы.ДействияФормы.Кнопки.Приложение.Кнопки;
	Если Кнопка = Кнопки.Выбрать тогда

		РежимДиалога = РежимДиалогаВыбораФайла.Открытие;
		ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалога);
		ДиалогВыбораФайла.ПроверятьСуществованиеФайла = Истина;
		ДиалогВыбораФайла.ПредварительныйПросмотр = Истина;
		ДиалогВыбораФайла.Заголовок = "Выберите файл приложения";
		ДиалогВыбораФайла.Фильтр = "*.doc|*.doc"; //"*.doc|*.doc|*.xls|*.xls|*.jpg|*.jpg|*.tif|*.tif|*.png|*.png|*.bmp|*.bmp|*.png|*.png|*.*|*.*";
		Если ДиалогВыбораФайла.Выбрать() Тогда
			Попытка
				дд = Новый ДвоичныеДанные(ДиалогВыбораФайла.ПолноеИмяФайла);
				Приложение = Новый ХранилищеЗначения(дд, Новый СжатиеДанных(6));
			Исключение
				Предупреждение(ОписаниеОшибки());
			КонецПопытки;
		КонецЕсли;

	ИначеЕсли Кнопка = Кнопки.Показать тогда
		
		Если Приложение.Получить() <> Неопределено тогда
			//ИмяФайла = "1.doc");
			//Папка = КаталогВременныхФайлов();
			//ПолноеИмяФайла = Папка + ?(Прав(Папка, 1) = "\", "", "\") + ИмяФайла; 
			ПолноеИмяФайла = ПолучитьИмяВременногоФайла(".doc");
			Попытка
				дд = Приложение.Получить();
				дд.Записать(ПолноеИмяФайла);
				ЗапуститьПриложение(ПолноеИмяФайла); 
			Исключение
				Предупреждение(ОписаниеОшибки());
			КонецПопытки;
		КонецЕсли;
		
	ИначеЕсли Кнопка = Кнопки.СохранитьВфайл тогда
		
		Если Приложение.Получить() <> Неопределено тогда
			РежимДиалога = РежимДиалогаВыбораФайла.Сохранение;
			ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалога);
			ДиалогВыбораФайла.Фильтр = "*.doc|*.doc"; //"*.doc|*.doc|*.xls|*.xls|*.jpg|*.jpg|*.tif|*.tif|*.png|*.png|*.bmp|*.bmp|*.png|*.png|*.*|*.*";
			Если ДиалогВыбораФайла.Выбрать() Тогда
				Попытка
					дд = Приложение.Получить();
					дд.Записать(ДиалогВыбораФайла.ПолноеИмяФайла);
				Исключение
					Предупреждение(ОписаниеОшибки());
				КонецПопытки;
			КонецЕсли;
		КонецЕсли;
		
	ИначеЕсли Кнопка = Кнопки.Удалить тогда
		// Диалог подтверждения 
		// ...
		Приложение = Неопределено;
		
	КонецЕсли;
	
	ДоступностьКнопокОбработкиПриложения(Кнопки);
	
КонецПроцедуры

Процедура ДоступностьКнопокОбработкиПриложения(Кнопки)
	Перем д;
	
	д = Приложение.Получить() = Неопределено;
	Кнопки.Выбрать.Доступность = Не ТолькоПросмотр и д;
	Кнопки.Показать.Доступность = Не ТолькоПросмотр и Не д;
	Кнопки.СохранитьВфайл.Доступность = Не ТолькоПросмотр и Не д;
	Кнопки.Удалить.Доступность = Не ТолькоПросмотр и Не д;
	
КонецПроцедуры

Действие = Новый Действие("КоманднаяПанельПриложениеНажатиеКнопки");
нм = ЭлементыФормы.ДействияФормы.Кнопки.Добавить("Приложение", ТипКнопкиКоманднойПанели.Подменю); 		//нм.Картинка = Скрепка;
нк = нм.Кнопки.Добавить("Выбрать", 		ТипКнопкиКоманднойПанели.Действие, "Выбрать", Действие); 		нк.Картинка = БиблиотекаКартинок.ОткрытьФайл;
нк = нм.Кнопки.Добавить("Показать", 	ТипКнопкиКоманднойПанели.Действие, "Показать", Действие);		нк.Картинка = БиблиотекаКартинок.Печать;
нк = нм.Кнопки.Добавить("СохранитьВфайл",ТипКнопкиКоманднойПанели.Действие, "Сохранить в файл", Действие);нк.Картинка = БиблиотекаКартинок.СохранитьФайл;
нк = нм.Кнопки.Добавить("Удалить", 		ТипКнопкиКоманднойПанели.Действие, "Удалить", Действие);		нк.Картинка = БиблиотекаКартинок.Очистить;
ДоступностьКнопокОбработкиПриложения(нм.Кнопки);

/// --------------------------------

При желании еще можно перевести хранение файла в отдельный справочник...


Пользуйтесь кому нужно
5 май 08, 09:57    [5624163]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Nata75
Member

Откуда:
Сообщений: 127
Алексей Р.

Ух как!!! Впечатляет! :) Чичас буду реализовывать! Спасибо ОГРОМНЕЙШЕЕ!!!!!!

Сообщение было отредактировано: 10 май 08, 15:46
5 май 08, 10:30    [5624345]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Алексей Р.
Member

Откуда:
Сообщений: 304
Уточнение

Процедура ДоступностьКнопокОбработкиПриложения(Кнопки)
	Перем д;
	
	д = Приложение.Получить() = Неопределено;
	Кнопки.Выбрать.Доступность = Не ТолькоПросмотр и (Не ТолькоПросмотр и д);
	Кнопки.Показать.Доступность = Не д;
	Кнопки.СохранитьВфайл.Доступность = Не д;
	Кнопки.Удалить.Доступность = Не ТолькоПросмотр и (Не ТолькоПросмотр и Не д);
	
КонецПроцедуры

Если есть изменение доступности формы нужно вызвать метод ДоступностьКнопокОбработкиПриложения(...)
Например в
Процедура ПриОткрытии()
	
	Если Проведен тогда
		Толькопросмотр = Истина;
		ДоступностьКнопокОбработкиПриложения(ЭлементыФормы.ДействияФормы.Кнопки.Приложение.Кнопки);
	КонецЕсли;
	
	
КонецПроцедуры


К сообщению приложен файл. Размер - 0Kb
5 май 08, 10:33    [5624374]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Nata75
Member

Откуда:
Сообщений: 127
СУПЕР!!!!!!!!! ВСЕ ПОЛУЧИЛОСЬ!!!!!!! ВСЕ ЗАРАБОТАЛО!!!!!!! :) СПАСИБО-ПРИСПАСИБО-ПРИПРИСПАСИБО ОГРОМНЕЙШЕЕ!!!!! Алексей Р. ВЫ ГЕНИЙ!!!!! РАБОТАЕТ ПРОГРАММА ИДЕАЛЬНО!!!!!
:)
5 май 08, 10:41    [5624414]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Nata75
Member

Откуда:
Сообщений: 127
Алексей Р. на Вашем рисунке есть пиктограммка Вордовский лист с восклицательным знаком, она тоже должна появляться в результате работы процедуры или нет? у меня такая не появляется...
5 май 08, 11:41    [5624868]     Ответить | Цитировать Сообщить модератору
 Re: Гиперссылка 1С 8  [new]
Алексей Р.
Member

Откуда:
Сообщений: 304
Nata75
Алексей Р. на Вашем рисунке есть пиктограммка Вордовский лист с восклицательным знаком, она тоже должна появляться в результате работы процедуры или нет? у меня такая не появляется...


Это другое, к делу не относится...
5 май 08, 12:01    [5624997]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Ответить