Имя: Пароль:
1C
1C 7.7
v7: Поле агрегатного объекта не обнаружено ФИОДатПад
0 Ihor
 
15.01.20
15:28
нужна помощь.такая вот ошибка, в коде эта строка есть
Document.Variables.Item("Сотрудник").Value=СокрЛП(Сотрудник.ФИОДатПад);
{Документ.Отпуск.Форма.Модуль(610)}: Поле агрегатного объекта не обнаружено (ФИОДатПад)

код:
    Document=МСWord.Documents.Open(СокрЛП(ШаблонПечати),,1);
    
    Document.Variables.Item("НомерПриказа").Value=СокрЛП(НомерДок);
    
    датаПриказа = формат(ДатаДок,"Д (0)ДДММММГГГГ");
    Document.Variables.Item("ДатаПриказа").Value=СокрЛП(датаПриказа);  
    
    Document.Variables.Item("Сотрудник").Value=СокрЛП(Сотрудник.ФИОДатПад);
    Document.Variables.Item("Должность").Value=СокрЛП(Сотрудник.ДолжностьДатПад);
    
    //КоличествоДней = ДатаКонца - ДатаНачала + 1;
    Document.Variables.Item("КоличествоДнейОтп").Value=СокрЛП(КоличествоДней)+ " ("+ Формат(КоличествоДней, "ЧП") + ")";
    
    датаНачОтп = формат(ДатаНачала,"Д (0)ДДММММГГГГ");
    Document.Variables.Item("ДатаНОтп").Value=СокрЛП(датаНачОтп);
    датаКонОтп = формат(ДатаКонца,"Д (0)ДДММММГГГГ");
    Document.Variables.Item("ДатаКОтп").Value=СокрЛП(датаКонОтп);
    
    Если ВидОтпуска.ТекущаяСтрока() = 1 Тогда
        ЗаПериод = Формат(ДатаН, "ДДДММГГГГ") + "-" + Формат(ДатаК, "ДДДММГГГГ");
        Document.Variables.Item("ПериодОтпуска").Value=СокрЛП(ЗаПериод);
    КонецЕсли;
1 Ёпрст
 
15.01.20
15:32
ФИОДатПад- поди периодический реквизит справочника ?
2 Ёпрст
 
15.01.20
15:33
Или Получить(наДату) или ИспользоватьДату втыкай в код
3 Ihor
 
15.01.20
15:54
(2) можно пример, не совсем понимаю как сделать?
4 Ёпрст
 
15.01.20
15:55
(3)
Document.Variables.Item("Сотрудник").Value=СокрЛП(Сотрудник.ФИОДатПад.Получить(ДатаК));
5 Ihor
 
15.01.20
16:01
(4)
к сожалению та же ошибка
6 НЕА123
 
15.01.20
16:11
(0)
Отладчик?
может никакого ФИОДатПад у Сотрудник и нет.
7 8 bit
 
15.01.20
16:26
(1) с чего бы ФИО в дательном падеже изменялось со временем?

Циммерману, Иванову, Гаррисону, Мангулапулле - ка было, так и останется.

(6) скорее всего.

Чувак из (0) тиснул где-то обработку и не может ее адаптировать под свою базу, а знаний не хватает. Вот такая вот эпоха операторов ЭВМ.
8 73с
 
15.01.20
16:36
(6) Да и без отладчика - просто посмотреть есть такой реквизит ?
9 Злопчинский
 
15.01.20
17:26
Возможно "Сотрудник" не выбран..?
10 Ihor
 
15.01.20
17:44
(9) сотрудник выбран
11 Злопчинский
 
16.01.20
00:08
(10) ну, если не разгреб - стучись в скайп Zlopun
посмотрим, где там кривые немытые ручки лазали...
12 Ihor
 
16.01.20
11:16
Господа спасибо за помощь, небыло реквизита поэтому било такую ошибку. но сейчас при печати шаблона бьет другую ошибку:                         Ошибка! Переменная документа не указана., Ошибка! Переменная документа не указана., часть трудового отпуска в количестве 12 (Двенадцать) календарных дней с 20 Января 2020 г. по 31 Января 2020 г. за период работы 01.01.2019-31.12.2019.
в чем сейчас может быть вопрос?
13 vladko
 
16.01.20
11:25
(12) проверяй, все ли переменные в вордовском шаблоне заполняются кодом из 1С. Похоже, какой-то не заполняется.
14 vladko
 
16.01.20
11:28
(12) особенно в указанной строке
15 MWWRuza
 
гуру
16.01.20
12:09
К первому вопросу дополнение:
По хорошему, вместо реквизита справочника "Сотрудники" - "ФИОДатПад", нужно написать функцию "ФИОДатПад(Сотрудник)", которая будет возвращать строку ФИО сотрудника в дательном падеже. Иначе, придется у каждого сотрудника, в этот добавленный реквизит, вписывать это вручную, а если сотров много - то это еще та задача... Конечно, если их пару десятков - то можно и вручную сделать.
Ну, или применить универсальную функцию "Склонение"(или "Падеж", не помню, как точно она называется), можно поискать, здесь, или на ИнфоСтарте выкладывали, там два параметра - само ФИО и нужный падеж, на выходе строка в нужном падеже.
16 MWWRuza
 
гуру
16.01.20
12:15
+(15)Вот тема была, первая попавшаяся ссылка: Склонение по падежам в 1С 7.7 - нужен работающий пример
17 MWWRuza
 
гуру
16.01.20
12:20
(15)там два параметра - само ФИО и нужный падеж,

На самом деле три - про "пол" я забыл... Дать ИвановНЕ или ИвановИЧУ, несколько разное...
18 НЕА123
 
16.01.20
12:58
(17)
тогда уж 3 параметра получается (пол либо дата)
19 MWWRuza
 
гуру
16.01.20
13:07
(18)пол либо дата

Ну, если предположить, что пол - реквизит периодический :-) , то да, и тогда не три, а четыре... Но, вроде мы не в Тае живем, у нас это редчайший случай...

Ну, а если серьезно, то при чем здесь дата вообще?
20 MWWRuza
 
гуру
16.01.20
13:10
+(19)и тогда не три, а четыре...
Хотя, пол тогда лучше в "готовом виде" в функцию передавать, уже полученным на дату. Тогда все равно три параметра останутся.
21 catena
 
16.01.20
13:15
(19)Дата при ФИО. Изменение ФИО не такой уж и редкий случай.
22 73с
 
16.01.20
13:21
(15) Вот как раз по-хорошему, этого делать не надо.
Эту функцию лучше привязать к вводу нового сотрудника и заполнять там  реквизит ФИОДатПад с возможностью ручной правки.
Сколько этих функций ни видел - ни одна не обеспечивает 100% правильное склонение. И это нормально !
А так - один раз просклонял, при необходимости поправил и бери "утверждённый" вариант.
23 Ihor
 
16.01.20
15:43
Всем спасибо. не актуально уже