0
- 29.05.2014 - 09:57
|
Есть в справочнике контрагентах группа прикрепленные файлы. Как туда программно добавить файл. Т.е. грубо говоря получена ссылка на контрагента, как к нему добавить файл? Конфигурация какая-то самописная.
| |
1
- 29.05.2014 - 10:03
|
0-Паровоз > Бестолочь! Ты хатя ба сам та читал што ты написал? Типа, у мну исть самаписная канфигурация каторую нихто ни видел, падскажите как в ниё файл дабавить. Типичнай ты адынесник! | |
2
- 29.05.2014 - 10:04
| открой конфигуратор, там написано, как программно... | |
3
- 29.05.2014 - 10:15
|
да не совсем самописная, когда-то это был itil.Управление информационными технологиями предприяьтия, но снят с поддержки и дописывался кем-то. http://files.mail.ru/DD1437644417469E9116C8BB17253F96 | |
4
- 29.05.2014 - 10:16
| очередной туповатый одноЭсник ставит опыты по скрещиванию ужа и ежа | |
5
- 29.05.2014 - 11:07
|
Хм... Это смотря как хранятся эти самые файлы... Вне БД, или внутри БД (используя хранилище). Если вне БД, то можно добраться до списка файлов данного контрагента, если сами файлы сформированы с именами, включающими UUID данного контрагента. Что позволяет не вносить новые реквизиты, если файл единственный, или это директория. Если в хранилище (надеюсь, БД не файловая?), то в качестве ключа записи можно использовать ссылку владельца (тот же UUID вид сбоку). P.S. По ссылке в (3) не ходил: подозреваю, внутри что-то сложное для понимания ;) | |
6
- 29.05.2014 - 16:00
| 5-VZ >Там скриншот Конфигуратора :) | |
7
- 30.05.2014 - 10:21
|
6-DaCAT >:) 0-Паровоз > Не знаю как в твоей конфигурации, но в БП3 есть функционал "Присоединенные файлы". Основа: подчиненные справочники объектов (например ОрганизацииПодчиненныеФайлы, где есть реквизит ВладелецФайла тип СправочникСсылка.Организации), и один общий регистр сведений для хранения истории. Ну, куча функционала из БСП для обработок этих файлов. Рекомендуется стянуть ;) | |
8
- 30.05.2014 - 15:59
|
&НаКлиенте Функция ДобавитьФайл(ИмяФайла, НомерЗаявки) код=СокрЛП(Строка(НомерЗаявки)); Элемент=ПолучитьОбъект(код); Форма2=ПолучитьФорму(); //РаботаСФайламиКлиент.СкопироватьФайл(Элемент.Контр агент,"c:\1.txt"); // www=РаботаСФайлами.СоздатьФайл(Элемент.Контрагент, "eeee", " 13 zayavka_1", "jpg", "", "c:\"); если НЕ элемент.Пустая() тогда сообщить(Элемент.контрагент.НаименованиеПолное); иначе сообщить("ссылка-пустая!!! при поиске по коду -"+код); конецесли; РаботаСФайламиКлиент.СоздатьДокументНаОсновеФайла( "c:\1.txt",Элемент.Контрагент,Форма2.ПолучитьФорму ("ФормаЭлементаITIL").ВладелецФормы, Истина); возврат Элемент.Контрагент.ИНН; конецфункции &НаСервере Функция ПолучитьФорму() форма= справочники.Контрагенты; возврат форма; конецфункции &НаСервере Функция ПолучитьОбъект(код) Элемент=Справочники.ЗаказыЭЦП.НайтиПоНаименованию( код); возврат Элемент; конецфункции ___________________________ Есть встроенная функция у них, РаботаСФайламиКлиент.СоздатьДокументНаОсновеФайла но у меня при последнем вызове пишет ошибку по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства 'ret': _____________ Сранная функция, наверно она расчитана , чтобы получать ссылку на формы из формы, а у меня она вызывается не из формы? Процедура СоздатьДокументНаОсновеФайла(ПолноеИмяФайла, ВладелецФайла, ФормаВладелец, НеОткрыватьКарточкуПослеСозданияИзФайла = Неопределено) Экспорт // Здесь создаем Файл ... Файл = Новый Файл(ПолноеИмяФайла); МаксРазмерФайла = РаботаСФайламиКлиентПовтИсп.ПолучитьПерсональныеНа стройкиРаботыСФайлами().МаксимальныйРазмерФайла; РазмерВМб = Файл.Размер() / (1024 * 1024); РазмерВМбМакс = МаксРазмерФайла / (1024 * 1024); Если Файл.Размер() > МаксРазмерФайла Тогда ОбновитьПовторноИспользуемыеЗначения(); ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВС троку( НСтр("ru = 'Размер файла ""%1"" (%2 Мб) превышает максимально допустимый размер файла (%3 Мб).'"), Файл.Имя, ?(РазмерВМб >= 1, Формат(РазмерВМб, "ЧДЦ=0"), Формат(РазмерВМб, "ЧДЦ=1; ЧН=0")), ?(РазмерВМбМакс >= 1, Формат(РазмерВМбМакс, "ЧДЦ=0"), Формат(РазмерВМбМакс, "ЧДЦ=1; ЧН=0"))); КонецЕсли; АдресВременногоХранилищаТекста = ФайловыеФункцииКлиент.ИзвлечьТекстВоВременноеХрани лище( Файл.ПолноеИмя, ФормаВладелец.УникальныйИдентификатор); ВремяИзменения = Файл.ПолучитьВремяИзменения(); ВремяИзмененияУниверсальное = Файл.ПолучитьУниверсальноеВремяИзменения(); ИмяФайла = Файл.Имя; РазмерВМб = Файл.Размер() / (1024 * 1024); ТекстПояснения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВС троку( НСтр("ru = 'Идет сохранение файла ""%1"" (%2 Мб). |Пожалуйста, подождите...'"), ИмяФайла, ?(РазмерВМб >= 1, Формат(РазмерВМб, "ЧДЦ=0"), Формат(РазмерВМб, "ЧДЦ=1; ЧН=0"))); Состояние(ТекстПояснения); // Поместим Файл в ВременноеХранилище АдресВременногоХранилищаФайла = ""; ПомещаемыеФайлы = Новый Массив; Описание = Новый ОписаниеПередаваемогоФайла(Файл.ПолноеИмя, ""); ПомещаемыеФайлы.Добавить(Описание); ПомещенныеФайлы = Новый Массив; Если НЕ ПоместитьФайлы(ПомещаемыеФайлы, ПомещенныеФайлы, , Ложь, ФормаВладелец.УникальныйИдентификатор) Тогда ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВС троку( НСтр("ru = 'Ошибка при помещении файла в хранилище: %1'"), Файл.ПолноеИмя); КонецЕсли; Если ПомещенныеФайлы.Количество() = 1 Тогда АдресВременногоХранилищаФайла = ПомещенныеФайлы[0].Хранение; КонецЕсли; // Создадим карточку Файла в БД Док = РаботаСФайлами.СоздатьФайлСВерсией( ВладелецФайла, Файл.ИмяБезРасширения, ФайловыеФункцииКлиент.РасширениеБезТочки(Файл.Расш ирение), ВремяИзменения, ВремяИзмененияУниверсальное, Файл.Размер(), АдресВременногоХранилищаФайла, АдресВременногоХранилищаТекста, Ложь); // это не веб клиент Состояние(); ПараметрыОповещения = Новый Структура("Владелец, Файл", ВладелецФайла, Док); Оповестить("СозданФайл", ПараметрыОповещения); Параметры = Новый Структура("Ключ, КарточкаОткрытаПослеСозданияФайла", Док, Истина); //Если НеОткрыватьКарточкуПослеСозданияИзФайла <> Истина Тогда // Форма = ПолучитьФорму("Справочник.Файлы.Форма.ФормаЭлемент а", Параметры); // Форма.ВладелецФормы = ФормаВладелец; // Форма.НовыйФайл = Истина; // Форма.Открыть(); //КонецЕсли; КонецПроцедуры | |
9
- 02.06.2014 - 14:51
|
ТАк все-таки, как? Нашел Процедуру СоздатьДокументНаОсновеФайла(ПолноеИмяФайла, ВладелецФайла, ФормаВладелец, НеОткрыватьКарточкуПослеСозданияИзФайла = Неопределено) Экспорт Все она прекрасно добавляет, но из формы!!! А мне нужно файлы добавлять в обработке, Владельца получаю так Функция ПолучитьОбъект(код) Элемент=Справочники.Заказчики.НайтиПоНаименованию( код).Контрагент; возврат Элемент; конецфункции а как получить форму? | |
10
- 02.06.2014 - 14:53
| зачем тебе форма? файлы же не в форме хранятся | |
11
- 02.06.2014 - 14:57
| У меня есть в контрагентах группа файлы, т.е. к каждому контрагенту нужно по подвязывать файлы со сканами договоров и паспортных данных, их несколько сотен, а готовая функция нормально работает в форме | |
12
- 04.06.2014 - 05:45
| Гениально | |
| Интернет-форум Краснодарского края и Краснодара |