Имя: Пароль:
1C
1C 7.7
v7: При Проведении Документа Иногда не устанавливаются периодические реквезиты
0 APDATE
 
27.06.13
16:59
Привет: Всем!
помогите сос следующей проблемой не могу понять
при проведении документа не установился периодический реквезит справочника почему?
Если ПустоеЗначение(СостояниеФизлица.Занятость.Получить(ДатаПо)) = 1 Тогда
       УстановитьРеквизитСправочника(СостояниеФизлица,"Занятость","",ДатаПо+1);
   Иначе    
       УстановитьРеквизитСправочника(СостояниеФизлица,"Занятость",СостояниеФизлица.Занятость.Получить(ДатаПо),ДатаПо);
   КонецЕсли;    
   
   Если ВидРасчетаБЛ.ПричинаБолезни = Перечисление.ПричинаБолезни.ПоБеременности Тогда
       УстановитьРеквизитСправочника(СостояниеФизлица,"Занятость",Перечисление.ЗанятостьФизлица.Р,ДатаДок);
   Иначе
       УстановитьРеквизитСправочника(СостояниеФизлица,"Занятость",Перечисление.ЗанятостьФизлица.Б,ДатаДок);
   КонецЕсли;
1 APDATE
 
27.06.13
17:00
при повторном проведении этого документа (нечего не меняя в нем) реквезит устонавливается!!!
2 APDATE
 
27.06.13
17:13
приношу извинения неверно поставил вопрос!!
дело в том что при проведении данный реквезит не устонавливается как ПустоеЗначение на дату ДатаПо+1
а в место этого устонавливается на эту дату
Перечисление.ЗанятостьФизлица.Б,ДатаДок
но как это происходит в данном коде (где с перва долно установиться на последнюю дату + 1 день пустое значение а затем на дату начало болезни из перечисления,
не понимаю!!
3 APDATE
 
27.06.13
17:13
помогите пожалуйста
4 APDATE
 
27.06.13
17:16
м да нет никто?
5 APDATE
 
27.06.13
17:20
здесь что все вымерли?
6 APDATE
 
27.06.13
17:21
или не укого такой проблемы не возникало?
7 APDATE
 
27.06.13
17:31
не знаю на сколько это нужно и на сколько это правильно вот что я сделал! выкладываю сюда а вдруг кому поможет


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

   Если ВидРасчетаБЛ.ПричинаБолезни = Перечисление.ПричинаБолезни.ПоБеременности Тогда
       УстановитьРеквизитСправочника(СостояниеФизлица,"Занятость",Перечисление.ЗанятостьФизлица.Р,ДатаДок);
   Иначе
       УстановитьРеквизитСправочника(СостояниеФизлица,"Занятость",Перечисление.ЗанятостьФизлица.Б,ДатаДок);
   КонецЕсли;
8 APDATE
 
27.06.13
17:33
увожаемые форумчане прошу если кому не лень скажите ваше мнение такой вариант устранит данную проблему?
просто судя по коду из (0) и так все правильно написано и должно работать но по скольку я не уврен поставил это условие
може у кого всетаки есть мысли на счет этого?
9 пипец
 
27.06.13
17:35
новые документы не ?
10 APDATE
 
27.06.13
17:43
вот более улучшенный вариант
Если ПустоеЗначение(СостояниеФизлица.Занятость.Получить(ДатаПо)) = 1 Тогда
       УстановитьРеквизитСправочника(СостояниеФизлица,"Занятость","",ДатаПо+1);
   Иначе    
       УстановитьРеквизитСправочника(СостояниеФизлица,"Занятость",СостояниеФизлица.Занятость.Получить(ДатаПо),ДатаПо);
   КонецЕсли;    
   
   Занятость_Выб = СоздатьОбъект("Периодический");
   Занятость_Выб.ВыбратьПоДокументу(ТекущийДокумент());
   Если Занятость_Выб.ТекущийДокумент() <> ТекущийДокумент() Тогда
       Сообщить("Не смогли установить Занятость попробуем еще раз");
       Если ПустоеЗначение(СостояниеФизлица.Занятость.Получить(ДатаПо)) = 1 Тогда
           УстановитьРеквизитСправочника(СостояниеФизлица,"Занятость","",ДатаПо+1);
       Иначе    
           УстановитьРеквизитСправочника(СостояниеФизлица,"Занятость",СостояниеФизлица.Занятость.Получить(ДатаПо),ДатаПо);
       КонецЕсли;    
   КонецЕсли;

   Занятость_Выб = СоздатьОбъект("Периодический");
   Занятость_Выб.ВыбратьПоДокументу(ТекущийДокумент());
   Если Занятость_Выб.ТекущийДокумент() <> ТекущийДокумент() Тогда
       Предупреждение("Не смогли установить Занятость Документ не будет проведен! пожалуйста запишите данные сообщения ниже и обратитесь за помощью к администратору!");
       Сообщить(""+Сотрудник+", "+СостояниеФизлица+", "+ДатаПо+", "+ДатаДок+", "+ДатаПо+1+"");
       статусвозврата(0);
       Возврат;
   КонецЕсли;
   
   Если ВидРасчетаБЛ.ПричинаБолезни = Перечисление.ПричинаБолезни.ПоБеременности Тогда
       УстановитьРеквизитСправочника(СостояниеФизлица,"Занятость",Перечисление.ЗанятостьФизлица.Р,ДатаДок);
   Иначе
       УстановитьРеквизитСправочника(СостояниеФизлица,"Занятость",Перечисление.ЗанятостьФизлица.Б,ДатаДок);
   КонецЕсли;
11 APDATE
 
27.06.13
17:43
(9) в новь созданные!!
12 пипец
 
27.06.13
17:46
Оо это как ???  в новь созданные!! (c) , тоесь не новые а вновь !!! созданные , эээмм
13 APDATE
 
27.06.13
17:47
дело в том что позвонил клиент говорит типа проблема еще в январе был создан больничный лист!
в июне при заполнении табеля конфига говорит типа он на больничном
так вот я взял выгрузку начал смотреть историю справочника занятость и вижу там картину две записи как и должно быть но в одно на дату начала все ок а вот на дату конца больничного занятость = болеет!!
затем перепровел больничный и все встало на свои места!
14 APDATE
 
27.06.13
17:51
(12) из (9) не понял вопроса (торможу уже :) подумал что вы спрашиваете по поводу того создан ли новый документ в конфигураторе :)) да документ был создан в январе на счет того перепроводился ли он когда либо не знаю!
15 APDATE
 
27.06.13
18:04
к стати откатил конфигу до перепроведения мноя больничного
посмотрел на дата где должно быть если (условно дата окнчания = 08.01.2013 а значит дата записи периодического реквезита должна быть 09.01.2013 но при откате значение даты = 08.01.2013
16 APDATE
 
27.06.13
18:11
ну что есть варианты?
17 APDATE
 
27.06.13
18:55
ну что у кого есть какие предложения?