Имя: Пароль:
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
Пока решил проблему весьма Албанским способом разбиения даты на год месяц день, они суммируются без проблем)))
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан