Имя: Пароль:
1C
1C 7.7
v7: Подскажите про реквизиты/измерения регистров.
0 xenos
 
27.04.12
11:55
Конфа вещевое довольствие.

Вывожу данные в отчет получается типа:

Иванов 2шт
>Ботинок1 1шт
>>Внебюджет 1шт
>>Бюджет 1шт
>Ботинок2 1Шт
>>Внебюджет 1шт
>>Бюджет 1шт

Т.е. итоги по измерения сотрудник и обмундирование правильно считает, а по виду деятельности выводятся как по реквизиту.

Хотя в конфигураторе вид деятельности стоит в измерениях.

В то же время типовой отчет о движениях документов, относит их к реквизитам.
1 Жан Пердежон
 
27.04.12
11:57
каша
2 xenos
 
27.04.12
11:57
(1) В смысле?
3 Mikeware
 
27.04.12
11:58
Все правильно. Один ботинок из бюджета, второй - внебюджетный.
отрежь Иванову одЫн нога, и все будет в порядке, второй ботинок спишешь...
4 xenos
 
27.04.12
12:02
(2) Да нет я нашел документ, он по бюджету прошелся. Откуда внебюджет вообще не понятно.

Да и выводится тогда должно:
>Ботинок1 2шт
>>Внебюджет 1шт
>>Бюджет 1шт

А выводится:
>Ботинок1 1шт
>>Внебюджет 1шт
>>Бюджет 1шт
5 xenos
 
27.04.12
12:08
апапапап
6 Жан Пердежон
 
27.04.12
12:19
(5) в 5ой строке ошибка
7 xenos
 
27.04.12
12:29
(6) где?
8 zak555
 
27.04.12
12:32
опиши структуру регистра
9 xenos
 
27.04.12
12:35
10 dusn
 
27.04.12
12:36
странно, что никто код не попросил еще :)
11 zak555
 
27.04.12
12:36
теперь код
12 xenos
 
27.04.12
12:37
13 xenos
 
27.04.12
12:37
Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |Учреждение = Регистр.ОбмундированиеВыданное.Учреждение;
   |Сотрудник = Регистр.ОбмундированиеВыданное.Сотрудник;
   |Обмундирование = Регистр.ОбмундированиеВыданное.Обмундирование;
   |ДатаВыдачи = Регистр.ОбмундированиеВыданное.ДатаВыдачи;
   |ДокументВыдачи = Регистр.ОбмундированиеВыданное.ДокументВыдачи;
   |ОкончаниеСрока = Регистр.ОбмундированиеВыданное.ОкончаниеСрока;
   |ДокументСписания = Регистр.ОбмундированиеВыданное.ДокументСписания;
   |ФормаВыдачи = Регистр.ОбмундированиеВыданное.ФормаВыдачи;
   |Статус = Регистр.ОбмундированиеВыданное.Статус;
   |КодВидаДеятельности = Регистр.ОбмундированиеВыданное.КодВидаДеятельности;
   |Количество = Регистр.ОбмундированиеВыданное.Количество;
   |Сумма = Регистр.ОбмундированиеВыданное.Сумма;
   |Функция КоличествоКонОст = КонОст(Количество);
   |Функция СуммаНачОст = НачОст(Сумма);
   |Группировка Учреждение;
   |Группировка Сотрудник;
   |Группировка Обмундирование;
   |Группировка ДатаВыдачи;
   |Группировка ДокументВыдачи;
   |Группировка ОкончаниеСрока;
   |Группировка ДокументСписания;
   |Группировка ФормаВыдачи;
   |Группировка Статус;
   |Группировка КодВидаДеятельности;
   |"//}}ЗАПРОС
   ;
   // Если ошибка в запросе, то выход из процедуры
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
       Возврат;
   КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   // Заполнение полей "Заголовок"
   Таб.ВывестиСекцию("Заголовок");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   Пока Запрос.Группировка(1) = 1 Цикл
       // Заполнение полей Учреждение
       Таб.ВывестиСекцию("Учреждение");
       Пока Запрос.Группировка(2) = 1 Цикл
           // Заполнение полей Сотрудник
           Таб.ВывестиСекцию("Сотрудник");
           Пока Запрос.Группировка(3) = 1 Цикл
               // Заполнение полей Обмундирование
               Таб.ВывестиСекцию("Обмундирование");
               Пока Запрос.Группировка(4) = 1 Цикл
                   // Заполнение полей ДатаВыдачи
                   Таб.ВывестиСекцию("ДатаВыдачи");
                   Пока Запрос.Группировка(5) = 1 Цикл
                       // Заполнение полей ДокументВыдачи
                       Таб.ВывестиСекцию("ДокументВыдачи");
                       Пока Запрос.Группировка(6) = 1 Цикл
                           // Заполнение полей ОкончаниеСрока
                           Таб.ВывестиСекцию("ОкончаниеСрока");
                           Пока Запрос.Группировка(7) = 1 Цикл
                               // Заполнение полей ДокументСписания
                               Таб.ВывестиСекцию("ДокументСписания");
                               Пока Запрос.Группировка(8) = 1 Цикл
                                   // Заполнение полей ФормаВыдачи
                                   Таб.ВывестиСекцию("ФормаВыдачи");
                                   Пока Запрос.Группировка(9) = 1 Цикл
                                       // Заполнение полей Статус
                                       Таб.ВывестиСекцию("Статус");
                                       Пока Запрос.Группировка(10) = 1 Цикл
                                           // Заполнение полей КодВидаДеятельности
                                           Таб.ВывестиСекцию("КодВидаДеятельности");
                                       КонецЦикла;
                                   КонецЦикла;
                               КонецЦикла;
                           КонецЦикла;
                       КонецЦикла;
                   КонецЦикла;
               КонецЦикла;
           КонецЦикла;
       КонецЦикла;
   КонецЦикла;
14 zak555
 
27.04.12
12:39
пересчитай итоги
15 dusn
 
27.04.12
12:39
хе, а код вида деятельности - это не иерархический справочник?
16 xenos
 
27.04.12
12:41
(14) Уже полное тестирование сделал. Причем это не по одной позиции.
17 zak555
 
27.04.12
12:41
выведи вот так :


// Заполнение полей Статус

//вставка+
сообщить("" + запрос.КоличествоКонОст );
//вставка-
18 xenos
 
27.04.12
12:41
(15) Иерархический.
19 xenos
 
27.04.12
12:42
(17) Оно понятно. Не понятно почему вообще так.
20 dusn
 
27.04.12
12:45
судя по картинке с результатом - сначала выводится сумма по группе справочника (Бюджет), а потом по элементу из этой группы (бюджет федеральный)
21 dusn
 
27.04.12
12:46
попробуй написать

|Группировка КодВидаДеятельности Без Групп
22 xenos
 
27.04.12
12:48
(20) НА верхнем уровне по идее должна выводится их сумма.
23 xenos
 
27.04.12
12:50
(21) Ага, заработало. Спасибо.
24 Жан Пердежон
 
27.04.12
12:57
а в (0) наврал в примере)
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.