Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ошибка в Табеле в 1с77 Торговля
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
inna.innainna84
Функция ОпределитьДатыСотрудника(Сотр, ПоОдномуСотр, ПроверятьПодразделение, ДатаПриема, ДеньН, ДеньК)
    
    ОК = 1;
    
    Если ПустоеЗначение(Сотр) = 1 Тогда
        Сотр = Сотрудник;
    КонецЕсли;
    
    Если Сотр.Выбран() = 0 Тогда
        ОК = 0;
    ИначеЕсли Сотр.ЭтоГруппа() = 1 Тогда    
        ОК = 0;
    Иначе
        
        ДатаПриема = Сотр.ДатаПриема;
        
            Если СобытиеПроизойдетПозже(ДатаПриема, КонДата) = 1 Тогда
            // принят после месяца табеля
            ОК = 0;
        Иначе
            ДатаУв    = Сотр.ДатаУвольнения;
            
            Если СобытиеУжеЗакончилось(ДатаУв, ДатаНач) = 1 Тогда
                // уволен до месяца табеля
                ОК = 0;
            Иначе    
                
                УволенВТекМесяце = 0;
                ДатаСотрК        = КонДата;
                
                Если КонМесяца(ДатаУв) = КонДата Тогда
                    // уволен в месяце табеля
                    УволенВТекМесяце = 1;
                    ДатаСотрК = ДатаУв;
                КонецЕсли;
                
                Если (ПроверятьПодразделение = 1) Тогда
                    Если Сотр.Подразделение.Получить(ДатаСотрК) <> Подразделение Тогда
                        ОК = 0;
                    КонецЕсли;
                КонецЕсли;
                
                Если ОК = 1 Тогда
                    
                    ДеньН    = 1;
                    ДеньК    = ДатаЧисло(ДатаСотрК);
                    
                    Если ПоОдномуСотр = 0 Тогда
                        НоваяСтрока();
                        Сотрудник = Сотр.ТекущийЭлемент();    
                    КонецЕсли;
                    
                    Прочерк = Перечисление.Табель.Нет;
                    
                    Если КонМесяца(ДатаПриема) = КонДата Тогда
                        // принят в месяце табеля
                        ДеньН = ДатаЧисло(ДатаПриема);
                        УстановитьОбозначениеДня(1, ДеньН - 1, Прочерк);
                    КонецЕсли;
                    
                    Если УволенВТекМесяце = 1 Тогда
                        // уволен в месяце табеля
                        УстановитьОбозначениеДня(ДеньК + 1, ДатаЧисло(КонДата), Прочерк);
                    КонецЕсли;
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
    
    Возврат ОК
КонецФункции // ОпределитьДатыСотрудника()



Если Сотр.Подразделение.Получить(ДатаСотрК) <> Подразделение Тогда
{Документ.Табель.Форма.Модуль(941)}: Поле агрегатного объекта не обнаружено (Получить)


 i 

Выделяйте код
 
Vofka
Похоже, что Подразделение у Сотрудника это не периодический реквизит.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.