ХранилищеЗначений
☑
0
galimovmaks
17.10.13
✎
07:07
Нужна помощь, не могу разобраться. Есть реквизит с типом ХранилищеЗначений. я туда помещаю вордовский документ. Печатаю, все нормально. Загружаю такой же документ, только пару строчек других, печатается все равно предыдущий. в чем дело?
1
galimovmaks
17.10.13
✎
07:08
вот код
&НаКлиенте
Процедура Загрузить(Команда)
Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
Текст = "ru = ""Документ Word""; en = ""Text""";
Фильтр = НСтр(Текст)+"(*.doc, *.docx)|*.doc*";
ДиалогОткрытияФайла.Фильтр = Фильтр;
ДиалогОткрытияФайла.Заголовок = "Выберите файл шаблона";
Если ДиалогОткрытияФайла.Выбрать() Тогда
Файл = Новый Файл(ДиалогОткрытияФайла.ПолноеИмяФайла);
ЭтаФорма.Объект.ИмяШаблона = Файл.Имя;
МойШаблон = Новый ДвоичныеДанные(ДиалогОткрытияФайла.ПолноеИмяФайла);
ЗагрузитьСервер(МойШаблон);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗагрузитьСервер(МойШаблон)
Документ = РеквизитФормыВЗначение("Объект");
Документ.Шаблон = Новый ХранилищеЗначения(МойШаблон);
ЗначениеВРеквизитФормы(Документ, "Объект");
КонецПроцедуры
2
galimovmaks
17.10.13
✎
07:09
вот кусок печати:
Процедура ПечатьДоговора()
// ИстЛайн Галынин 25042013
//Хранилище = ТарифныйПлан.ВидТарифногоПлана.МакетДоговора;
Хранилище = Шаблон;
Если Хранилище = Неопределено Тогда
Возврат;
КонецЕсли;
//ИстЛайн Галынин 25042013
//Файл = Новый Файл(ТарифныйПлан.ВидТарифногоПлана.ИмяМакета);
Файл = Новый Файл(ИмяШаблона);
ИмяФайла = Файл.Расширение;
MSWord = ПолучитьКомОбъект(Хранилище, ИмяФайла);
Если MSWord = Неопределено Тогда
Возврат;
КонецЕсли;
/////////////////////////////////////////////////////////////////////////////////////
Функция ПолучитьКомОбъект(Хранилище, ИмяФайла)
ИмяКаталога = РаботаСФайлами.ПолучитьИмяКаталога();
СтрокаИмени = ""+?(ЗначениеЗаполнено(Организация.Префикс), Организация.Префикс+"-", "")+Ссылка+" "+Контрагент.Наименование+"_"+Формат(ТекущаяДата(), "ДФ=yyyyddMMhhmmss")+ИмяФайла; // ИмяФайла - это расширение
СтрокаИмени = РаботаСФайлами.УдалитьЗапрещенныеСимволыИмени(СтрокаИмени);
ИмяФайла = РаботаСФайлами.ПолучитьИмяФайла(ИмяКаталога, СтрокаИмени);
Попытка
ДвоичныеДанные = Хранилище.Получить();
ДвоичныеДанные.Записать(ИмяФайла);
КомОбъект = ПолучитьCOMОбъект(ИмяФайла);
Возврат КомОбъект;
Исключение
Возврат Неопределено;
КонецПопытки;
КонецФункции
3
lopus
17.10.13
✎
07:11
Чего то у меня такое ощущение что не хватает записать
4
galimovmaks
17.10.13
✎
07:13
(3) в процедуре ЗагрузитьСервер(МойШаблон) вставить Документ.Записать() ??
5
galimovmaks
17.10.13
✎
07:17
(3) и вправду. спасибо)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший