Имя: Пароль:
1C
 
не получается вывести дату в ворде
,
0 fagust1982
 
02.02.17
16:39
Функция Печать() Экспорт
    
//Получение данных для замены опорных фраз в документе
РеквизитыДокумента =  ПолучитьРеквизитыДокумента();
//РеквизитыСправочника = ПолучитьРеквизитыСправочника();
// Создание COM объекта MS Word
Word = Новый COMОбъект("Word.Application" );
// Получение макета икаталога временных файлов
Макет = МакетПолучить();
// Создаем документ MS Word
Если ЗначениеЗаполнено(Макет) Тогда
    newDoc= Word.Documents.ADD(Макет);
    //Замена опорных фраз данными из реквизита документа
    Замена = newDoc.Content.Find;
        //Замена.Execute("[Организация]", , , , , , , , , СокрЛ(Строка(РеквизитыДокумента.Организация)), 2);
    Замена.Execute("[Номер]",,,,,,,,, СсылкаНаОбъект.Номер);
    Замена.Execute("[Дата]",,,,,,,,, Формат(СсылкаНаОбъект.Дата,"ДФ=гггг"), 2);
    //Замена.Execute("[O]",,,,,,,,, СокрЛП(Строка(РеквизитыДокумента.Организация)),2);
    //Замена.Execute("[Sotrudnik]",,,,,,,,, СокрЛП(Строка(РеквизитыДокумента.Сотрудник)),2);
    //Замена.Execute("[ПодразделениеОрганизации]",,,,,,,,, СокрЛП(Строка(РеквизитыДокумента.ПодразделениеОрганизации)),2);
    //Замена.Execute("[УсловиеПриемаНаРаботу]",,,,,,,,, СокрЛП(Строка(РеквизитыДокумента.УсловиеПриемаНаРаботу)),2);
    //Замена.Execute("[ДатаПриема]",,,,,,,,, СокрЛП(Строка(РеквизитыДокумента.ДатаПриема)),2);
    //Отображение документа
    Word.Visible = Истина;
    //удаление временных файлов
    УдалитьФайлы(Макет);    
КонецЕсли;    
    
КонецФункции

Функция ПолучитьРеквизитыДокумента()
    
РеквизитыДокумента = Новый Структура ("Номер","Дата");

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |    ПриемНаРаботуВОрганизацию.Номер,
               |    ПриемНаРаботуВОрганизацию.Дата
               |ИЗ
               |    Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию
               |ГДЕ
               |    ПриемНаРаботуВОрганизацию.Ссылка = &ТекущийДокумент";
Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();

//СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата);
//РеквизитыДокумента.Организация = СведенияОбОрганизации.ПолноеНаименование;

РеквизитыДокумента= Шапка.Номер;
РеквизитыДокумента.Дата = Формат(Шапка.Дата,"ДФ=dd.MM.yyyy");
//РеквизитыДокумента.Организация = Шапка.Организация;
//РеквизитыДокумента.Организация = СведенияОбОрганизации.ПолноеНаименование;
//РеквизитыДокумента.Сотрудник = Шапка.Сотрудник;
//РеквизитыДокумента.ПодразделениеОрганизации = Шапка.ПодразделениеОрганизации;
//РеквизитыДокумента.УсловиеПриемаНаРаботу = Шапка.УсловиеПриемаНаРаботу;
//РеквизитыДокумента.ДатаПриема = Формат(Шапка.ДатаПриема,"ДФ=dd.MM.yyyy");

Возврат РеквизитыДокумента;

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

Функция МакетПолучить(Отказ = Ложь)
ПутьВремКат = "";

ЗапросФайл = Новый Запрос;
ЗапросФайл.Текст = "ВЫБРАТЬ
                   |    ХранилищеДополнительнойИнформации.Ссылка,
                   |    ХранилищеДополнительнойИнформации.Хранилище
                   |ИЗ
                   |    Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
                   |ГДЕ
                   |    ХранилищеДополнительнойИнформации.Наименование = &Наименование
                   |    И ХранилищеДополнительнойИнформации.Объект = &Объект";
                  
ЗапросФайл.УстановитьПараметр("Наименование", "ПриемНаРаботу");
ЗапросФайл.УстановитьПараметр("Объект",СсылкаНаОбъект);

Выборка = ЗапросФайл.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
    Файл = Выборка.Хранилище.Получить();
КонецЕсли;

Попытка
    Если ЗначениеЗаполнено(Файл) Тогда
        ПутьВремКат = ПолучитьИмяВременногоФайла("doc");
    КонецЕсли;
    Файл.Записать(ПутьВремКат);
Исключение
    Сообщить("Макет не найден" + Символы.ПС + "Проверьте имеется ли для сотрудника" +
    СсылкаНаОбъект +
    Организация +
    "В справочнике ХранилищеДополнительнойИнформации"" файл с найменованием ""ПриемНаРаботу""");
    
КонецПопытки;

Возврат ПутьВремКат;    
КонецФункции
не могу вывести дату
1 shamannk
 
02.02.17
16:46
Что выводится и как выводишь?
2 fagust1982
 
02.02.17
16:57
в шаблоне word выводит или дату или номер документ приемНаРаботуВОрганизацию
3 Мимохожий Однако
 
02.02.17
17:01
казнить нельзя помиловать
4 drcrasher
 
02.02.17
17:12
РеквизитыДокумента= Шапка.Номер; ?????
5 fagust1982
 
03.02.17
12:31
Функция Печать() Экспорт
    
//Получение данных для замены опорных фраз в документе
РеквизитыДокумента =  ПолучитьРеквизитыДокумента();
//РеквизитыСправочника = ПолучитьРеквизитыСправочника();
// Создание COM объекта MS Word
Word = Новый COMОбъект("Word.Application" );
// Получение макета икаталога временных файлов
Макет = МакетПолучить();
// Создаем документ MS Word
Если ЗначениеЗаполнено(Макет) Тогда
    newDoc= Word.Documents.ADD(Макет);
    //Замена опорных фраз данными из реквизита документа
    Замена = newDoc.Content.Find;
        //Замена.Execute("[Организация]", , , , , , , , , СокрЛ(Строка(РеквизитыДокумента.Организация)), 2);
    //Замена.Execute("[Номер]",,,,,,,,, СсылкаНаОбъект.Номер);
    Замена.Execute("[Дата]",,,,,,,,, СокрЛП(Строка(РеквизитыДокумента.Дата)),2);
    Замена.Execute("[Номер]",,,,,,,,, СокрЛП(Строка(ЭтотОбъект.Номер)),2);
    Замена.Execute("[Организация]",,,,,,,,, СокрЛП(Строка(ЭтотОбъект.Организация)), 2);
    //Замена.Execute("[ПодразделениеОрганизации]",,,,,,,,, СокрЛП(Строка(Документы.ПриемНаРаботуВОрганизацию.НайтиПоРеквизиту(РаботникиОрганизации.ВыгрузитьКолонку("ПодразделениеОрганизации"))),2);
    //Замена.Execute("[Sotrudnik]",,,,,,,,, СокрЛП(Строка(РеквизитыДокумента.Сотрудник)),2);
    //Замена.Execute("[ПодразделениеОрганизации]",,,,,,,,, СокрЛП(Строка(РеквизитыДокумента.ПодразделениеОрганизации)),2);
    //Замена.Execute("[УсловиеПриемаНаРаботу]",,,,,,,,, СокрЛП(Строка(РеквизитыДокумента.УсловиеПриемаНаРаботу)),2);
    //Замена.Execute("[ДатаПриема]",,,,,,,,, СокрЛП(Строка(РеквизитыДокумента.ДатаПриема)),2);
    //Отображение документа
    Word.Visible = Истина;
    //удаление временных файлов
    УдалитьФайлы(Макет);    
КонецЕсли;    
    
КонецФункции

Функция ПолучитьРеквизитыДокумента()
    
РеквизитыДокумента = Новый Структура ("Дата","Номер","Организация");

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |    ПриемНаРаботуВОрганизацию.Дата,
               |    ПриемНаРаботуВОрганизацию.Номер,
               |    ПриемНаРаботуВОрганизацию.Организация
               |ИЗ
               |    Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию
               |ГДЕ
               |    ПриемНаРаботуВОрганизацию.Ссылка = &ТекущийДокумент";
Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
//Таб = Новый ТаблицаЗначений;
//СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата);
//РеквизитыДокумента.Организация = СведенияОбОрганизации.ПолноеНаименование;

РеквизитыДокумента.Дата = Формат(Шапка.Дата,"ДФ=dd.MM.yyyy");
ЭтотОбъект.Номер = ЭтотОбъект.СсылкаНаОбъект.Номер;
ЭтотОбъект.Организация = ЭтотОбъект.СсылкаНаОбъект.Организация;
//СтрокаТабличнойЧасти.РаботникиОрганизации.ТекущиеДанные.ПодразделениеОрганизации = СтрокаТабличнойЧасти.РаботникиОрганизации.ТекущиеДанные.ПодразделениеОрганизации;
//ЭтотОбъект.ТабельныйНомерСтрока = ЭтотОбъект.СсылкаНаОбъект.ТабельныйНомерСтрока;
//РеквизитыДокумента.Дата = Шапка.Дата;
//РеквизитыДокумента = Шапка.Организация;
//РеквизитыДокумента.Организация = СведенияОбОрганизации.ПолноеНаименование;
//РеквизитыДокумента.Сотрудник = Шапка.Сотрудник;
//РеквизитыДокумента.ПодразделениеОрганизации = Шапка.ПодразделениеОрганизации;
//РеквизитыДокумента.УсловиеПриемаНаРаботу = Шапка.УсловиеПриемаНаРаботу;
//РеквизитыДокумента.ДатаПриема = Формат(Шапка.ДатаПриема,"ДФ=dd.MM.yyyy");


Возврат РеквизитыДокумента;

    
КонецФункции
КАК обратиться к ревизитам Табличной части в моем случае
6 bodri
 
03.02.17
12:36
может дату в формат() запихнуть?
7 bodri
 
03.02.17
12:37
+(6) увидел, что запихано)))
8 bodri
 
03.02.17
12:40
в отладчике РеквизитыДокумента.Дата в функции печать() что нибудь показывает?
9 piter3
 
03.02.17
12:47
а печать на клиенте выполняется?
10 shamannk
 
03.02.17
12:48
(5) Обращайтесь к ним на "Вы". Уберите руки от 1С сча взрослые придут вам попадет.
11 fagust1982
 
03.02.17
12:51
в отладчике
ЭтотОбъект    ВнешняяОбработкаОбъект.ПриемНаРаботуВОрганизацию    ВнешняяОбработкаОбъект.ПриемНаРаботуВОрганизацию
Дата    01.01.0001 0:00:00    Дата
ИспользуемоеИмяФайла    "C:\Users\Roman.Saenko\Desktop\ПриемНаРаботу.epf"    Строка
Номер    "1-ок      "    Строка
Организация    ТОВ "Фармацевтична компанія "Здравица"    СправочникСсылка.Организации
РаботникиОрганизации    ВнешняяОбработкаТабличнаяЧасть.ПриемНаРаботуВОрганизацию.РаботникиОрганизации    ВнешняяОбработкаТабличнаяЧасть.ПриемНаРаботуВОрганизацию.РаботникиОрганизации
СсылкаНаОбъект    Прием на работу в организацию 1-ок от 13.01.2017 15:14:04    ДокументСсылка.ПриемНаРаботуВОрганизацию
ЭтотОбъект    ВнешняяОбработкаОбъект.ПриемНаРаботуВОрганизацию    ВнешняяОбработкаОбъект.ПриемНаРаботуВОрганизацию
12 bodri
 
03.02.17
13:19
из (11) Дата не заполнена, а Формат(01.01.0001,"ДФ=dd.MM.yyyy") = "", поэтому передача в ворд работает, а вот данные получены не верно