|   |   | 
| 
 | v7: Тип договора из состояния сотрудника | ☑ | ||
|---|---|---|---|---|
| 0
    
        1С-ница 26.07.13✎ 14:58 | 
        ЗИК 7.70.338
 Для подготовки данных в ПФР нужно получить актуальное на отчетный период состояние физ лица (для корректного проставления Типа договора (Трудовой или Гражданско-правовой) Функция ВернутьТипДоговора(Сотрудник, ОтчетныйПериод) Перем ОписаниеСостояния; Если (ПустоеЗначение(Сотрудник)=1)или(Сотрудник.ЭтоГруппа()=1) Тогда Возврат "" КонецЕсли; ДатаАктуальности = ОтчетныйПериод; Периодический.ИспользоватьОбъект("СостояниеФизлица",Сотрудник); СостояниеФЗ = Периодический.ЗначениеНаДату(ДатаАктуальности); Если ПустоеЗначение(СостояниеФЗ)=0 Тогда //Не пустое значение Если Периодический.НайтиЗначение(ДатаАктуальности,90)=1 Тогда ДатаПриема = Периодический.ДатаЗнач; КонецЕсли; Если ПустоеЗначение(ДатаПриема) = 0 Тогда Возврат Перечисление.ТипДоговораСЗВ63.Трудовой; Иначе Возврат Перечисление.ТипДоговораСЗВ63.ГражданскоПравовой; КонецЕсли; Иначе Возврат Перечисление.ТипДоговораСЗВ63.ГражданскоПравовой; КонецЕсли; КонецФункции // СостояниеСотрудника Функция возвращает что то не то | |||
| 1
    
        1С-ница 26.07.13✎ 15:09 | 
        Очень нужно, подскажите!!!     | |||
| 2
    
        dk 26.07.13✎ 15:12 | 
        пятнично
 >Функция возвращает что то не то | |||
| 3
    
        1С-ница 26.07.13✎ 15:14 | 
        да, очень пятнично, но тем не менне     | |||
| 4
    
        Бертыш 26.07.13✎ 15:14 | 
        Э как вы барышня извращаетесь     | |||
| 5
    
        1С-ница 26.07.13✎ 15:14 | 
        Напишите ваш вариант, буду признательна))     | |||
| 6
    
        Бертыш 26.07.13✎ 15:15 | 
        Вы объект Периодический почему -то не создаете     | |||
| 7
    
        1С-ница 26.07.13✎ 15:15 | 
        (6) Создаю, но не в этой функции     | |||
| 8
    
        dk 26.07.13✎ 15:16 | 
        про отладчик уже было?     | |||
| 9
    
        Бертыш 26.07.13✎ 15:16 | 
        Объясните для начала что вы хотите получить.     | |||
| 10
    
        Бертыш 26.07.13✎ 15:17 | 
        Почему Вы не используете Сотрудник.СостояниеФизлица.Получить(ДатаОтчета)     | |||
| 11
    
        Бертыш 26.07.13✎ 15:18 | 
        Сотрудник.СостояниеФизлица.Получить(ОтчетныйПериод)
 Вернет Вам актуальное состояние физлица | |||
| 12
    
        1С-ница 26.07.13✎ 15:18 | 
        Сначала я пробовала так:
 Функция ВернутьТипДоговора(Сотрудник, ОтчетныйПериод) СостояниеСотрудника = Сотрудник.СостояниеФизЛица.Получить(ОтчетныйПериод); Если СостояниеСотрудника = Перечисление.СостояниеФизЛица.СотрудникОсновной ИЛИ СостояниеСотрудника = Перечисление.СостояниеФизЛица.СотрудникОсновной Тогда Возврат Перечисление.ТипДоговораСЗВ63.Трудовой; Иначе Возврат Перечисление.ТипДоговораСЗВ63.ГражданскоПравовой; КонецЕсли; КонецФункции | |||
| 13
    
        1С-ница 26.07.13✎ 15:19 | 
        Но я не знаю какое состояние у физ лица должно быть, чтобы отнести его к гражданско-правовому договору     | |||
| 14
    
        1С-ница 26.07.13✎ 15:19 | 
        Может быть пустое значение?     | |||
| 15
    
        Бертыш 26.07.13✎ 15:23 | 
        (14) А что ты планируешь в случае пустого значения делать?     | |||
| 16
    
        1С-ница 26.07.13✎ 15:23 | 
        Думаю более правильное будет смотреть на конец отчетного периода?     | |||
| 17
    
        1С-ница 26.07.13✎ 15:23 | 
        (15) В случае пустого значения буду возвращать Тип договора = гражданско-правовой     | |||
| 18
    
        Gucci76 26.07.13✎ 15:27 | 
        Периодический.ИспользоватьОбъект("СостояниеФизлица",Сотрудник);
  Периодический.ОбратныйПорядок(1); Периодический.ВыбратьЗначения(,ДатаАктуальности); Пока Периодический.ПолучитьЗначение() = 1 Цикл Если ПустоеЗначение(Периодический.Значение)=0 Тогда Возврат Периодический.Значение КонецЕсли; Возврат "" КонецЦикла; | |||
| 19
    
        Gucci76 26.07.13✎ 15:28 | 
        Может так?     | |||
| 20
    
        Бертыш 26.07.13✎ 15:30 | 
        (19) Вопрос чего она хочет. Протелепатировать трудно. Значение актуальное на дату как получить проще всего я ей указал. Но проблемы с методологией это не решит. Она сама себе пытается методологию изобрести для какой-то жутко секретной задачи.     | |||
| 21
    
        Gucci76 26.07.13✎ 15:33 | 
        Видимо надо вернуть последнее до увольнения состояние ФЛ     | |||
| 22
    
        Бертыш 26.07.13✎ 15:34 | 
        ПФР помойму и так сам придумывает состояние договора, а она чего то химичит.Чем не устраивает методология отчета "ПодготовкаСведенийДляПФР2010"?     | |||
| 23
    
        Бертыш 26.07.13✎ 15:35 | 
        Типа методология 1С в корне не верна?     | |||
| 24
    
        1С-ница 26.07.13✎ 15:50 | 
        (22) Не устраивает вот этим:
 //Если ПустоеЗначение(Док.ТипДоговора)=1 Тогда // ТипДоговора = Перечисление.ТипДоговораСЗВ63.Трудовой; //Иначе // ТипДоговора = Док.ТипДоговора; //КонецЕсли; | |||
| 25
    
        1С-ница 26.07.13✎ 15:52 | 
        Пока работает так, на всех сотрах не проверяла
 Функция ВернутьТипДоговора(Сотрудник, ОтчетныйПериод) СостояниеСотрудника = Сотрудник.СостояниеФизЛица.Получить(ДобавитьМесяц(ОтчетныйПериод,3)); Если ПустоеЗначение(СостояниеСотрудника) = 0 Тогда Возврат Перечисление.ТипДоговораСЗВ63.Трудовой; Иначе Возврат Перечисление.ТипДоговораСЗВ63.ГражданскоПравовой; КонецЕсли; КонецФункции | |||
| 26
    
        Gucci76 26.07.13✎ 15:54 | 
        (25) Если сотрудника уволили, то он из Трудового превратиться в ГПХ     | |||
| 27
    
        Gucci76 26.07.13✎ 15:57 | 
        Тогда лучше так:
  Периодический.ИспользоватьОбъект("СостояниеФизлица",Сотрудник.ОсновнойОбъект); Периодический.ОбратныйПорядок(1); Периодический.ВыбратьЗначения(,ДатаАктуальности); Пока Периодический.ПолучитьЗначение() = 1 Цикл Если Периодический.Значение = Перечисление.ХХХХ.Основной Тогда Возврат Перечисление.ТипДоговораСЗВ63.Трудовой; КонецЕсли; КонецЦикла; Возврат Перечисление.ТипДоговораСЗВ63.ГражданскоПравовой; Перечисление.ХХХХ.Основной - правильно написать перечисление | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |