Имя: Пароль:
1C
1С v8
ТаблицаЗначений.Свернуть()
,
0 korableg
 
14.03.13
13:42
Имеется таблица с начислениям, допустим в первой строке дата = 00010101, в второй 20120305

ФИО                 Начисление          Дата
СотрудникА           13464             00010101
СотрудникА             0               20120305

Как свернуть таблицу чтоб было: СотрудникА 13464 20120305

ТаблицаЗначений.Свернуть("СотрудникА", "Начисление, Дата") не работает, дата получается 0.

Есть какие нибудь идеи? кроме перебора значений.
1 butterbean
 
14.03.13
13:43
запрос
2 Maxus43
 
14.03.13
13:43
запросом
3 ДенисЧ
 
14.03.13
13:44
ЗАпрос, разумеется, не предлагать?
4 Wobland
 
14.03.13
13:45
а ещё можно получать эту таблицу в нужном виде. тоже без перебора
5 korableg
 
14.03.13
13:45
Пример запроса можете привести пожалуйста
6 MadHead
 
14.03.13
13:45
живи мужиком формируй структуру максимальных дат )
7 Галахад
 
гуру
14.03.13
13:45
Что-то не понял. А как тут даты суммируются?
8 korableg
 
14.03.13
13:45
эти данные и есть результат обьединения запросов, что в них добавить я чет не допираю
9 Wobland
 
14.03.13
13:46
(8) не добавить, а поправить
10 Wobland
 
14.03.13
13:46
выбрать (выбрать объединить выбрать) сгруппировать
11 Wobland
 
14.03.13
13:47
(10) это как вариант, без понимания логики запросов
12 Maxus43
 
14.03.13
13:47
(7) дак не суммируются, коли Свернуть не по числу - то будет 0
13 MadHead
 
14.03.13
13:47
(8) Нудно сгруппировать по сотруднику, Сумма(Начисление), Максимум (Дата)
14 Wobland
 
14.03.13
13:48
(12) даже не пробовать никогда. а если по строкам сворачивать? тоже ноль?
15 Wobland
 
14.03.13
13:48
(14) *не пробовал
16 korableg
 
14.03.13
13:48
(10) щас попробую сгруппировать в запросе
17 Галахад
 
гуру
14.03.13
13:49
(7), (8) А, понял, чего автор хочет.
18 Maxus43
 
14.03.13
13:49
(14) это в СП написано)
19 Wobland
 
14.03.13
13:51
(18) хрен! "... где будет преобразован к значению по умолчанию для типа, установленного в колонке"
20 Maxus43
 
14.03.13
13:52
(19) СП хреновый у вас!

Если в колонке несколько типов и среди них есть тип Число, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.
Если в колонке несколько типов и среди них нет типа Число, то результат суммирования будет 0, который будет присвоен в соответствующую колонку, где будет преобразован к значению по умолчанию для типа, установленного в колонке. (с)
21 Wobland
 
14.03.13
13:53
(20) ну и я о том же
22 Maxus43
 
14.03.13
13:54
(21) ну 0 же будет в результате, а потом как попрёт уж, после преобразования
23 Wobland
 
14.03.13
13:56
(22) я ожидал "0". но получил таки число ;)

   ТЗ=Новый ТаблицаЗначений;
   ТЗ.Колонки.Добавить("раз");
   ТЗ.Колонки.Добавить("два");
   стр=ТЗ.Добавить();
   стр.раз=40;
   стр.два="три";
   ТЗ.Свернуть("раз", "два");
24 korableg
 
15.03.13
05:26
"ВЫБРАТЬ
   |    РАЗНОСТЬДАТ(РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаПриемаНаРаботу, &Период, МЕСЯЦ) КАК Стаж,
   |    РаботникиОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
   |    ВЫБОР
   |        КОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения < &ПериодКонец
   |                И ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <> &НачальнаяДата
   |            ТОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Показатель1Завершения
   |        ИНАЧЕ ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Показатель1
   |    КОНЕЦ КАК Показатель1,
   |    ВЫБОР
   |        КОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения < &ПериодКонец
   |                И ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <> &НачальнаяДата
   |            ТОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчетаЗавершения
   |        ИНАЧЕ ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета
   |    КОНЕЦ КАК ВидРасчета,
   |    &НачальнаяДата КАК ДатаУвольнения
   |ИЗ
   |    РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций.СрезПоследних(&Период, ) КАК ПлановыеНачисленияРаботниковОрганизацийСрезПоследних
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Период, ) КАК РаботникиОрганизацийСрезПоследних
   |        ПО ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Сотрудник = РаботникиОрганизацийСрезПоследних.Сотрудник
   |ГДЕ
   |    ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета В(&ВидРасчета)
   |    И РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> &ПричинаИзмененияСостояния
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |    0,
   |    РаботникиОрганизаций.Сотрудник,
   |    ВЫБОР
   |        КОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения < &ПериодКонец
   |                И ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <> &НачальнаяДата
   |            ТОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Показатель1Завершения
   |        ИНАЧЕ ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Показатель1
   |    КОНЕЦ,
   |    ВЫБОР
   |        КОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения < &ПериодКонец
   |                И ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <> &НачальнаяДата
   |            ТОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчетаЗавершения
   |        ИНАЧЕ ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета
   |    КОНЕЦ,
   |    РаботникиОрганизаций.Период
   |ИЗ
   |    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций.СрезПоследних КАК ПлановыеНачисленияРаботниковОрганизацийСрезПоследних
   |        ПО РаботникиОрганизаций.Сотрудник = ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Сотрудник
   |ГДЕ
   |    РаботникиОрганизаций.Период МЕЖДУ &Период И &ПериодКонец
   |    И РаботникиОрганизаций.ПричинаИзмененияСостояния = &ПричинаИзмененияСостояния
   |    И ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета В(&ВидРасчета)";

Вот запрос, он берет сотрудников на начало периода и если сотрудник уволился в заданном промежутке должен добавлять его и проставлять дату увольнения и как то их надо обьединить вот пока не получается
25 korableg
 
15.03.13
05:29
Одним запросом это делать невозможно, потому что если действия в плановых начислениях = прекратить, то оклад там 0 становится, а мне нужно оклад вытащить
26 korableg
 
15.03.13
05:54
Пока решил проблему весьма Албанским способом разбиения даты на год месяц день, они суммируются без проблем)))