Имя: Пароль:
1C
1С v8
обработчик события "Файлы"
0 vanyshan
 
13.01.12
09:59
Доброе утро!
Подскажите пожалуйста кому не трудно.
В справочнике "договоры контрагентов" на командной панели создана кнопка "файлы". При ее нажатии открывается "форма списка файлов и изображений" в которой можно прикреплять различного рода файлы и изображения соответственно, которые сохраняются в справочнике "хранилище доп.информации". Так вот, в справочнике "договоры контрагентов" имеется таб.часть "условия договора", в которой есть своя командная панель. Необходимо создать в ней еще одну кнопку со своими файлами и изображениями, не зависящими от тех, которые прикреплены в той форме, которая открывается при нажатии кнопки "файлы". Вот Процедура - обработчик события кнопки "Файлы"

Процедура ДействияФормыФайлы(Кнопка)
   
   Если НЕ РаботаСДиалогами.ЗаписатьНовыйОбъектВФорме(ЭтаФорма) Тогда
       Возврат;
   КонецЕсли;
   
   СтруктураДляСпискаИзображдений = Новый Структура("ОтборОбъектИспользование, ОтборОбъектЗначение, ДоступностьОтбораОбъекта, ВидимостьКолонкиОбъекта", Истина, Ссылка, Ложь, Ложь);
   СтруктураДляСпискаДополнительныхФайлов = Новый Структура("ОтборОбъектИспользование, ОтборОбъектЗначение, ДоступностьОтбораОбъекта, ВидимостьКолонкиОбъекта", Истина, Ссылка, Ложь, Ложь);
   ОбязательныеОтборы = Новый Структура("Объект", Ссылка);
   
   РаботаСФайлами.ОткрытьФормуСпискаФайловИИзображений(СтруктураДляСпискаИзображдений, СтруктураДляСпискаДополнительныхФайлов, ОбязательныеОтборы, ЭтаФорма);

КонецПроцедуры
1 vanyshan
 
13.01.12
09:59
Процедура ОткрытьФормуСпискаФайловИИзображений(СтруктураДляСпискаИзображений, СтруктураДляСпискаДополнительныхФайлов, ОбязательныеОтборы, ФормаВладелец, ИмяСправочника = "ХранилищеДополнительнойИнформации") Экспорт

   ФормаФайлов = Справочники[ИмяСправочника].ПолучитьФорму("ФормаСпискаФайловИИзображений", ФормаВладелец);
   
   // Изображения
   Если СтруктураДляСпискаИзображений.Свойство("ОтборОбъектИспользование") Тогда
       ФормаФайлов.Изображения.Отбор.Объект.Использование = СтруктураДляСпискаИзображений.ОтборОбъектИспользование;
       ФормаФайлов.Изображения.Отбор.Объект.Значение      = СтруктураДляСпискаИзображений.ОтборОбъектЗначение;
   КонецЕсли;
   Если СтруктураДляСпискаИзображений.Свойство("ДоступностьОтбораОбъекта") Тогда
       ФормаФайлов.ЭлементыФормы.Изображения.НастройкаОтбора.Объект.Доступность = СтруктураДляСпискаИзображений.ДоступностьОтбораОбъекта;
   КонецЕсли;
   Если СтруктураДляСпискаИзображений.Свойство("ВидимостьКолонкиОбъекта") Тогда
       ФормаФайлов.ЭлементыФормы.Изображения.Колонки.Объект.Видимость = СтруктураДляСпискаИзображений.ВидимостьКолонкиОбъекта;
   КонецЕсли;

   // Дополнительные файлы
   Если СтруктураДляСпискаДополнительныхФайлов.Свойство("ОтборОбъектИспользование") Тогда
       ФормаФайлов.ДополнительныеФайлы.Отбор.Объект.Использование = СтруктураДляСпискаДополнительныхФайлов.ОтборОбъектИспользование;
       ФормаФайлов.ДополнительныеФайлы.Отбор.Объект.Значение      = СтруктураДляСпискаДополнительныхФайлов.ОтборОбъектЗначение;
   КонецЕсли;
   Если СтруктураДляСпискаДополнительныхФайлов.Свойство("ДоступностьОтбораОбъекта") Тогда
       ФормаФайлов.ЭлементыФормы.ДополнительныеФайлы.НастройкаОтбора.Объект.Доступность = СтруктураДляСпискаДополнительныхФайлов.ДоступностьОтбораОбъекта;
   КонецЕсли;
   Если СтруктураДляСпискаДополнительныхФайлов.Свойство("ВидимостьКолонкиОбъекта") Тогда
       ФормаФайлов.ЭлементыФормы.ДополнительныеФайлы.Колонки.Объект.Видимость = СтруктураДляСпискаДополнительныхФайлов.ВидимостьКолонкиОбъекта;
   КонецЕсли;
   
   ФормаФайлов.ОбязательныеОтборы = ОбязательныеОтборы;
   
   Если СтруктураДляСпискаИзображений.Свойство("ОтборОбъектИспользование") И СтруктураДляСпискаДополнительныхФайлов.Свойство("ОтборОбъектИспользование") Тогда
       Если СтруктураДляСпискаИзображений.ОтборОбъектЗначение = СтруктураДляСпискаДополнительныхФайлов.ОтборОбъектЗначение Тогда
           ФормаФайлов.Заголовок = "Хранилище дополнительной информации (" + СокрЛП(Строка(СтруктураДляСпискаИзображений.ОтборОбъектЗначение)) + ")";
       КонецЕсли;
   КонецЕсли;
   
   ФормаФайлов.Открыть();

КонецПроцедуры
2 vanyshan
 
13.01.12
10:03
Я так понимаю чтобы фалы и изображения которые будут отображаться в форме при нажатии на кнопку, скажем "файлы1" были отличны от предыдущих, нужно создать отдельную форму списка файлов и изображений? Или можно без создания формы кодом поправить?
3 vanyshan
 
13.01.12
14:48
Народ, ну будьте вы людьми, подскажите пожалуйста что делаю не так. При добавлении файла из вызова кнопки "файлы", этот же файл прикрепляется и при вызове кнопки "файлы1", получается что записи удваиваются. Как провести разграничение? Не создавать же новый справочник "хранилище".
4 vmv
 
13.01.12
14:50
Открой карточку физлица и посмотри как правильно показать файлы в таблице, мне тож эта скрепка не нравиться
5 vanyshan
 
13.01.12
15:31
В принципе она меня устраивала, но как только столкнулся с необходимостью добавления еще одной кнопки, начинают возникать некоторые трудности. А по поводу физлиц - это идея.
6 vanyshan
 
13.01.12
15:43
В этом справочнике абсолютно такой же алгоритм.
7 vanyshan
 
13.01.12
15:51
Поэтому моей проблеме это не поможет.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший