Имя: Пароль:
1C
1С v8
Кому делать нечего? Спец УТ 2.8
,
0 ilpar
 
23.10.12
14:16
Произвольный запрос в качестве источника документа План продаж и внутреннего потребления.
Данные выбираются - за период.
Code
ВЫБРАТЬ
 ПланыПродажИВнутреннегоПотребленияОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
 СУММА(ПланыПродажИВнутреннегоПотребленияОбороты.КоличествоОборот) КАК Количество,
 ПланыПродажИВнутреннегоПотребленияОбороты.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
 ПланыПродажИВнутреннегоПотребленияОбороты.АналитикаУчетаНоменклатуры.Склад КАК Склад,
 ПланыПродажИВнутреннегоПотребленияОбороты.ПериодПлана
ИЗ
 РегистрНакопления.ПланыПродажИВнутреннегоПотребления.Обороты(, , , ПериодПлана = &П) КАК ПланыПродажИВнутреннегоПотребленияОбороты

СГРУППИРОВАТЬ ПО
 ПланыПродажИВнутреннегоПотребленияОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
 ПланыПродажИВнутреннегоПотребленияОбороты.АналитикаУчетаНоменклатуры.Характеристика,
 ПланыПродажИВнутреннегоПотребленияОбороты.АналитикаУчетаНоменклатуры.Склад,
 ПланыПродажИВнутреннегоПотребленияОбороты.ПериодПлана


В Функцию ВыбратьДанные Модуля Менеджера Справочника ИсточникиДанныхПланирования вставляю код в районе строки 117
Code
ПериодПлана = Перечисление.Периодичность.Месяц;
Если ПериодПлана <> Неопределено  Тогда    КомпоновщикНастроекКомпоновкиДанных.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("П",ПериодПлана);  
КонецЕсли;

В схеме компоновки данных мой запрос.
В КомпоновщикНастроекКомпоновкиДанных мои параметры.

Итог: Не работает - хотя теоритически должно. Кто подскажет причину?
1 ilpar
 
23.10.12
14:19
Code не принимаем во внимание, это конечно же опечатки )
2 Happy Bear
 
23.10.12
14:21
(0) зачем ПериодПлана = &П? Периодичность можно через перечисление выразить?
3 ilpar
 
23.10.12
14:25
Функция ВыбратьДанные(ПараметрыИсточникаДанных, ПользовательскиеНастройки, ДополнительныеПараметры) Экспорт  
   
   // Схема компоновки данных
   СхемаКомпоновкиДанных = ПараметрыИсточникаДанных.ИсточникДанныхПланирования.СхемаКомпоновкиДанных.Получить();
   
   // Загрузка настроек
   КомпоновщикНастроекКомпоновкиДанных = Новый КомпоновщикНастроекКомпоновкиДанных;
   КомпоновщикНастроекКомпоновкиДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
   КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
   
   Если ПользовательскиеНастройки <> Неопределено Тогда
       
       КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьПользовательскиеНастройки(ПользовательскиеНастройки);
       
   КонецЕсли;
   
   // Установка параметров данных
   ПараметрНачалоПериода = СхемаКомпоновкиДанных.Параметры.Найти("НачалоПериода");
   
   Если ПараметрНачалоПериода <> Неопределено И ДополнительныеПараметры.Свойство("Период") <> Неопределено Тогда
       
       КомпоновщикНастроекКомпоновкиДанных.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода", ДополнительныеПараметры.Период.ДатаНачала);
       
   КонецЕсли;
   
   ПараметрКонецПериода = СхемаКомпоновкиДанных.Параметры.Найти("КонецПериода");
   
   Если ПараметрКонецПериода <> Неопределено И ДополнительныеПараметры.Свойство("Период") <> Неопределено Тогда
       
       КомпоновщикНастроекКомпоновкиДанных.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода", ДополнительныеПараметры.Период.ДатаОкончания);
       
   КонецЕсли;
   
   ПараметрПериод = СхемаКомпоновкиДанных.Параметры.Найти("Период");
   
   Если ПараметрПериод <> Неопределено И ДополнительныеПараметры.Свойство("Дата") <> Неопределено Тогда
       
       КомпоновщикНастроекКомпоновкиДанных.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Период", ДополнительныеПараметры.Дата.Дата);
       
   КонецЕсли;
   //Добавлено    
       ПериодПлана = Перечисление.Периодичность.Месяц;
   Если ПериодПлана <> Неопределено  Тогда
       
       КомпоновщикНастроекКомпоновкиДанных.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("П",ПериодПлана);
       
   КонецЕсли;
   //Добавлено

   // Установка отбора по сегментам номенклатуры
   Если ОбщегоНазначенияУТКлиентСервер.ПолучитьПараметр(КомпоновщикНастроекКомпоновкиДанных.Настройки, "ИспользуетсяОтборПоСегментуНоменклатуры") <> Неопределено Тогда
       
       СегментыСервер.ВключитьОтборПоСегментуНоменклатурыВСКД(КомпоновщикНастроекКомпоновкиДанных);
       
   КонецЕсли;
   
   // Отключение вывода общих итогов
   КомпоновщикНастроекКомпоновкиДанных.Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("ГоризонтальноеРасположениеОбщихИтогов", РасположениеИтоговКомпоновкиДанных.Нет);
   КомпоновщикНастроекКомпоновкиДанных.Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("ВертикальноеРасположениеОбщихИтогов", РасположениеИтоговКомпоновкиДанных.Нет);
   
   // Компоновка макета
   КомпоновщикМакетаКомпоновкиДанных = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновкиДанных = КомпоновщикМакетаКомпоновкиДанных.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроекКомпоновкиДанных.ПолучитьНастройки(),,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
   
   // Инициализация процессора компоновки
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
   
   // Таблица значений, в которую будет получен результат
   Результат = Новый ТаблицаЗначений;
   
   // Получение результата
   ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
   ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений.УстановитьОбъект(Результат);
   ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений.Вывести(ПроцессорКомпоновкиДанных);
   
   Если ПараметрыИсточникаДанных.Исключать И Результат.Колонки.Найти("Количество") <> Неопределено Тогда
       
       Для каждого СтрокаРезультата из Результат Цикл
           
           СтрокаРезультата.Количество = -СтрокаРезультата.Количество;
           
       КонецЦикла;
       
   КонецЕсли;
   
   Возврат Результат;
   
КонецФункции
4 samozvanec
 
23.10.12
14:26
Code
ПериодПлана = "Месяц"; ?
5 ilpar
 
23.10.12
14:29
П, ПериодПлана - это точно перечисление.
6 ilpar
 
23.10.12
14:31
(5) ПериодПлана- Это 3 измерение регистра накопления ПланыПродаж и внутреннего потребления.
Тип - ПеречислениеСсылка.Периодичность
7 Happy Bear
 
23.10.12
14:32
(6) сравнение убери: Обороты(, , , &П)
8 Happy Bear
 
23.10.12
14:33
(7) не...
9 palpetrovich
 
23.10.12
14:36
(8) а че "не", я-бы плюсанул за (7)
10 hhhh
 
23.10.12
14:52
(6) не, вот так {ПериодПлана}
11 hhhh
 
23.10.12
14:55
(10)+ и менять отбор в ПроцессорКомпоновкиДанных. Компоновщик настроек не надо.
12 ilpar
 
23.10.12
15:02
Поборол.

Параметр &П порадовал
13 Happy Bear
 
23.10.12
15:39
(12) что сделал-то?
14 palpetrovich
 
23.10.12
15:44
(13) сравнение убрал наверное