Имя: Пароль:
1C
1С v8
ИдентификаторФормы получить в УФ
, , ,
0 SkillUp
 
26.11.20
13:39
Здравствуйте, надо получить ИдентификаторФормы  в УФ, есть ссылка.

Делаю так:
ИдентификаторФормы    = ХарактеристикаСсылка.УникальныйИдентификатор();

Парвильно ли я получаю идентификатор формы, или я получаю идентификатор ссылки? Разъясните пожалуйста и если не правильно, можно пример, как надо?
1 folo
 
26.11.20
13:43
Это идентификатор записи.  Если копать в строну открытых окон то есть метод ПолучитьОкна.
2 SkillUp
 
26.11.20
13:44
(1) Не, у меня все закрытые окна. Надо просто идентификатор ИМЕННО ФОРМЫ. Не могу понять как его получить...
3 SkillUp
 
26.11.20
13:46
Я просто программно добавляю картинку в Характеристику, там один из параметров - идентификатор формы

ДополнительныеПараметры = Новый Структура;
            ДополнительныеПараметры.Вставить("ВладелецФайла",        Характеристика);
            ДополнительныеПараметры.Вставить("ИдентификаторФормы",   ИдентификаторФормы);
            ДополнительныеПараметры.Вставить("Фильтр",               Фильтр);
            ДополнительныеПараметры.Вставить("ГруппаФайлов",         ГруппаФайлов);
            ДополнительныеПараметры.Вставить("ОбработчикРезультата", ОбработчикРезультата);
            ДополнительныеПараметры.Вставить("ПолноеИмяФайла",       ПутьККартинке);
            
            РаботаСФайламиСлужебныйКлиент.ДобавитьФайлыРасширениеПредложено(Истина, ДополнительныеПараметры);
4 folo
 
26.11.20
13:54
когда форму открывают - можно задать свой уникальный идентификатор. Смотри ПолучитьФОрму или ОткрытьФорму. Вероятно речь про него
5 SkillUp
 
26.11.20
13:55
(4) Да, так и подумал. Спасибо!
6 Жан Пердежон
 
26.11.20
14:07
ФормаКлиентскогоПриложения (ClientApplicationForm)
УникальныйИдентификатор (UUID)
Использование:
Только чтение.
Описание:
Тип: УникальныйИдентификатор.
Уникальный идентификатор экземпляра формы.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение (клиент), мобильное приложение (сервер).
Использование в версии:
Доступен, начиная с версии 8.2.
7 SkillUp
 
26.11.20
14:10
(6) Ну это понятно, а как саму форму спраочника получить в УФ по ссылке?
8 SkillUp
 
26.11.20
14:11
(6) Или я что-то не понимаю...
9 Жан Пердежон
 
26.11.20
14:12
ПолучитьФорму()
10 SkillUp
 
26.11.20
14:14
(9) в УФ?
11 SkillUp
 
26.11.20
14:14
(9) Доступность:
Толстый клиент.
12 Жан Пердежон
 
26.11.20
14:20
учу пользоваться СП, дорого:

Глобальный контекст (Global context)
ПолучитьФорму (GetForm)
Синтаксис:
ПолучитьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>)
***
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, толстый клиент, мобильное приложение (клиент).
Вызов метода выполняет обращение к серверу.
13 SkillUp
 
26.11.20
14:27
(12) Пардон...
14 fisher
 
26.11.20
14:53
Кто-то понял, какую задачу решает ТС?
15 SkillUp
 
26.11.20
16:35
(14) Программное добавление картинок в характеристики,через типовые механизмы, в конфигурации УНФ. Что не понятно?
16 Kassern
 
26.11.20
16:46
(15) а что мешает посмотреть в отладке чем заполняется структура при типовом добавлении картинки?
17 Kassern
 
26.11.20
16:46
(16) И сделать свое программное заполнение этой структуры для групповой, к примеру, загрузки фото
18 ГдеСобака Зарыта
 
26.11.20
16:47
Передай туда идентификатор своей открытой формы обработки или что там у тебя.
19 fisher
 
26.11.20
16:50
(15) Непонятно, зачем для этого идентификатор формы. Что с ним делаться-то будет?
20 ГдеСобака Зарыта
 
26.11.20
16:56
(19) Ну надо ж клиента оповестить о результате добавления файла. Только ТС хочет это оповещения отправить на форму полученную по какой-то там его ссылке.
21 fisher
 
26.11.20
17:13
(20) Дошло :)
22 singlych
 
26.11.20
17:48
УИД формы нужен для помещения файла во временное хранилище
23 SkillUp
 
26.11.20
18:56
(22) Я уже думал, что ни кто не догадается. Но, есть люди...
24 SkillUp
 
26.11.20
22:04
Ребят, спасибо! Передал УИД формы, типовой механизм автоматом создал НоменклатуруПрикрипленныеФайлы. Что мне и надо. Без этого УИД, не создавал документ.
25 Kassern
 
27.11.20
09:05
(23)(22) нда....тут уж все разжевали, просто для помещения файла во временное хранилище никакой УИД не нужен. В данном случае он нужен именно для типовой процедуры в которой предусматривается возвращение ответа на форму, о чем и написали в (20) Только для этого и нужен этот УИД, а не как для помещения файла в хранилище.
26 Kassern
 
27.11.20
09:06
(25) вы можете написать свою процедуру создания НоменклатураПрикрипленныеФайлы с загрузкой файла в хранилище без всякого УИДА.
27 SkillUp
 
27.11.20
10:10
(26) Можно и свою, но попробуйте погуглить, как правильно создать док. - НоменклатураПрикрипленныеФайлы.  Вам будет ответ -0, и в конфигурации подобного нет. Даже форму открыть не возможно этого документа. За-то если разобраться, можно воспользоваться типовым механизмом , просто передав туда УИД формы... Он сам все создаст.
28 SkillUp
 
27.11.20
10:28
(26) Все разобрался... Спасибо!
29 SkillUp
 
27.11.20
10:37
(26) Согласен.
30 singlych
 
27.11.20
11:53
(25) предлагаю посмотреть:
- в код той самой типовой процедуры, в которой предусматривается возвращение ответа на форму
- в СП в описание ПоместитьВоВременноеХранилище, как и какие УИДы там используются
- ну или хотя бы в описание параметров метода РаботаСФайламиКлиент.ДобавитьФайлы
31 Kassern
 
27.11.20
12:21
(30) Ну да, так же используется для очистки данных во временном хранилище при закрытии формы.
32 SkillUp
 
27.11.20
12:37
(30) // Открывает диалог выбора файлов для помещения в программу одного или нескольких файлов.
// При этом проверяются необходимые условия:
// - размер файла не превышает максимально допустимого,
// - файл имеет допустимое расширение,
// - имеется свободное место в томе (при хранении файлов в томах),
// - прочие условия.
//
// Параметры:
//  ВладелецФайла      - ОпределяемыйТип.ВладелецПрисоединенныхФайлов - папка файлов или объект, к которому
//                       требуется прикрепить добавляемый файл.
//  ИдентификаторФормы - УникальныйИдентификатор - уникальный идентификатор формы, во временное хранилище
//                       которой будет помещен файл.
//  Фильтр             - Строка - фильтр выбираемого файла, например, картинки для номенклатуры.
//  ГруппаФайлов       - ОпределяемыйТип.ПрисоединенныйФайл - группа справочника с файлами, в которую будет
//                       добавлен новый файл.
//  ОбработчикРезультата - ОписаниеОповещения - содержит описание процедуры, вызов которой будет произведен
//                       после добавления файлов со следующими параметрами:
//      * Результат - Массив - ссылки на добавленные файлы. Если файлы не были добавлены, пустой массив.
//      * ДополнительныеПараметры - Произвольный - значение, указанное при создании описания оповещения.
//
Процедура ДобавитьФайлы(Знач ВладелецФайла, Знач ИдентификаторФормы, Знач Фильтр = "", ГруппаФайлов = Неопределено,
    ОбработчикРезультата = Неопределено) Экспорт
    
    Параметры = Новый Структура;
    Параметры.Вставить("ВладелецФайла",        ВладелецФайла);
    Параметры.Вставить("ИдентификаторФормы",   ИдентификаторФормы);
    Параметры.Вставить("Фильтр",               Фильтр);
    Параметры.Вставить("ГруппаФайлов",         ГруппаФайлов);
    Параметры.Вставить("ОбработчикРезультата", ОбработчикРезультата);
    
    ОписаниеОповещения = Новый ОписаниеОповещения("ДобавитьФайлыРасширениеПредложено", РаботаСФайламиСлужебныйКлиент, Параметры);
    РаботаСФайламиСлужебныйКлиент.ПоказатьВопросОбУстановкеРасширенияРаботыСФайлами(ОписаниеОповещения);
    
КонецПроцедуры

Согласен, но если вызывать эту процедуру, то появляется вопрос с выбором файла, что мне при программном добавлении картинки не надо. Поэтому делаю свою структуру:
И добавляю параметр - "ПолноеИмяФайла".

ДополнительныеПараметры = Новый Структура;
            ДополнительныеПараметры.Вставить("ВладелецФайла",        Характеристика);
            ДополнительныеПараметры.Вставить("ИдентификаторФормы",   ИдентификаторФормы);
            ДополнительныеПараметры.Вставить("Фильтр",               Фильтр);
            ДополнительныеПараметры.Вставить("ГруппаФайлов",         ГруппаФайлов);
            ДополнительныеПараметры.Вставить("ОбработчикРезультата", ОбработчикРезультата);
            ДополнительныеПараметры.Вставить("ПолноеИмяФайла",       ПутьККартинке);
            
            РаботаСФайламиСлужебныйКлиент.ДобавитьФайлыРасширениеПредложено(Истина, ДополнительныеПараметры);


Вызываемой процедуры:

Процедура ДобавитьФайлыРасширениеПредложено(РасширениеРаботыСФайламиПодключено, ДополнительныеПараметры) Экспорт

Если Не ДополнительныеПараметры.Свойство("ПолноеИмяФайла") Тогда
            
ТекстПроцедуры...

ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
            ВыборФайла.МножественныйВыбор = Истина;
            ВыборФайла.Заголовок = НСтр("ru='Выбор файла';uk='Вибір файлу'");
            ВыборФайла.Фильтр = ?(ЗначениеЗаполнено(Фильтр), Фильтр, НСтр("ru='Все файлы';uk='Всі файли'") + " (*.*)|*.*");
            Если ВыборФайла.Выбрать() Тогда
                ВыбранныеФайлы = ВыборФайла.ВыбранныеФайлы;
            КонецЕсли;
        Иначе
            ВыбранныеФайлы.Добавить(ДополнительныеПараметры.ПолноеИмяФайла);
        КонецЕсли;

ТекстПроцедуры...

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

Посути, я пошел по пути "РаботаСФайламиКлиент.ДобавитьФайлы", только немного изменив структуру параметров, чтоб избежать интеракт. вопросов.
33 SkillUp
 
27.11.20
12:41
Конфигурация - УНФ.
34 acht
 
27.11.20
12:59
РаботаСФайлами.ДобавитьФайлСДиска(ВладелецФайлов, ПутьКФайлуНаДиске)

Оно для лохов, понимаю
35 SkillUp
 
27.11.20
13:31
(34) Где ты был раньше?!
36 singlych
 
27.11.20
13:33
(34) Оно для файлов на сервере (я один читаю описания методов?). Промахнулся немного, там рядом есть РаботаСФайлами.ДобавитьФайл.

То, что делает ТС в (30) конечно, некоторый изврат. Методы из модулей с суффиксом Служебный как бы "приватные" и типа не предназначены для использования вне подсистемы. Все это приводит к выполнению бесполезного кода, который пытается обработать интерактивный выбор файлов, которого фактически не было. По идее, раз файлы известны, нужно помещать их в хранилище и юзать ДобавитьФайл, но тогда и весь обвес параметрами придется писать самому, и формы владельцев оповещать самому.
37 SkillUp
 
27.11.20
13:42
(36) Блин, точно...
Закон Брукера: Даже маленькая практика стоит большой теории.