Имя: Пароль:
1C
1С v8
Печатная форма
0 VAUCHER
 
01.03.17
08:07
Товарищи, простите новичка за возможно глупый вопрос. Возникла необходимость работать в 1с, а я мягко говоря не бум бум.
Необходимость создать печатную форму Приказ о приеме на работу на макете ворда. Начало положено. Стандартные реквизиты переносятся в макет без проблем. В вот с табличной частью какая то загвоздка. Не могу понять в чем дело. При формированиии формы пишет, что "Поле объекта Сотрудник не найдено"
Вот такое вот я наваял:

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

    Макет = ПолучитьМакет("ПриемНаРаботу");
    MSWord = Макет.Получить();
    НомерДок = СсылкаНаОбъект.Номер;
    ДатаДок = Формат(СсылкаНаОбъект.Дата,"ДФ=dd.MM.yyyy");
    Сотрудник = Выборка.Сотрудник;
        
    Попытка
        Документ = MSWord.Application.Documents(1);
        Документ.Activate();
        Замена = Документ.Content.Find;
        Замена.Execute("[НомерДок]",Ложь,Истина,Ложь,,,Истина,,Ложь,НомерДок);
        Замена = Документ.Content.Find;
        Замена.Execute("[Дата]",Ложь,Истина,Ложь,,,Истина,,Ложь,ДатаДок);
        Замена = Документ.Content.Find;
        Замена.Execute("[Сотрудник]",Ложь,Истина,Ложь,,,Истина,,Ложь,Сотрудник);
    Исключение
        Сообщить(ОписаниеОшибки());
        MSWord.Application.Quit();
    КонецПопытки;    
    

КонецФункции // Печать()
1 bodri
 
01.03.17
08:12
Вот это зачем?
      Пока Выборка.Следующий() Цикл
            Результат.Вставить("Сотрудник",      Выборка.Сотрудник);
            Результат.Вставить("ФизЛицо",        Выборка.ФизЛицо);
            Результат.Вставить("ДатаПриема",     Выборка.ДатаПриема);
       КонецЦикла;


Это не надо делать после окончания выборки:
Сотрудник = Выборка.Сотрудник;
2 bodri
 
01.03.17
08:15
Думается, что должно быть примерно так:
      Результат = Запрос.Выполнить();
      Выборка = Результат.Выбрать();
     Сотрудник = Новый СписокЗначений;
      Пока Выборка.Следующий() Цикл
            Сотрудник.Добавить(Выборка.Сотрудник);
       КонецЦикла;

хотя тоже спорно.
3 VAUCHER
 
01.03.17
08:18
Нет, всё тоже самое. Может где неправильную ссылку на документ указал. Ничего понять не могу(
4 nordbox
 
01.03.17
08:23
я дико извиняюсь, а вот в текущем документе вообще то зачем запрос делать??
5 VAUCHER
 
01.03.17
08:23
Потом надо будет забрать ещё несколько параметров. Как ДатаДоговора, ДатаПриема и т.д. С одним надо разобраться
6 nordbox
 
01.03.17
08:24
может быть я обшибаюсь но сотрудник это вроде бы морда физического лица
7 VAUCHER
 
01.03.17
08:26
(4) Я тоже извиняюсь)) Просто не знаю как вообще что можно реализовать. Дату Документа и номер я забрал без проблем, без запроса, а вот Сотрудника уже не получается. Впервые в жизни 1с открыл можно сказать
8 nordbox
 
01.03.17
08:26
Конфа то какая?
9 VAUCHER
 
01.03.17
08:26
(8) ЗУП 2,0
10 nordbox
 
01.03.17
08:32
вот тут бесплатная лежит внешняя
http://buh-it.ru/vneshnyaya-forma-priem-na-rabotu-t1-i-kadrovoe-peremeshhenie-t5-s-nadbavkami-dlya-zup-2-5/

или тебе надо как правильно код написать?
11 VAUCHER
 
01.03.17
08:34
(10) Конечно лучше в коде разобраться. И мне именно на шаблоне Worda надо.
12 nordbox
 
01.03.17
08:36
Тебе в данном случае пофиг ворд это будет или таб документ, хоть в окно сообщений выводи, у тебя задача получить реквизиты из документа
ща посмотрю, есть ли у меня ЗУП 2.5 что бы тебе что говорить
13 nordbox
 
01.03.17
08:44
У меня такой конфы нет, но не все так плохо, что бы самому не городить:
Открой Общие модули и найди там модуль КадровыйУчет
открой и посмотри что там
14 VAUCHER
 
01.03.17
08:49
(13) Именно КадровыйУчет модуля нет. Есть кадровоеПеремещениеОрганизации
15 nordbox
 
01.03.17
08:50
Ну значит как то по другому называется, еще смотри что там есть
вот тут тоже лежит бесплатная
https://yadi.sk/d/xusXH5TY3DYzzW
открывай и смотри как там делается
16 nordbox
 
01.03.17
08:56
(14) Вот по первой ссылке скачай, открой форму Т-1 там модуль объекта и посмотри, там доступно и просто вроде бы написано.
конфы нет, судить не могу.
17 nordbox
 
01.03.17
08:56
+16 что бы переделать в вород там ума много не надо )
18 darius357
 
01.03.17
09:04
ну как всегда побакланили, и нифига толку
19 Масянька
 
01.03.17
09:06
А если "Сотрудник = Выборка.Сотрудник;" поменять на "Сотрудник = Результат.Сотрудник;"?
20 FIXXXL
 
01.03.17
09:24
(19) не надо велосапедить
наверняка в есть же у документа рабочие печ.формы, вот там и смотри код, как инфа для печати собирается