Имя: Пароль:
1C
1C 7.7
v7: Как получить дату переодического реквизита
0 APDATE
 
25.03.13
07:24
Привет всем
задача в следующем в расчетных листках в шапке печ формы нужно указать если у данного сотрудника что то менялось в спр должности или поменялась сама должность тоесть показать допустим в 01.01.2010г у Петрава П П
На дату 01.01.2010 была должность Механник но 15.03.2013г в спр должности что то менялось допустим что должность осталась но дата уже не  
01.01.2010 а 15.03.2013г Должность Мезанник
значит в шапке должно быть следующее
Должность: С 01.01.2010г Механник По 15.01.2013г, С 15.03.2013 Механник
вот код что я начал делать но появилась проблема я поставил условие типа Если Долж <> ДолжСлед Тогда Долж это должность на дату дапутим 01.01.2010г ДОлжСлед это Должность на дату  15.03.2013г но так сравнивать нельзя почему а если даты разные а значение реквизита одинаковые?? мне нужно получить даты данного реквизита и сравнивать по ним но как???
ТзСотрудников.ВыбратьСтроки();
Пока ТзСотрудников.ПолучитьСтроку() = 1 Цикл
   Сотрудник = ТзСотрудников.Сотрудники;

       Запрос.вНачалоВыборки();
       Если Запрос.Получить(Сотрудник,,,,,)=0 Тогда
           Продолжить
       КонецЕсли;
       
       местоРаб.ИспользоватьВладельца(Сотрудник);
       ИсторияКарьеры = СоздатьОбъект("Периодический");
       местоРаб.ВыбратьЭлементы();
       Пока местоРаб.ПолучитьЭлемент() = 1 Цикл
           Обновить = 0;
           Долж_    = "";
           Для Долж_ = НачМесяца(ДатаАктуальности) По КонМесяца(ДатаАктуальности) Цикл
               
               Если Обновить = 0 Тогда
                   
                   Долж = местоРаб.ТекущийЭлемент().Должность.Получить(Долж_);
                   Обновить = 1;
               КонецЕсли;
               
               ДолжСлед = местоРаб.ТекущийЭлемент().Должность.Получить(Долж_);
               
               Если Долж <> ДолжСлед Тогда
                   
                   ТзДолжностей.НоваяСтрока();
                   ТзДолжностей.ДатаС = Долж_;
                   Долж_1 = "";
                   Для Долж_1 = Долж_ По КонМесяца(ДатаАктуальности) Цикл
                       
                       ДолжСлед_1 = местоРаб.ТекущийЭлемент().Должность.Получить(Долж_1);
                       
                       Если ДолжСлед <> ДолжСлед_1 Тогда
                           
                           ТзДолжностей.ДатаПо = Долж_1;
                           
                       КонецЕсли;
                   КонецЦикла;
                   
                   ТзДолжностей.Значение = ДолжСлед;
                   
               КонецЕсли;
           КонецЦикла;
1 APDATE
 
25.03.13
07:27
Если Долж <> ДолжСлед Тогда вот здесь мне нужно сравнивать даты
простите если я в чемто не прав поправьте и поставьте на путь истинный может кто что лучше этого подскажет как реализовать
2 cw014
 
25.03.13
07:29
Используй свой "ИсторияКарьеры" перебирай записи
3 APDATE
 
25.03.13
07:35
(2) спасибо за ответ
можешь по подробнее?
4 cw014
 
25.03.13
07:36
СП семерочного нет под рукой.

Делаешь что то типа "ИспользоватьРеквизит", потом "ПолучитьПериод" (или как то так) и в цикле. У тебя будет ДатаЗнач - дата значения, и Знач (или Значение) - сама должноть
5 cw014
 
25.03.13
07:36
И замени первую букву в своем нике на правильную, а то немного вымораживает такое читать
6 APDATE
 
25.03.13
07:37
это в переодическом обьекте?
7 Андрюха
 
25.03.13
07:37
(0) Повальная безграмотность. Правильное начертание иероглифа: МЕХАНИК.
8 APDATE
 
25.03.13
07:41
Ок спасибо!!!
9 cw014
 
25.03.13
07:52
(8) Спасибо в кармане не шелестит
10 andrewalexk
 
25.03.13
07:58
(7) :)) ну ты еще скажи "периодический"
11 Privalov
 
25.03.13
08:00
(0) Грамотность 0!!!