Добавление нового файла в Хранилище доп. Информации в ут 10.3 программно
Доброе утро всем. Может кто делал добавление нового файла(word) в Хранилище доп. Информации в ут 10.3 программно? я создал макет(из его делаю договор с контрагентом) и сохраняю его по пути на диск, далее хочу чтобы автоматически из этого пути прописывалось в хранилище доп информации,чтобы потом можно было зайти в карточку контрагента и распечатать договор. Может кто подскажет как это сделать? я в своей кнопке где делаю договор и сохраняю его по пути на диск,прописал такое:
датдог = Формат(ДатаДоговора,"ДФ=""дд-ММ-гггг""");
Word.SaveAs("F:\Dogovora\IP\" + НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года",0);
ДействияФормыФайлы(Кнопка); --- открывает эту форму,теперь как-то надо нажать кнопку добавить и выбрать из пути.
подскажите пожалуйста,как сделать или может кто уже делал похожее?!
датдог = Формат(ДатаДоговора,"ДФ=""дд-ММ-гггг""");
Word.SaveAs("F:\Dogovora\IP\" + НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года",0);
ДействияФормыФайлы(Кнопка); --- открывает эту форму,теперь как-то надо нажать кнопку добавить и выбрать из пути.
подскажите пожалуйста,как сделать или может кто уже делал похожее?!
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
То есть вам нужно ваш сохраненный файл сохранить в справочник "Файлы"?
Структура может отличаться, пишу в общем виде
Только наверное следует проверяет а нету ли для данного объекта уже добавленного файла
ПутьКФайлу = "F:\Dogovora\IP\" + НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года"
Word.SaveAs(ПутьКФайлу,0);
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу);
// далее создаете элемент справочника Файлы
Файл = Справочники.Файлы.СоздатьЭлеменент();
Файл.Владелец = Контрагент;
Файл.Хранилище = Новый ХранилищеЗначения(ДвоичныеДанные);
Файл.Записть();
Структура может отличаться, пишу в общем виде
Только наверное следует проверяет а нету ли для данного объекта уже добавленного файла
(2) в строке Файл.Владелец = Контрагент, поменял на = ПолноеНаименование;
и выскакивает ошибка:((
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(2612)}: Ошибка при вызове конструктора (ДвоичныеДанные)
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу);
по причине:
Файл не обнаружен 'F:\Dogovora\IP\1-000001087-2019 на Иванов Иван от года'
хоть в папке создало документ ворд и он там лежит с таким же названием
и выскакивает ошибка:((
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(2612)}: Ошибка при вызове конструктора (ДвоичныеДанные)
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу);
по причине:
Файл не обнаружен 'F:\Dogovora\IP\1-000001087-2019 на Иванов Иван от года'
хоть в папке создало документ ворд и он там лежит с таким же названием
(4)да,я добавил. doc,и изменил
Файл = Справочники.Файлы.СоздатьЭлеменент(); на
Файл = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
так теперь ругается на
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(2615)}: Ошибка при установке значения атрибута контекста (Владелец)
Файл.Владелец = Наименование;
по причине:
Справочник не имеет владельца
Файл = Справочники.Файлы.СоздатьЭлеменент(); на
Файл = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
так теперь ругается на
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(2615)}: Ошибка при установке значения атрибута контекста (Владелец)
Файл.Владелец = Наименование;
по причине:
Справочник не имеет владельца
(10)как быть?
сейчас пришли к такому коду:
сейчас пришли к такому коду:
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу);
// далее создаете элемент справочника Файлы
Файл = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
Файл.Владелец= Наименование;
Файл.Хранилище = Новый ХранилищеЗначения(ДвоичныеДанные);
Файл.Записть();
(10) вот так сработало, но файл так и не появлется в справочнике почему-то( из-за чего так может быть?
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу);
// далее создаете элемент справочника Файлы
Файл = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
Файл.ИмяФайла= Наименование;
Файл.Хранилище = Новый ХранилищеЗначения(ДвоичныеДанные);
Файл.Записать();
(16)
Файл = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
Файл.ИмяФайла= Наименование;
Файл.Хранилище = Новый ХранилищеЗначения(ДвоичныеДанные);
Файл.Объект = Контрагент; // ссылка на контрагента
Файл.ВидДанных = ; // тут тоже нужно значение указать
Файл.Записать();
(24) Тогда код вот такой должен
Файл = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
Файл.ИмяФайла= Наименование;
Файл.Хранилище = Новый ХранилищеЗначения(ДвоичныеДанные);
Файл.Объект = Контрагент; // ссылка на контрагента
Файл.ВидДанных = ; // тут тоже нужно значение указать
Файл.Записать();
(25)сейчас вот так сделал,так может не правильно?
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу);
// далее создаете элемент справочника Файлы
Файл = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
Файл.Объект = Наименование;
Файл.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Файл;
Файл.Наименование = Наименование;
Файл.ИмяФайла = ПутьКФайлу;
//Новый ХранилищеЗначения(ДвоичныеДанные);
Файл.Записать();
ПоказатьПрикрепленные файлы:
(28)
ДокументСсылка.ВходящийЗапросКаталога, ДокументСсылка.ЗаказПокупателя, СправочникСсылка.Организации, ДокументСсылка.ВходящееИзвещение, ДокументСсылка.ИсходящийКаталогТоваров, ДокументСсылка.ИсходящееИзвещение, ДокументСсылка.ИсходящийРеджектАкцептСчетаФактуры, ДокументСсылка.ВходящийАкцептСчетаФактуры, ДокументСсылка.ИсходящийРеджектАкцептЗаказа, ДокументСсылка.ЗаказПоставщику, СправочникСсылка.ДоговорыКонтрагентов, ДокументСсылка.ВходящийАкцептНакладной, СправочникСсылка.Номенклатура, ДокументСсылка.ВходящийЗапросПрайсЛиста, СправочникСсылка.Контрагенты, ДокументСсылка.ИсходящийРеджектАкцептНакладной, ДокументСсылка.ВходящийСчетФактура, СправочникСсылка.СерииНоменклатуры, ДокументСсылка.ВходящийКаталогТоваров, ДокументСсылка.ПланируемоеПоступлениеДенежныхСредств, ДокументСсылка.ВходящийРеджектЗаказа, СправочникСсылка.Склады, СправочникСсылка.ФизическиеЛица, ДокументСсылка.Событие, ДокументСсылка.СчетФактураВыданный, ДокументСсылка.ЗаявкаНаРасходованиеСредств, ДокументСсылка.ИсходящийПрайсЛист, ДокументСсылка.ИсходящийЗаказ, ДокументСсылка.ИсходящийЗапросКаталога, ДокументСсылка.ВходящийАкцептЗаказа, ДокументСсылка.ПоступлениеТоваровУслуг, ДокументСсылка.ВходящийТоварКРаботе, ДокументСсылка.ИсходящийТоварКРаботе, ДокументСсылка.ВходящийРеджектСчетаФактуры, СправочникСсылка.Проекты, ДокументСсылка.СчетФактураПолученный, ДокументСсылка.ИсходящийСчетФактура, ДокументСсылка.РеализацияТоваровУслуг, ДокументСсылка.АвансовыйОтчет, ДокументСсылка.ВходящийРеджектНакладной, ДокументСсылка.ВходящийПрайсЛист, ДокументСсылка.ИсходящийЗапросПрайсЛиста, ДокументСсылка.ВходящийЗаказ, ДокументСсылка.ЭлектронноеПисьмо
ДокументСсылка.ВходящийЗапросКаталога, ДокументСсылка.ЗаказПокупателя, СправочникСсылка.Организации, ДокументСсылка.ВходящееИзвещение, ДокументСсылка.ИсходящийКаталогТоваров, ДокументСсылка.ИсходящееИзвещение, ДокументСсылка.ИсходящийРеджектАкцептСчетаФактуры, ДокументСсылка.ВходящийАкцептСчетаФактуры, ДокументСсылка.ИсходящийРеджектАкцептЗаказа, ДокументСсылка.ЗаказПоставщику, СправочникСсылка.ДоговорыКонтрагентов, ДокументСсылка.ВходящийАкцептНакладной, СправочникСсылка.Номенклатура, ДокументСсылка.ВходящийЗапросПрайсЛиста, СправочникСсылка.Контрагенты, ДокументСсылка.ИсходящийРеджектАкцептНакладной, ДокументСсылка.ВходящийСчетФактура, СправочникСсылка.СерииНоменклатуры, ДокументСсылка.ВходящийКаталогТоваров, ДокументСсылка.ПланируемоеПоступлениеДенежныхСредств, ДокументСсылка.ВходящийРеджектЗаказа, СправочникСсылка.Склады, СправочникСсылка.ФизическиеЛица, ДокументСсылка.Событие, ДокументСсылка.СчетФактураВыданный, ДокументСсылка.ЗаявкаНаРасходованиеСредств, ДокументСсылка.ИсходящийПрайсЛист, ДокументСсылка.ИсходящийЗаказ, ДокументСсылка.ИсходящийЗапросКаталога, ДокументСсылка.ВходящийАкцептЗаказа, ДокументСсылка.ПоступлениеТоваровУслуг, ДокументСсылка.ВходящийТоварКРаботе, ДокументСсылка.ИсходящийТоварКРаботе, ДокументСсылка.ВходящийРеджектСчетаФактуры, СправочникСсылка.Проекты, ДокументСсылка.СчетФактураПолученный, ДокументСсылка.ИсходящийСчетФактура, ДокументСсылка.РеализацияТоваровУслуг, ДокументСсылка.АвансовыйОтчет, ДокументСсылка.ВходящийРеджектНакладной, ДокументСсылка.ВходящийПрайсЛист, ДокументСсылка.ИсходящийЗапросПрайсЛиста, ДокументСсылка.ВходящийЗаказ, ДокументСсылка.ЭлектронноеПисьмо
(34)
год = Год(ТекущаяДата());
НомерДоговора= Код;
ОбработаннаяСтрокаСтр = СокрЛП(НомерДоговора);
Результат = ОбработаннаяСтрокаСтр;
Для н=1 по СтрДлина(ОбработаннаяСтрокаСтр) Цикл
ТекСимвол = Сред(ОбработаннаяСтрокаСтр,н,1);
Если Найти("0123456789",ТекСимвол) = 0 Тогда
Результат = СтрЗаменить(Результат,ТекСимвол,"");
КонецЕсли;
КонецЦикла;
ГодНов = Формат(Год, "ЧГ=");
приве = 1;
НомеДог =Строка(""+приве + "-" + Результат+ "-" +ГодНов);
СсылкаМакет = ПолучитьОбщийМакет("ДоговорИППредоплата");
Word = СсылкаМакет.Получить();
//открываем и активируем документ
СсылкаМакет = Word.Application.Documents(1);
СсылкаМакет.Activate();
// в метод Bookmarks передаем название "закладки"
Word.Bookmarks("НомерДоговора").Select();
Word.Application.Selection.TypeText(НомеДог);
Word.Bookmarks("ДатаДоговора").Select();
Word.Application.Selection.TypeText(ДатаДоговора);
Word.Bookmarks("ПолноеНаименование").Select();
Word.Application.Selection.TypeText(НаименованиеПолное);
Word.Bookmarks("ПолноеНаименование2").Select();
Word.Application.Selection.TypeText(НаименованиеПолное);
Word.Bookmarks("ОснованиеИП").Select();
Word.Application.Selection.TypeText(ОснованиеИП);
Word.Bookmarks("Выданного").Select();
Word.Application.Selection.TypeText(Выданного);
Word.Bookmarks("УсловиеОплаты").Select();
Word.Application.Selection.TypeText(УсловиеДоговора);
Word.Bookmarks("Год").Select();
Word.Application.Selection.TypeText(год);
Word.Bookmarks("Адрес").Select();
Word.Application.Selection.TypeText(АдресЛица);
Word.Bookmarks("УНП").Select();
Word.Application.Selection.TypeText(ИНН);
Word.Bookmarks("ОКПО").Select();
Word.Application.Selection.TypeText(КодПоОКПО);
Word.Bookmarks("Телефон").Select();
Word.Application.Selection.TypeText(ТелЛица);
Word.Bookmarks("ЭлАдрес").Select();
Word.Application.Selection.TypeText(ЭлАдрес);
Word.Bookmarks("РасСчет").Select();
Word.Application.Selection.TypeText(РасСчёт);
Word.Bookmarks("ВБанке").Select();
Word.Application.Selection.TypeText(ВБанке);
Word.Bookmarks("АдресБанка").Select();
Word.Application.Selection.TypeText(АдресБанка);
Word.Bookmarks("Бик").Select();
Word.Application.Selection.TypeText(БИК);
Word.Bookmarks("ПодписьНаименование").Select();
Word.Application.Selection.TypeText(ЛицоКонтрагента);
//устанавливаем новое значение текста
//включаем видимость приложения
//СсылкаМакет.Application.Visible = Истина;
датдог = Формат(ДатаДоговора,"ДФ=""дд-ММ-гггг""");
ПутьКФайлу = "F:\Dogovora\IP\" + НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc";
Word.SaveAs(ПутьКФайлу,0);
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу);
// далее создаете элемент справочника Файлы
Файл = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
Файл.ЭтотОбъект = Справочники.Контрагенты.НайтиПоНаименованию(Наименование);
Файл.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Файл;
Файл.Наименование = Наименование;
Файл.ИмяФайла = ПутьКФайлу;
Файл.Записать();
Показать
(35) Вам нужно присвоить реквизиту Объект - ссылку на контрагент
Напишите так
Напишите так
Файл = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
Файл.Объект = Ссылка; // вот тут укажите ссылку. Если это из модуля объекта то укажите Ссылка
Файл.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Файл;
Файл.Наименование = Наименование;
Файл.ИмяФайла = ПутьКФайлу;
Файл.Записать();
(43) нет зачем, вот так поробуйте
ПутьКФайлу = "F:\Dogovora\IP\" + НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc";
Word.SaveAs(ПутьКФайлу,0);
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу);
// далее создаете элемент справочника Файлы
Файл = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
Файл.ЭтотОбъект = Справочники.Контрагенты.НайтиПоНаименованию(Наименование);
Файл.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Файл;
Файл.Наименование = Наименование;
Файл.ИмяФайла = ПутьКФайлу;
Файл.Записать();
// удаляем файл
УдалитьФайлы(ПутьКФайлу);
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот