Имя: Пароль:
1C
 
Как управлять вычислением итогов в СКД?
0 Гений 1С
 
гуру
21.04.08
14:35
Т.е. если у меня написано Сумма(КоличествоСтавок), могу ли я указать что считать нужно только по уникальным значениям по измерениям Должность?

Данные:

Допустим по должности слесарь - количество ставок 2.

Должность Сотрудник КоличествоСтавок
Слесарь Вася 2
Слесарь Маша 2

Итог по количеству ставок получается - 4
А итог должен быть 2.
1 Гений 1С
 
гуру
21.04.08
14:57
и где зубры СКД? попрятались по норам?
2 Регистратор
 
21.04.08
17:05
а почему не
Среднее(КоличествоСтавок)

кроме того если
Слесарь Вася 2
Слесарь Маша 3

Итог по количеству ставок получается - 5
А итог должен быть (???)

не просматривается логика вычисления кроме среднее
3 Defender aka LINN
 
21.04.08
17:14
(2) ИМХО, тут имеется в виду КОЛИЧЕСТВО(Ставка)... Хотя при чем тут "только по уникальным значениям" я так и не вкурил.
4 Регистратор
 
21.04.08
17:25
а тогда КоличествоСтавок не должен быть ресурсом а должен иметь тип измерение (или надо еще раз включить это же поле но с псевдонимом)
а ресурсом поставить
1 КАК КоличествоУникальное
Ну и для группировок
Должность, Сотрудник, КоличествоСтавок вывести ресурс КоличествоУникальное
5 Гений 1С
 
гуру
21.04.08
17:47
Вот пример:

Должность ФИО КоличествоСтавок
Слесарь Вася 2
Слесарь Маша 2
Повар Саша 3
Повар Даша 3
Повар Дуня 3

Если брать функцию Максимум, итого по подразделению будет равно 3, а мне нужно чтобы было равно 5 по подразделению и 2 или 3 по должности.
6 Гений 1С
 
гуру
21.04.08
17:50
ОК, экскурс в предметную область.
По каждому подразделению по каждой должности в штатном расписании хранится, сколько должно быть ставок и контролируется, чтобы число сотрудников на этой должности в этом подразделении не превышало число ставок.

Пример:
Должность ФИО КоличествоСтавок КоличествоСотрудниковНаДолжности
Слесарь Вася 2 1
Слесарь Маша 2 1
Повар Саша 3 1
Повар Даша 3 1
Повар Дуня 3 1

Итого по подразделению - количество ставок 5, количество сотрудников на должности тоже 5. Все окей.

Но вот это 5 я не могу получить по полю "Количество ставок", блин, никак...
Хоть вызывай функцию из общего модуля, чтобы она по должности и подразделению посчитала это число ставок.
7 Гений 1С
 
гуру
21.04.08
17:50
(2) Читайте (6) я описал предметную область подробно.
8 Гений 1С
 
гуру
21.04.08
17:51
(4) С архитектурой все нормально, если сомневаетесь, спросите у Нуралиева... ;-)
9 Immortal
 
21.04.08
17:55
(3) +1
Гений, какая нахер сумма, если ты КОЛИЧЕСТВО различных (по сотрудникам ) ставок считаешь?
10 Регистратор
 
21.04.08
17:57
так и берем
гуппировка по полям Должность, Плановоеоличество - > ресурс Сумма(ФактическиЗанято)
Получим
Слесарь 2 -> 2
Повар 3 -> 3
Если нало чтоб детализация по ФИО была
тогда придется делать левое соединение по полю Должность (и возможно еще какимто полям) чтоб подтянуть итог по фактическим занятым должностям
11 Гений 1С
 
гуру
22.04.08
09:49
(10) Слушай, структуру отчета я тебе показал. Там должно быть должность, сотрудник, количество ставок по должности и количество занятых штатных единиц сотрудником. Ты же мне предлагаешь другой отчет, это не решение.
12 Гений 1С
 
гуру
22.04.08
09:51
(9) Давай не заниматься тавтологией. Если такой умный, скажи как посчитать количество?
Подразделение  Количество  Количество
или Сотрудник  ставок      должностей
Цех№5          5           5
 Слесарь Вася 2           1
 Слесарь Маша 2           1
 Повар Саша   3           1
 Повар Даша   3           1
 Повар Дуня   3           1

А сейчас он мне в итоге по подразделению выдает количество ставок 13!
13 Гений 1С
 
гуру
22.04.08
09:53
Подразделение--Количество--Количество
или Сотрудник--ставок------должностей

Цех№5----------5-----------5
--Слесарь Вася-2-----------1
--Слесарь Маша-2-----------1
--Повар Саша---3-----------1
--Повар Даша---3-----------1
--Повар Дуня---3-----------1
14 Dionisious
 
22.04.08
09:54
попробуй количество ставок вынести в отдельный набор данных и связь настроить. СКД в этом случае как то хитро агрегатные функции считает. Не уверен что поможет но попробовать стоит.
15 Гений 1С
 
гуру
22.04.08
09:57
(14) издеваешься? Там офигенно некислый запрос в этом ЗУПЕ.
Проще в общий модуль вынести. Но неужели никто из зубров не защитит честь СКД, неужели она для агрегирования не может взять только уникальные значения, т.е. ей нужно просуммировать

Слесарь--2
Повар----3

А не суммировать тупо, как она сейчас суммирует:
Слесарь--2
Слесарь--2
Повар----3
Повар----3
Повар----3
16 Dionisious
 
22.04.08
10:00
(15) при чем тут СКД? Как бы ты это в простом запросе реализовал?

Хотя можно еще два раза присоединять таблицу ставок. А в итогах в зависимости от условия брать МАКСИМУМ от из нужной таблицы.
17 Гений 1С
 
гуру
22.04.08
10:04
(16) Блин, ну есть же в СКД опция - считать итоги только по определенным группировкам, так почему бы не быть опции - считать только по различным значениям этих группировок. СКД - не запрос, а его обработчик.
18 Регистратор
 
22.04.08
10:05
(15) есть 3 утверждения
1. Можно получить запросом фактически занятое количество должностей в подраздении (и пр. условиях). Назовем таблица ФАКТ
2.К исходной талице ("должность, сотрудник, количество ставок по должности и количество занятых штатных единиц сотрудником") соединяется внешним соединением таблица ФАКТ из пункла 1 (вероятно по полям должность и подразделение)
3.Получим таблицу где кроме исходных "должность, сотрудник, количество ставок по должности и количество занятых штатных единиц сотрудником" будет поле кактически занятых должностей (конкретно дл данного подразделения и должности)
помоему тут все довольно просто и этого достаточно для получения нужных итогов
19 Dionisious
 
22.04.08
10:07
(17) Итоги по группировкам - превращаются во вполне нормальную структуру выбора в запросе. СКД не только обработчик запроса но и его построитель.

А так я же тебе сказал как средствами СКД можно попробовать сделать, но тебе лень запрос переписывать. Ну что же - ругай СКД может полегчает.
20 Гений 1С
 
гуру
22.04.08
10:10
(18)(19) Граждане, я сделаю левое соединение, не вопрос, но итоги то все-равно будут не правильные, как вы не понимаете. Даже если я запрос перепишу.

Вот я получаю детальные записи:
--Слесарь Вася-2-----------1
--Слесарь Маша-2-----------1
--Повар Саша---3-----------1
--Повар Даша---3-----------1
--Повар Дуня---3-----------1


Если я использую Сумма(КоличествоСтавок) то получаю:
Цех№5----------13-----------5

Если я использую Максимум(КоличествоСтавок) то получаю:
Цех№5-----------3-----------5

И что?
21 Dionisious
 
22.04.08
10:11
(20) сейчас попробую набросать примерчик для ЗУПа.
22 Гений 1С
 
гуру
22.04.08
10:12
(19) "как то хитро агрегатные функции считает" - это наводка, да? типо совета взять бубен и побить в него.
23 Гений 1С
 
гуру
22.04.08
10:12
(21) ок, пасибо. ;-)
24 Dionisious
 
22.04.08
10:32
Получилось. Как тут блин в тект то все это сохранить?
25 Dionisious
 
22.04.08
10:35
<?xml version="1.0" encoding="UTF-8"?>
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:v8="http://v8.1c.ru/8.1/data/core">
   <dataSource>
       <name>ИнформационнаяБаза</name>
       <dataSourceType>Local</dataSourceType>
   </dataSource>
   <dataSet xsi:type="DataSetQuery">
       <name>Работники</name>
       <field xsi:type="DataSetFieldField">
           <dataPath>Активность</dataPath>
           <field>Активность</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Активность</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>НомерСтроки</dataPath>
           <field>НомерСтроки</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Номер строки</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>Период</dataPath>
           <field>Период</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Период</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>Регистратор</dataPath>
           <field>Регистратор</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Регистратор</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>ГрафикРаботы</dataPath>
           <field>ГрафикРаботы</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>График работы</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>ГрафикРаботыЗавершения</dataPath>
           <field>ГрафикРаботыЗавершения</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>График работы завершения</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>Должность</dataPath>
           <field>Должность</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Должность</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>ДолжностьЗавершения</dataPath>
           <field>ДолжностьЗавершения</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Должность завершения</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>ЗанимаемыхСтавок</dataPath>
           <field>ЗанимаемыхСтавок</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Занимаемых ставок</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>ЗанимаемыхСтавокЗавершения</dataPath>
           <field>ЗанимаемыхСтавокЗавершения</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Занимаемых ставок завершения</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>ОбособленноеПодразделение</dataPath>
           <field>ОбособленноеПодразделение</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Обособленное подразделение</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>ОбособленноеПодразделениеЗавершения</dataPath>
           <field>ОбособленноеПодразделениеЗавершения</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Обособленное подразделение завершения</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>Организация</dataPath>
           <field>Организация</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Организация</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>ПериодЗавершения</dataPath>
           <field>ПериодЗавершения</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Период завершения</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>ПодразделениеОрганизации</dataPath>
           <field>ПодразделениеОрганизации</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Подразделение организации</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>ПодразделениеОрганизацииЗавершения</dataPath>
           <field>ПодразделениеОрганизацииЗавершения</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Подразделение организации завершения</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>ПричинаИзмененияСостояния</dataPath>
           <field>ПричинаИзмененияСостояния</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Причина изменения состояния</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>ПричинаИзмененияСостоянияЗавершения</dataPath>
           <field>ПричинаИзмененияСостоянияЗавершения</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Причина изменения состояния завершения</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>Сотрудник</dataPath>
           <field>Сотрудник</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Сотрудник</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>УдалитьОбособленноеПодразделение</dataPath>
           <field>УдалитьОбособленноеПодразделение</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Удалить обособленное подразделение</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>УдалитьПриказ</dataPath>
           <field>УдалитьПриказ</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Удалить приказ</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>УдалитьПричинаИзмененияСостояния</dataPath>
           <field>УдалитьПричинаИзмененияСостояния</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Удалить причина изменения состояния</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>УдалитьТабельныйНомер</dataPath>
           <field>УдалитьТабельныйНомер</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Удалить табельный номер</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>УдалитьФизлицо</dataPath>
           <field>УдалитьФизлицо</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Удалить физлицо</v8:content>
               </v8:item>
           </title>
       </field>
       <dataSource>ИнформационнаяБаза</dataSource>
       <query>ВЫБРАТЬ
   РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
   РаботникиОрганизацийСрезПоследних.Должность,
   РаботникиОрганизацийСрезПоследних.Сотрудник

ИЗ
   РегистрСведений.РаботникиОрганизаций.СрезПоследних({&amp;ДатаОтчета}) КАК РаботникиОрганизацийСрезПоследних</query>
   </dataSet>
   <dataSet xsi:type="DataSetQuery">
       <name>ШтатноеРасписание</name>
       <field xsi:type="DataSetFieldField">
           <dataPath>Период</dataPath>
           <field>Период</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Период</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>ВалютаТарифнойСтавки</dataPath>
           <field>ВалютаТарифнойСтавки</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Валюта тарифной ставки</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>ВидТарифнойСтавки</dataPath>
           <field>ВидТарифнойСтавки</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Вид тарифной ставки</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>ГрафикРаботы</dataPath>
           <field>ГрафикРаботы</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>График работы</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>Должность</dataPath>
           <field>Должность</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Должность</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>КоличествоСтавок</dataPath>
           <field>КоличествоСтавок</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Количество ставок</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>МаксимальнаяТарифнаяСтавка</dataPath>
           <field>МаксимальнаяТарифнаяСтавка</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Максимальная тарифная ставка</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>МинимальнаяТарифнаяСтавка</dataPath>
           <field>МинимальнаяТарифнаяСтавка</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Минимальная тарифная ставка</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>ОсобыеУсловияТруда</dataPath>
           <field>ОсобыеУсловияТруда</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Особые условия труда</v8:content>
               </v8:item>
           </title>
       </field>
       <field xsi:type="DataSetFieldField">
           <dataPath>ПодразделениеОрганизации</dataPath>
           <field>ПодразделениеОрганизации</field>
           <title xsi:type="v8:LocalStringType">
               <v8:item>
                   <v8:lang>ru</v8:lang>
                   <v8:content>Подразделение организации</v8:content>
               </v8:item>
           </title>
       </field>
       <dataSource>ИнформационнаяБаза</dataSource>
       <query>ВЫБРАТЬ
   ШтатноеРасписаниеОрганизацийСрезПоследних.ПодразделениеОрганизации,
   ШтатноеРасписаниеОрганизацийСрезПоследних.Должность,
   ШтатноеРасписаниеОрганизацийСрезПоследних.КоличествоСтавок


ИЗ
   РегистрСведений.ШтатноеРасписаниеОрганизаций.СрезПоследних({&amp;ДатаОтчета}) КАК ШтатноеРасписаниеОрганизацийСрезПоследних</query>
   </dataSet>
   <dataSetLink>
       <sourceDataSet>ШтатноеРасписание</sourceDataSet>
       <destinationDataSet>Работники</destinationDataSet>
       <sourceExpression>Должность</sourceExpression>
       <destinationExpression>Должность</destinationExpression>
   </dataSetLink>
   <dataSetLink>
       <sourceDataSet>ШтатноеРасписание</sourceDataSet>
       <destinationDataSet>Работники</destinationDataSet>
       <sourceExpression>ПодразделениеОрганизации</sourceExpression>
       <destinationExpression>ПодразделениеОрганизации</destinationExpression>
   </dataSetLink>
   <totalField>
       <dataPath>КоличествоСтавок</dataPath>
       <expression>Сумма(КоличествоСтавок)</expression>
   </totalField>
   <parameter>
       <name>ДатаОтчета</name>
       <title xsi:type="v8:LocalStringType">
           <v8:item>
               <v8:lang>ru</v8:lang>
               <v8:content>Дата отчета</v8:content>
           </v8:item>
       </title>
       <valueType>
           <v8:Type>xsd:dateTime</v8:Type>
           <v8:DateQualifiers>
               <v8:DateFractions>DateTime</v8:DateFractions>
           </v8:DateQualifiers>
       </valueType>
       <value xsi:type="xsd:dateTime">0001-01-01T00:00:00</value>
       <useRestriction>true</useRestriction>
   </parameter>
   <defaultSettings xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system">
       <dcsset:selection>
           <dcsset:item xsi:type="dcsset:SelectedItemField">
               <dcsset:field>КоличествоСтавок</dcsset:field>
           </dcsset:item>
       </dcsset:selection>
       <dcsset:filter>
           <dcsset:item xsi:type="dcsset:FilterItemComparison">
               <dcsset:use>false</dcsset:use>
               <dcsset:left xsi:type="dcscor:Field">ТипУчета</dcsset:left>
               <dcsset:comparisonType>Equal</dcsset:comparisonType>
               <dcsset:right xsi:type="dcscor:DesignTimeValue">Перечисление.ТипыУчета.</dcsset:right>
           </dcsset:item>
           <dcsset:item xsi:type="dcsset:FilterItemComparison">
               <dcsset:use>false</dcsset:use>
               <dcsset:left xsi:type="dcscor:Field">СкладКомпании</dcsset:left>
               <dcsset:comparisonType>Equal</dcsset:comparisonType>
               <dcsset:right xsi:type="dcscor:DesignTimeValue">Справочник.СкладыКомпании.</dcsset:right>
           </dcsset:item>
           <dcsset:item xsi:type="dcsset:FilterItemComparison">
               <dcsset:use>false</dcsset:use>
               <dcsset:left xsi:type="dcscor:Field">Номенклатура</dcsset:left>
               <dcsset:comparisonType>Equal</dcsset:comparisonType>
               <dcsset:right xsi:type="dcscor:DesignTimeValue">Справочник.Номенклатура.</dcsset:right>
           </dcsset:item>
           <dcsset:item xsi:type="dcsset:FilterItemComparison">
               <dcsset:use>false</dcsset:use>
               <dcsset:left xsi:type="dcscor:Field">ХарактеристикаНоменклатуры</dcsset:left>
               <dcsset:comparisonType>Equal</dcsset:comparisonType>
               <dcsset:right xsi:type="dcscor:DesignTimeValue">Справочник.ХарактеристикиНоменклатуры.</dcsset:right>
           </dcsset:item>
       </dcsset:filter>
       <dcsset:outputParameters>
           <dcscor:item>
               <dcscor:use>false</dcscor:use>
               <dcscor:parameter>TitleOutput</dcscor:parameter>
               <dcscor:value xsi:type="dcsset:DataCompositionTextOutputType">Output</dcscor:value>
           </dcscor:item>
           <dcscor:item>
               <dcscor:use>false</dcscor:use>
               <dcscor:parameter>Title</dcscor:parameter>
               <dcscor:value xsi:type="v8:LocalStringType"/>
           </dcscor:item>
           <dcscor:item>
               <dcscor:use>false</dcscor:use>
               <dcscor:parameter>DataParametersOutput</dcscor:parameter>
               <dcscor:value xsi:type="dcsset:DataCompositionTextOutputType">Output</dcscor:value>
           </dcscor:item>
           <dcscor:item>
               <dcscor:use>false</dcscor:use>
               <dcscor:parameter>FilterOutput</dcscor:parameter>
               <dcscor:value xsi:type="dcsset:DataCompositionTextOutputType">Output</dcscor:value>
           </dcscor:item>
       </dcsset:outputParameters>
       <dcsset:item xsi:type="dcsset:StructureItemTable">
           <dcsset:row>
               <dcsset:groupItems>
                   <dcsset:item xsi:type="dcsset:GroupItemField">
                       <dcsset:field>ПодразделениеОрганизации</dcsset:field>
                       <dcsset:groupType>Items</dcsset:groupType>
                       <dcsset:periodAdditionType>None</dcsset:periodAdditionType>
                       <dcsset:periodAdditionBegin xsi:type="xsd:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionBegin>
                       <dcsset:periodAdditionEnd xsi:type="xsd:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
                   </dcsset:item>
               </dcsset:groupItems>
               <dcsset:order>
                   <dcsset:item xsi:type="dcsset:OrderItemAuto"/>
               </dcsset:order>
               <dcsset:selection>
                   <dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
               </dcsset:selection>
               <dcsset:item>
                   <dcsset:groupItems>
                       <dcsset:item xsi:type="dcsset:GroupItemField">
                           <dcsset:field>Должность</dcsset:field>
                           <dcsset:groupType>Items</dcsset:groupType>
                           <dcsset:periodAdditionType>None</dcsset:periodAdditionType>
                           <dcsset:periodAdditionBegin xsi:type="xsd:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionBegin>
                           <dcsset:periodAdditionEnd xsi:type="xsd:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
                       </dcsset:item>
                   </dcsset:groupItems>
                   <dcsset:order>
                       <dcsset:item xsi:type="dcsset:OrderItemAuto"/>
                   </dcsset:order>
                   <dcsset:selection>
                       <dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
                   </dcsset:selection>
                   <dcsset:item>
                       <dcsset:groupItems>
                           <dcsset:item xsi:type="dcsset:GroupItemField">
                               <dcsset:field>Сотрудник</dcsset:field>
                               <dcsset:groupType>Items</dcsset:groupType>
                               <dcsset:periodAdditionType>None</dcsset:periodAdditionType>
                               <dcsset:periodAdditionBegin xsi:type="xsd:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionBegin>
                               <dcsset:periodAdditionEnd xsi:type="xsd:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
                           </dcsset:item>
                       </dcsset:groupItems>
                       <dcsset:order>
                           <dcsset:item xsi:type="dcsset:OrderItemAuto"/>
                       </dcsset:order>
                       <dcsset:selection>
                           <dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
                       </dcsset:selection>
                   </dcsset:item>
               </dcsset:item>
           </dcsset:row>
       </dcsset:item>
   </defaultSettings>
</DataCompositionSchema>
26 Dionisious
 
22.04.08
10:36
(25)+ это в xml и в макет СКД.
27 Гений 1С
 
гуру
22.04.08
11:02
(26) А ты не можешь внешнюю обработку на slil.ru залить?
28 Dionisious
 
22.04.08
11:09
29 Гений 1С
 
гуру
22.04.08
11:46
(28) Мда, с наборами данных тема понятно, но переписывать 1с-кий запрос на два набора данных - это палево, проще функцию общего модуля юзать, которая для заданной должности и организации вычислит итог.
30 Гений 1С
 
гуру
22.04.08
11:46
Неужели в рамках одного запроса ничего нельзя сделать?
31 Гений 1С
 
гуру
22.04.08
13:06
(28) Кстати, на самом деле твой отчет всего лишь хитрый обход проблемы.
Я создал отчет с двумя наборами данных, но он по-прежнему выдает неправильные суммы и я понял почему.
У тебя два набора ШР (Должность-> Количество ставок)
И второй набор Сотрудники(Должность, Сотрудник ->)
Ты берешь главной таблицей таблицу ШР, а зависимой Сотрудник.
Если сделать наоборот, то получаются такие же кривые суммы, так что существенно это проблему не решает.
Ладно, пока забью, буду дергать 1С за усы. Пока что СКД в этом плане лажается.
32 Dionisious
 
22.04.08
13:21
(31) что бы получить полное соединение можно в набор ШР добавить соединение по свернутой таблице работников. ИМХО - вполне приличное решение. Да и мой запрос почти покрывает твою задачу чудок доработать и отчет готов.
33 Гений 1С
 
гуру
22.04.08
14:24
(32) Но ты не решил проблему, а уклонился от нее, хорошо что в данном случае можно решить задачу перестановкой левой и правой таблицы, а если так не решить? Если нужно брать уникальные суммы из левой и правой таблицы? Так что вопрос пока еще открыт.
34 Dionisious
 
22.04.08
14:30
(33) пример задачи приведи.
35 Гений 1С
 
гуру
22.04.08
14:37
1 2 3 4 5
---------    
А Z 5 2 7
Б Y 2 4 1
А X 5 6 9
А Y 5 3 1
---------
Итого: -,-,7,15,17

Значение в колонке 3 зависит только от колонки 1.
Значение в колонке 4 зависит от колонки 1 и 2.
Значение в колонке 5 зависит только от колонки 2.

Мне нужно подсчитать общий итог:
В колонке 3 должно быть 7, а не 17.
В колонке 5 должно быть 17, а не 18.

Перестановками наборов данных не решишь.
36 Dionisious
 
22.04.08
15:21
(35) Не поверишь решиось еще проще.
37 Dionisious
 
22.04.08
15:21
П1    Итого    
П2    П3    П5
А    5    17
X    5    9
Y    5    1
Z    5    7
Б    2    17
X    2    9
Y    2    1
Z    2    7
Итого    7    17
38 Dionisious
 
22.04.08
15:21
Даже не надо связи нстраивать.
39 Dionisious
 
22.04.08
15:23
Наборы данных:
1

ВЫБРАТЬ
   П1,
   П3

ИЗ
   (ВЫБРАТЬ
       "А" КАК П1,
       5 КАК П3
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ
       "Б" КАК П1,
       2 КАК П3
   ) КАК Д


2

ВЫБРАТЬ
   П2,
   П5

ИЗ
   (ВЫБРАТЬ
       "X" КАК П2,
       9 КАК П5
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ
       "Y" КАК П2,
       1 КАК П5
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ
       "Z" КАК П2,
       7 КАК П5
   ) КАК Д


Ресурсы: П3, П5 - сумма.
40 Dionisious
 
22.04.08
15:24
Так что СКД рулит. Сейчас попробую с тремя наборами.
41 Dionisious
 
22.04.08
15:30
Идеально:

П1    Итого        
П2    П3    П4    П5
А    5    11    17
X    5    6    9
Y    5    3    1
Z    5    2    7
Б    2    4    1
Y    2    4    1
Итого    7    15    17


Правда тут пришлось связи настроить. Третий набор данных:

ВЫБРАТЬ
   П1,
   П2,
   П4

ИЗ
   (ВЫБРАТЬ
       "А" КАК П1,
       "Z" КАК П2,
       2 КАК П4
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ
       "Б" КАК П1,
       "Y" КАК П2,
       4 КАК П4
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ
       "А" КАК П1,
       "X" КАК П2,
       6 КАК П4
   ОБЪЕДИНИТЬ
   ВЫБРАТЬ
       "А" КАК П1,
       "Y" КАК П2,
       3 КАК П4
   ) КАК Д


Две связи:
3 - 1 ПО П1=П1
3 - 2 ПО П2=П2
42 Dionisious
 
22.04.08
15:31
Ище вариант результата:

П1    П2    П3    П4    П5
А    X    5    6    9
А    Y    5    3    1
А    Z    5    2    7
Б    Y    2    4    1
Итого        7    15    17
43 Гений 1С
 
гуру
22.04.08
16:43
(42) счас переварю. Но все таки считаю, что только для того, чтобы получить итог, курочить запрос на наборы - это маразм. Может она и рулит, но рулеж этот в маразматическом стиле.
Независимо от того, куда вы едете — это в гору и против ветра!