Имя: Пароль:
1C
1С v8
Пропадают фото на форме документа
0 SVVS12
 
25.08.12
14:10
Когда пользователь работает с документом, другому пользователю этот документ открывается только для чтения, но если первый пользователь при этом вставил фото на форму, то после сохранения и последующего открытия этого документа фото не отображается. Подозреваю, что когда второй пользователь закрывает свою форму,то данные временного хранилища, которое создал при вставке фото первый пользователь удаляются и не попадают в реквизит документа. Пробовал сразу после вставки фото программно поставить ФормуЗакрыть(),ФормуОткрыть(). Но случаи пропадания фото не прекратились. Как сделать правильно?
Вот так вставлены фотографии:

&НаКлиенте
Процедура ВыбратьКартинку(Команда)
       АдресВХранилище = "";
       ВыбранноеИмяФайла = "";
          Если ПоместитьФайл(АдресВХранилище,,ВыбранноеИмяФайла,,) Тогда
         
             Файл = Новый Файл (ВыбранноеИмяФайла);
                       
               
          Иначе Возврат;
       КонецЕсли;
       
          Если Файл.Размер()<= 1000000 Тогда
           
        Объект.ИмяФайлаВизуализации = Файл.Имя;
        Объект.ПутьФайлВизуализации = АдресВХранилище;
                 

      КонецЕсли;
      ЭтаФорма.Модифицированность = Истина;
      Иначе Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Размер файла выбранной фотографии превышает допустимый размер.";
         Сообщение.Поле = "";
               
         Сообщение.Сообщить();
    КонецЕсли;
КонецПроцедуры


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

&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
     
          Если ЭтоАдресВременногоХранилища (Объект.ПутьФайлВизуализации) Тогда
         
             УдалитьИзВременногоХранилища (Объект.ПутьФайлВизуализации);
           Объект.ПутьФайлВизуализации = ПолучитьНавигационнуюСсылку (ТекущийОбъект.Ссылка, "ФайлКартинки");
         
       КонецЕсли;
КонецПроцедуры



&НаСервере
Процедура ВозобновитьФото()

Если Объект.ИмяФайлаВизуализации <> ""  Тогда
           Объект.ПутьФайлВизуализации = ПолучитьНавигационнуюСсылку (Объект.Ссылка, "ФайлКартинки");
 КонецЕсли;
 
КонецПроцедуры
1 Wobland
 
25.08.12
14:21
и это работает? три конца если и два если в первой
2 Wobland
 
25.08.12
14:21
(1) процедуре
3 Wobland
 
25.08.12
14:22
а где конец если во второй? просроченный код какой-то
4 SVVS12
 
25.08.12
14:26
С если и правда лажа получилась, просто несколько фоток вставлено, хотел убрать лишнее
5 SVVS12
 
25.08.12
14:29
&НаКлиенте
Процедура ВыбратьКартинку(Команда)
       АдресВХранилище = "";
       ВыбранноеИмяФайла = "";
          Если ПоместитьФайл(АдресВХранилище,,ВыбранноеИмяФайла,,) Тогда
         
              Файл = Новый Файл (ВыбранноеИмяФайла);
                       
               
          Иначе Возврат;
       КонецЕсли;
       
          Если Файл.Размер()<= 1000000 Тогда
           
        Объект.ИмяФайлаВизуализации = Файл.Имя;
        Объект.ПутьФайлВизуализации = АдресВХранилище;
                 

     
      ЭтаФорма.Модифицированность = Истина;
      Иначе Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Размер файла выбранной фотографии превышает допустимый размер.";
         Сообщение.Поле = "";
               
         Сообщение.Сообщить();
    КонецЕсли;
КонецПроцедуры


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

&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
     
          Если ЭтоАдресВременногоХранилища (Объект.ПутьФайлВизуализации) Тогда
         
              УдалитьИзВременногоХранилища (Объект.ПутьФайлВизуализации);
           Объект.ПутьФайлВизуализации = ПолучитьНавигационнуюСсылку (ТекущийОбъект.Ссылка, "ФайлКартинки");
         
       КонецЕсли;
КонецПроцедуры



&НаСервере
Процедура ВозобновитьФото()

Если Объект.ИмяФайлаВизуализации <> ""  Тогда
           Объект.ПутьФайлВизуализации = ПолучитьНавигационнуюСсылку (Объект.Ссылка, "ФайлКартинки");
 КонецЕсли;
 
КонецПроцедуры