Все об 1С8 - Вопрос - ответ
Все об 1С8 - просто и доступно

Добавить в Избранное  Сделать Стартовой  Написать письмо

Главная Статьи Вопрос-ответ Экспресс-справочник Гостевая книга
Разделы вопросов - ответов

Вопросы - ответы по 1С

В этом разделе будут подобраны короткие вопросы с вариантами их решения. По мере наполнения разделами вопросами последние будут сгруппированы по тематическим разделам, а что-то будет оставлено в общем разделе. В гостевой книге можете оставлять свои вопросы, по возможности на них будут даны ответы и размещены здесь.


Вопрос. Как открыть изображение во внешнем приложении из картинки, размещенной на форме?
Ответ. Для этого можно воспользоваться процедурой глобального контекста ЗапуститьПриложение(). Пусть для примера на форме есть картинка с именем ГрафическийОбраз (тип Картинка). Тогда обработчик события Нажатие будет выглядеть следующим образом:

Процедура ГрафическийОбразНажатие(Элемент)
	
	прИзображение 	= ГрафическийОбраз.Получить();
	прФильтр 	= прИзображение.ФильтрИменФайлов();    
	прРасширение 	= РаботаСФайлами.ВыделитьРасширениеИзИмениФайла(прФильтр);
	Попытка
		прИзображение.Записать(КаталогВременныхФайлов() + "tmp_pict" + прРасширение);
		ЗапуститьПриложение(КаталогВременныхФайлов() 	+ "tmp_pict" + прРасширение);
	Исключение
		Сообщить(ОписаниеОшибки());
	КонецПопытки;	
	
КонецПроцедуры

При нажатии на картинку на форме будет определено, какое приложение в операционной системе запускается для открытия файлов изображений, и это приложение будет запущено. Следует заметить, что здесь использована экспортная функция ВыделитьРасширениеИзИмениФайла(СтрокаОбработки), расположенная в общем модуле РаботаСФайлами.


Вопрос. Как получить список документов из формы списка в, например, таблицу значений? Или вообще выгрузить данные из табличной части?
Ответ. Для этого можно поступить следующим образом:

	ПеребираемыеДанные = Новый ПостроительОтчета;
	ПеребираемыеДанные.ИсточникДанных = Новый ОписаниеИсточникаДанных(ЭтаФорма.ДокументСписок);//Или другая какая-то табличная часть
	Выборка = ПеребираемыеДанные.Результат.Выгрузить();
	//Или Выборка = ПеребираемыеДанные.Результат.Выбрать();

Затем следует обычная работа с выборкой, как с результатом запроса.


Вопрос. Как определить путь до рабочего стола текущего пользователя Windows?
Ответ. Для этого можно поступить следующим образом:

	WSS = Новый COMОбъект("WScript.Shell");
	ПеременнаяНазначения = WSS.SpecialFolders().Item("Desktop");

Возвращаемое значение без символа "\"