Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подразделение в расчетной ведомости организации
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
aik2001
Есть несколько сотрудников которые работали в одном подразделении, а потом в другом, переведены кадровым перемещением, не совместители.
Если в ведомости делать отбор по актуальному подразделению сотрудник попадает в него если, по старому подразделению то в старое.
Если без отбора то показывает в актуальном. В чем может быть причина.


Управление торговым предприятием для Украины", редакция 1.2. (1.2.51.1)
fly
aik2001 @ Сегодня, 13:47 необходимо зарегистрироваться для просмотра ссылки ,

Цитата(aik2001 @ 10.09.19, 13:47) необходимо зарегистрироваться для просмотра ссылки
В чем может быть причина.


в ведомость попадают сотрудники работавшие в этом подразделении за указанный период.

доступными словами "почему не подает и в старое и новое?":
"примерно такое условие, если сотрудник уже в числиться сейчас в другом подразделении, то попадает - где числиться, иначе попадает в текущее подразделение"
aik2001
Цитата(fly @ 10.09.19, 15:14) необходимо зарегистрироваться для просмотра ссылки
доступными словами "почему не подает и в старое и новое?":


Проблема в том что он как раз попадает. Хотя уже не работает в этом подразделении, переведен 01.04 в другое.
А в ведомости за август попадает и в старое и в новое, если делать по ним отбор. Без отбора подразделение указывается актуальное.

fly
aik2001 @ Сегодня, 13:47 необходимо зарегистрироваться для просмотра ссылки ,
Цитата(aik2001 @ 10.09.19, 13:47) необходимо зарегистрироваться для просмотра ссылки
Если в ведомости делать отбор


там есть несколько ведомостей, какую имели ввиду конкретно?
fly
aik2001 @ Сегодня, 15:30 необходимо зарегистрироваться для просмотра ссылки ,
Цитата(aik2001 @ 10.09.19, 15:30) необходимо зарегистрироваться для просмотра ссылки
Проблема в том что он как раз попадает. Хотя уже не работает в этом подразделении, переведен 01.04 в другое.
А в ведомости за август попадает и в старое и в новое, если делать по ним отбор. Без отбора подразделение указывается актуальное.



Когда ставите отбор - Подразделение, то он на уровне Последних значений ищет Сотрудника и Подразделение
Если не ставите отбор - Подразделдение, ищет только последнее значение только - Сотрудник

ВЫБРАТЬ
    |                Работники.ПодразделениеОрганизации                        КАК Подразделение,
    |                Работники.Сотрудник                                        КАК Сотрудник,
    |                Работники.Организация                                    КАК Организация
    |            ИЗ
    |                РегистрСведений.РаботникиОрганизаций.СрезПоследних(КОНЕЦПЕРИОДА(&Период, МЕСЯЦ),
    |                    Сотрудник.ВидЗанятости В (&ПарамОсновнойСотрудник)
    |                    {ПодразделениеОрганизации КАК Подразделение, Организация}
    |                    )                    КАК Работники



что приводит к двум строкам при установке Отборов по Подразделению.
Так отбор происходит не в целом по сотруднику - где он только в новом подразделении
Добавляете "Отобор" (Сотрудник + Подразделение) - то существую две записи "Последних значений" в старом подразделении и в новом.

Т.е. находит
1я строка - Сотрудник - Подразделение Старое
2я строка - Сотрудник - Подразделение Новое
aik2001
fly @ Сегодня, 16:47 необходимо зарегистрироваться для просмотра ссылки ,

Не понимаю.
этот запрос отбирает нормально
ВЫБРАТЬ
    Работники.Организация,
    Работники.Сотрудник,
    Работники.ПодразделениеОрганизации
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних(КОНЕЦПЕРИОДА(&Период, МЕСЯЦ), ) КАК Работники
ГДЕ
    Работники.ПодразделениеОрганизации = &ПодразделениеОрганизации
    И Работники.Организация = &Организация



{ПодразделениеОрганизации КАК Подразделение

это же то же самое что и

Работники.ПодразделениеОрганизации = &ПодразделениеОрганизации
Макс1С
aik2001 @ Сегодня, 18:00 необходимо зарегистрироваться для просмотра ссылки ,
не то же самое, конструкция в фигурных скобках используется построителем отчета и в случае пустых значений просто игнорируется.
По сути, в зависимости от выбранных на форме отборов, исполняемый в БД запрос(текст запроса) может быть разным. Не проверял на практике, но думаю профайлером SQL это будет видно наглядно

aik2001 @ Сегодня, 18:00 необходимо зарегистрироваться для просмотра ссылки ,
+ к тому же это параметры виртуальной таблицы, это совсем не то же самое что условия в разделе "ГДЕ"
аналог запроса без конструкций для построителя была бы:
ВЫБРАТЬ
    Работники.Организация,
    Работники.Сотрудник,
    Работники.ПодразделениеОрганизации
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних(КОНЕЦПЕРИОДА(&Период, МЕСЯЦ), ПодразделениеОрганизации = &ПодразделениеОрганизации И Организация = &Организация) КАК Работники
Макс1С
Ещё мысля созрела: разница между параметром вирт.таблицы и условием "Где" в следующем:
в первом случае будут отобраны все записи удовлетворяющие всем параметрам(сотрудник, подразделение, организация), и среди них будет выбрана последняя запись(срез последних). Так и получим действующую запись по старому подразделению.
во втором случае будут отобраны все записи по сотруднику, среди них будет взята последняя(актуальное подразделение на тек.момент) и потом только применятся условия из раздела "Где" - т.е. результат будет пустым если указать старое подразделение
aik2001
Макс1С @ Вчера, 22:57 необходимо зарегистрироваться для просмотра ссылки ,
Спасибо поставил в запросе "Где" и все заработало.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.