Функция ВСтрокуBase64(safeArray) // Конвертация ComSafeArray->Base64 obj = Новый COMОбъект("MSXML2.DomDocument.3.0"); helper=obj.createElement("a"); helper.DataType = "bin.base64"; helper.nodeTypedValue = safeArray; Возврат helper.text; КонецФункции Процедура КнопкаВыполнитьНажатие(Кнопка) //Очищаем наше табличное поле ТабличноеПоле1.Очистить(); ТабличноеПоле1.Колонки.Очистить(); //Готовим строку соединения с MS Access //Путь к базе указывается в самом конце //СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+"C:UserssazanovDesktopПЕРСОНАЛПерсонал_be.mdb"; //СоединениеСБазой = Новый COMОбъект("ADODB.Connection"); СтрокаПодключения="Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+"C:UserssazanovDesktopПЕРСОНАЛПерсонал_be.mdb"; СоединениеСБазой = Новый COMОбъект("ADODB.Connection"); //Соединяемся СоединениеСБазой.Open(СтрокаПодключения); //------------------------------------------------------------ //Получаем набор записей из таблицы Аттестация КоллекцияЗаписей = Новый COMОбъект("ADODB.Recordset"); КоллекцияЗаписей.CursorLocation=3; КоллекцияЗаписей.LockType=2; //КоллекцияЗаписей.Open("select * from Аттестация", СоединениеСБазой,1); КоллекцияЗаписей.Open("select * from Аттестация", СоединениеСБазой); //считываем структуру полей таблицы //В таблице значений создаем все колонки, которые есть в Access'овской таблице Для сч = 0 по КоллекцияЗаписей.Fields.Count - 1 Цикл ТабличноеПоле1.Колонки.Добавить("Колонка" + сч,, Строка(КоллекцияЗаписей.Fields.Item(сч).Name)); КонецЦикла; //Перемещаем маркер на первую запись КоллекцияЗаписей.MoveFirst(); //считываем данные из таблицы //и добавляем их в ТЗ счетчик=1; Пока НЕ КоллекцияЗаписей.EOF Цикл НоваяСтрока = ТабличноеПоле1.Добавить(); Для сч = 0 по КоллекцияЗаписей.Fields.Count - 1 Цикл НоваяСтрока["Колонка" + сч] = КоллекцияЗаписей.fields(ТабличноеПоле1.Колонки[сч].Заголовок).Value; /////////////// // Если КоллекцияЗаписей.fields(ТабличноеПоле1.Колонки[сч].Заголовок).Value = "COMSafeArray" Тогда //Сообщить ("Колонка" + сч); Если "Колонка" + сч = "Колонка11" Тогда //колонка "Фото" счетчик=счетчик+1; Состояние(счетчик); Если (КоллекцияЗаписей.Fields("Фото").Value) <> NULL Тогда СтрокаBase64=ВСтрокуBase64(КоллекцияЗаписей.Fields("Фото").Value); // СтрокаBase64=Преобразовать64(КоллекцияЗаписей.Fields("Фото").Value); Двоичные=Base64Значение(СтрокаBase64); Картина=Новый Картинка(Двоичные); Сообщить(Картина.Формат()); // Картина1=Картина.Преобразовать(ФорматКартинки.PNG); Картина.Записать("D:1"+КоллекцияЗаписей.Fields("Табельный номер").Value+"__"+КоллекцияЗаписей.Fields("Фамилия").Value+".png")); ЭлементыФормы.ПолеКартинки1.Картинка=Картина1; Иначе Сообщить(КоллекцияЗаписей.Fields("Фамилия").Value+" нет ФОТО!"); КонецЕсли; КонецЕсли; ////////////// КонецЦикла; КоллекцияЗаписей.MoveNext(); КонецЦикла; //Отображаем данные из ТЗ в ТабличномПоле ЭлементыФОрмы.ТабличноеПоле1.Значение = ТабличноеПоле1; ЭлементыФОрмы.ТабличноеПоле1.СоздатьКолонки(); КонецПроцедуры