Имя: Пароль:
1C
1С v8
Как запросом получить затраты на авто
0 kn
 
16.07.12
09:27
Существует РС ВодителиАвтомобилей, как только меняется водитель на авто, то делается запись в этот регистр(периодический с периодом день,измерения Авто, Водитель).Еще существует Регистр ФондОплатыТруда(периодический с периодом месяц,измерениями подразделение,физлицо,ресурсом сумма).Как запросом посчитать затраты по ЗП за период,приходящиеся на авто?(т.е пропорционально дням отработанным водителем на данном авто)
1 Ненавижу 1С
 
гуру
16.07.12
09:30
(0) то есть зарплата водителям это затраты на авто?
2 kn
 
16.07.12
09:30
как часть
3 kn
 
16.07.12
09:32
вообще надо еще на пробег делить и называется ЗП водителя на 1км, но мне надо так дальше понятно
4 Ненавижу 1С
 
гуру
16.07.12
09:37
наверное еще нужен производственный календарь, ведь есть выходные дни, ну а с ним все просто
5 Ненавижу 1С
 
гуру
16.07.12
09:37
а если два водителя в один день на одном авто? по вашей структуре это не запрещено
6 kn
 
16.07.12
09:37
ну это стандартный регистр
7 kn
 
16.07.12
09:38
(5)такого не может практически
8 kn
 
16.07.12
09:55
не очевидно, как просто сделать?
9 Vadik_62
 
16.07.12
10:04
параметры запроса: месяц, автомобиль.
Таблица1:Находишь сначало всех водителей в этом месяце на этом автомобиле и сколько дней они отработали.
Таблица2:Потом отбираешь их ЗП в этом месяце.
Потом связываешь эти две таблицы по водителям и считаешь сколько заплатили конкретному водителю на конкретном авто за конкретное время.
Находишь сумму по этому полю. И все.
10 kn
 
16.07.12
10:36
допустим, а как получить 'сколько дней они отработали'?
11 kn
 
16.07.12
12:00
вверх
12 kn
 
16.07.12
12:51
Т.е например есть данные
период1 авто1 водитель1
период2 авто2 водитель1
мне надо получить таб
период1 период2
период2 датакон
и потом посмотреть разность колонок
13 kn
 
16.07.12
12:54
что-то это напоминает...
14 Ненавижу 1С
 
гуру
16.07.12
13:05
вот так получаем периоды

ВЫБРАТЬ
   УправлениеТранспортнымиСредствами.ФизЛицо,
   УправлениеТранспортнымиСредствами.ТранспортноеСредство,
   УправлениеТранспортнымиСредствами.Период
ПОМЕСТИТЬ ГраницыПериодов
ИЗ
   РегистрСведений.УправлениеТранспортнымиСредствами КАК УправлениеТранспортнымиСредствами
ГДЕ
   УправлениеТранспортнымиСредствами.Период МЕЖДУ &Период1 И &Период2

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   УправлениеТранспортнымиСредствамиСрезПоследних.ФизЛицо,
   УправлениеТранспортнымиСредствамиСрезПоследних.ТранспортноеСредство,
   &Период1
ИЗ
   РегистрСведений.УправлениеТранспортнымиСредствами.СрезПоследних(&Период1, ) КАК УправлениеТранспортнымиСредствамиСрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Периоды1.ФизЛицо,
   Периоды1.ТранспортноеСредство,
   Периоды1.Период КАК Период1,
   ЕСТЬNULL(МИНИМУМ(Периоды2.Период), &Период2) КАК Период2
ИЗ
   ГраницыПериодов КАК Периоды1
       ЛЕВОЕ СОЕДИНЕНИЕ ГраницыПериодов КАК Периоды2
       ПО Периоды1.ФизЛицо = Периоды2.ФизЛицо
           И Периоды1.ТранспортноеСредство = Периоды2.ТранспортноеСредство
           И Периоды1.Период < Периоды2.Период

СГРУППИРОВАТЬ ПО
   Периоды1.ФизЛицо,
   Периоды1.ТранспортноеСредство,
   Периоды1.Период
15 kn
 
16.07.12
14:00
(14)вот запрос построен по аналогии выдает неверно

Авто1 Водитель1 01.01.12  31.01.12
Авто2 Водитель2 10.01.12  31.01.12

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

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ВодителиАвтомобилей.Период,
   ВодителиАвтомобилей.Автомобиль,
   ВодителиАвтомобилей.Водитель
ИЗ
   РегистрСведений.ВодителиАвтомобилей КАК ВодителиАвтомобилей
ГДЕ
   ВодителиАвтомобилей.Период МЕЖДУ &ДатаНач И &ДатаКон
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ГраницаПериодов.Автомобиль,
   ГраницаПериодов.Водитель,
   ГраницаПериодов.Период КАК Период1,
   ЕСТЬNULL(МИНИМУМ(ГраницаПериодов1.Период), &ДатаКон) КАК Период2
ИЗ
   ГраницаПериодов КАК ГраницаПериодов
       ЛЕВОЕ СОЕДИНЕНИЕ ГраницаПериодов КАК ГраницаПериодов1
       ПО ГраницаПериодов.Период < ГраницаПериодов1.Период
           И ГраницаПериодов.Автомобиль = ГраницаПериодов1.Автомобиль
           И ГраницаПериодов.Водитель = ГраницаПериодов1.Водитель

СГРУППИРОВАТЬ ПО
   ГраницаПериодов.Автомобиль,
   ГраницаПериодов.Водитель,
   ГраницаПериодов.Период