KoderLine
Обслуживание
и внедрение
Наш Facebook Наш Instagram Наш YouTube
+7 (495) 374 55 29 Обратный звонок
Сохранение печатных форм 1С в присоединенных ...

Сохранение печатных форм 1С в присоединенных файлах

0
2324
31.03.2016 Сергей Семенов
  Может возникнуть задача сохранить напечатанный документ в электронном виде и иметь возможность обращаться к нему через механизм присоединенных файлов. Сам механизм присоединенных файлов реализуется средствами БСП. Здесь опишем механизм сохранения напечатанного документа в электронном виде с помощью присоединенных файлов.     
     
  Допустим, имеется команда формирования печатной формы документа. После того как ТабДок сформирован, вызовем процедуру общего модуля СохранениеПечатныхФормКлиент (с установленными флажками клиента) 

 
  СохранениеПечатныхФормКлиент.СохранениеПечатныхФорм(ТабДок, ПараметрКоманды);  
     
  Процедура имеет следующий вид  
     
 
Процедура СохранениеПечатныхФорм(ТабДок, Ссылка) Экспорт

Если Ссылка.Количество() = 1 Тогда

    СписокКодов = Новый СписокЗначений;

    СписокКодов.Добавить("Да");

    СписокКодов.Добавить("Нет");

    Если Вопрос("Сохранять результат в присоединенных файлах?", СписокКодов) = "Да" Тогда

         ПутьКТому = СохранениеПечатныхФормСервер.ПолучитьТомХраненияФайлов();

         ПутьКВременномуФайлу = ПутьКТому + "Tabl.xls";

         ТабДок.Записать(ПутьКВременномуФайлу, "xls");

         УИ = Ссылка[0].УникальныйИдентификатор();

         Дат = Формат(ТекущаяДата(), "ДФ=ддММгг");

         ИмяПриказа = "Приказ_"+Дат;       

         МассивФайлов = СохранениеПечатныхФормСервер.ПолучитьПрикрепленныеФайлыКОбъекту(Ссылка[0]);

         Если МассивФайлов.Количество() > 0 Тогда

               Спс = Новый СписокЗначений;

               Спс.ЗагрузитьЗначения(МассивФайлов);

               Эл = Спс.ВыбратьЭлемент("Выберите файл для замены");

               Если Эл = Неопределено Тогда

                    Ответ = ВвестиСтроку(ИмяПриказа, "Введите имя файла приказа (без расширения)");

                    Если Не Ответ Тогда

                          Возврат;

                    КонецЕсли;

                    Для Каждого Элем Из МассивФайлов Цикл           

                          Если ИмяПриказа = Строка(Элем) Тогда

                                 Предупреждение("Файл с именем " + ИмяПриказа + " уже существует");

                                 Возврат;

                          КонецЕсли;

                    КонецЦикла;

               Иначе

                    Если Вопрос("Файл будет заменен. Продолжить?", СписокКодов) = "Нет" Тогда

                           Возврат;

                    КонецЕсли;

                    Результат = ПрисоединенныеФайлыКлиент.ПоместитьФайлВХранилище(ПутьКВременномуФайлу, УИ);

ПрисоединенныеФайлыСлужебныйВызовСервера.ОбновитьПрисоединенныйФайл(Эл.Значение, Результат);

                     Возврат;

               КонецЕсли;

         Иначе

               Ответ = ВвестиСтроку(ИмяПриказа, "Введите имя файла приказа (без расширения)");

               Если Не Ответ Тогда

                     Возврат;

               КонецЕсли;

         КонецЕсли;     

         Результат = ПрисоединенныеФайлыКлиент.ПоместитьФайлВХранилище(ПутьКВременномуФайлу, УИ);

ПрисоединенныйФайл = СохранениеПечатныхФормСервер.ДобавитьФайл(Ссылка[0], ИмяПриказа, Результат.ДатаМодификацииУниверсальная, Результат.АдресФайлаВоВременномХранилище, Результат.АдресВременногоХранилищаТекста);

         УдалитьИзВременногоХранилища(Результат.АдресФайлаВоВременномХранилище);

    КонецЕсли;

КонецЕсли;  

КонецПроцедуры

 
     
  Серверный модуль СохранениеПечатныхФормСервер содержит следующие функции  
     
 
Функция ПолучитьТомХраненияФайлов() Экспорт  

    Возврат Справочники.ТомаХраненияФайлов.НайтиПоНаименованию("Server").ПолныйПутьWindows;

КонецФункции

 
     
 
Функция ПолучитьПрикрепленныеФайлыКОбъекту(Знач Объект) Экспорт

     МассивФайлов = Новый Массив;

     ТипыВладельцев = Метаданные.РегистрыСведений.НаличиеПрисоединенныхФайлов. Измерения.ОбъектСФайлами.Тип.Типы(); // Удалите пробелы в строке кода!

      Если ТипыВладельцев.Найти(ТипЗнч(Объект)) <> Неопределено Тогда

           МассивФайловЛокальный = ПрисоединенныеФайлыСлужебный.ПолучитьВсеПодчиненныеФайлы(Объект);

            Для Каждого СсылкаНаФайл Из МассивФайловЛокальный Цикл

                МассивФайлов.Добавить(СсылкаНаФайл);

             КонецЦикла;

       КонецЕсли;

       Возврат МассивФайлов;

КонецФункции

 
     
 
Функция ДобавитьФайл(Ссылка, ИмяПриказа, ДатаМодификацииУниверсальная, АдресФайлаВоВременномХранилище, АдресВременногоХранилищаТекста) Экспорт

  ПрисоединенныйФайл = ПрисоединенныеФайлы.ДобавитьФайл(Ссылка, ИмяПриказа, "xls", ,ДатаМодификацииУниверсальная, АдресФайлаВоВременномХранилище, АдресВременногоХранилищаТекста,"");

   Возврат ПрисоединенныйФайл;

КонецФункции

 
  Если есть вопросы по материалу - обращайтесь!  
   

Сергей Семенов,

        разработчик 1С ООО «Кодерлайн»

 
Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Теги
#1С: CRM #1С: ERP #1С: ERP Управление строительной организацией #1С: ERP. Управление буровой компанией #1С: WMS Управление складом #1С: Аренда и управление недвижимостью #1С: БУХ #1С: Договорчики #1С: Документооборот #1С: ЗУП #1С: Интеграция #1С: КА #1С: Колледж #1С: Конвертация данных #1С: Платформа #1С: Розница #1С: Сценарное тестирование #1С: ТОИР #1С: УАТ #1С: УКФ #1С: Университет #1С: УНФ #1С: УПП #1С: Управление строительной организацией #1С: УТ #1С: УХ #ADO #APACHE #API #com-объекты #Excel #GoogleDrive #HTTP #ITIL #Koderline: Управление медиа-холдингом #Koderline: Управление проектами строительства скважин #LINUX #MS SQL Server #WEB #WEB-сервисы 1С #Word #XML #Администрирование 1С #Безопасность сервера #Бесшовная интеграция #БИТ.Финанc #Битрикс24 #Блокировки в 1С #БСП #БУ #Бурение скважин #Бюджетирование #Внедрение #Внедрение ERP #Закрытие месяца #Запросы 1С #Интеграция 1С #Как сделать в 1С #Конвертация данных #Корпоративное сопровождение #Лизинг #Лицензии 1С #Моделирование #МСФО #Налоги #Обмен между базами #Обновления #Оптимизация #Отпуск #Отчетность #Отчеты в 1С #Оценка задач #Перенос данных #Планирование #Полезные обработки #Правила обмена #Проводки 1С #Программирование в 1С #Программные права #Продажи #Производство #Расширение конфигурации #РСБУ #СКД #Сравнение конфигураций #Тестирование 1С #Техническое задание #Торговое оборудование #Транспортная логистика #Управление проектами #Финансовый учет #Ценообразование #Экзамен 1С #Яндекс.Касса Email или телефон
Услуги программиста 1С
Получите специалиста  
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.
Яндекс.Метрика