Имя: Пароль:
1C
1С v8
Не устанавливается параметр в макете компоновки данных
0 Xsenin
 
27.02.13
11:51
УТ 11 Документ "УстановкаЦен"
ИСпользуется Вид Цены заполняемый по данным ИБ По Макету СКД
"СебестоимостьИПроцентИнтеркампаниПредопределенный"
ФормаДокумента.Процедура "ВычислитьЗначенияЦеныПоДаннымИБ"
Устанавливается Параметр СКД "ДатаДокумента"
Так вот: В варианте от 1С не работает,хотя отладчик показывает, что параметр установлен, в моем варианте работает.
Может кто подскажет с чем это связано.

// Подготовка компоновщика макета компоновки данных, загрузка настроек
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
               
Если НастройкиКомпоновкиДанных <> Неопределено Тогда
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКомпоновкиДанных);
                   КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.ПроверятьДоступность);
               Иначе
                   
                   Если ЗначениеЗаполнено(СтрокаВидЦены.АдресНастроекСхемыКомпоновкиДанных) Тогда
                       НастройкиИзВидаЦены = ПолучитьИзВременногоХранилища(СтрокаВидЦены.АдресНастроекСхемыКомпоновкиДанных);
                       КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиИзВидаЦены);
                       КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.ПроверятьДоступность);
                   Иначе
                       КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
                   КонецЕсли;
                   
               КонецЕсли;
               
               
               // Заполнение структуры отчета и выбранных полей.
               КомпоновщикНастроек.Настройки.Структура.Очистить();
               
               ГруппировкаДетальныеЗаписи = КомпоновщикНастроек.Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
               ГруппировкаДетальныеЗаписи.Использование = Истина;
               
               КомпоновщикНастроек.Настройки.Выбор.Элементы.Очистить();
               ДобавитьВыбранноеПолеСКД(ГруппировкаДетальныеЗаписи, "Номенклатура");
               
               Если ИспользоватьХарактеристикиНоменклатуры Тогда
                   ДобавитьВыбранноеПолеСКД(ГруппировкаДетальныеЗаписи, "Характеристика");
               КонецЕсли;
               
               Если ИспользоватьУпаковкиНоменклатуры Тогда
                   ДобавитьВыбранноеПолеСКД(ГруппировкаДетальныеЗаписи, "Упаковка");
                   ДобавитьВыбранноеПолеСКД(ГруппировкаДетальныеЗаписи, "Коэффициент");
               КонецЕсли;
               
               ДобавитьВыбранноеПолеСКД(ГруппировкаДетальныеЗаписи, "Цена");
               ДобавитьВыбранноеПолеСКД(ГруппировкаДетальныеЗаписи, "Валюта");
               
               // Компоновка макета и исполнение запроса.
               КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
               СегментыСервер.ВключитьОтборПоСегментуНоменклатурыВСКД(КомпоновщикНастроек);
               МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"), Ложь);
               
               Параметр = МакетКомпоновки.ЗначенияПараметров.Найти("Основание");
               Если Параметр <> Неопределено Тогда
                   Параметр.Значение = Объект.ДокументОснование;
               КонецЕсли;
               Параметр = МакетКомпоновки.ЗначенияПараметров.Найти("ДатаДокумента");
               Если Параметр <> Неопределено Тогда
                   Параметр.Значение = ДатаДляЗапросаЦенНоменклатуры();
               КонецЕсли;
1 Xsenin
 
27.02.13
12:20
Я тут новичок, не знал что нельзя пост отредактировать.
Используется Параметр "Дата Документ" по нему получается срез последних по регистру сведений. В Варианте от 1С получаются данные на текущую дата. хотя в отладчике видно что параметр в макете установлен на нужную дату. В моем варианте все работает.
   // Подготовка компоновщика макета компоновки данных, загрузка настроек
   КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
   КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
   
   Если НастройкиКомпоновкиДанных <> Неопределено Тогда
       КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКомпоновкиДанных);
       КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.ПроверятьДоступность);
   Иначе
       
       Если ЗначениеЗаполнено(СтрокаВидЦены.АдресНастроекСхемыКомпоновкиДанных) Тогда
           НастройкиИзВидаЦены = ПолучитьИзВременногоХранилища(СтрокаВидЦены.АдресНастроекСхемыКомпоновкиДанных);
           КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиИзВидаЦены);
           КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.ПроверятьДоступность);
       Иначе
           КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
       КонецЕсли;
       
   КонецЕсли;
   
   
   // Заполнение структуры отчета и выбранных полей.
   КомпоновщикНастроек.Настройки.Структура.Очистить();
   
   ГруппировкаДетальныеЗаписи = КомпоновщикНастроек.Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
   ГруппировкаДетальныеЗаписи.Использование = Истина;
   
   КомпоновщикНастроек.Настройки.Выбор.Элементы.Очистить();
   ДобавитьВыбранноеПолеСКД(ГруппировкаДетальныеЗаписи, "Номенклатура");
   
   Если ИспользоватьХарактеристикиНоменклатуры Тогда
       ДобавитьВыбранноеПолеСКД(ГруппировкаДетальныеЗаписи, "Характеристика");
   КонецЕсли;
   
   Если ИспользоватьУпаковкиНоменклатуры Тогда
       ДобавитьВыбранноеПолеСКД(ГруппировкаДетальныеЗаписи, "Упаковка");
       ДобавитьВыбранноеПолеСКД(ГруппировкаДетальныеЗаписи, "Коэффициент");
   КонецЕсли;
   
   ДобавитьВыбранноеПолеСКД(ГруппировкаДетальныеЗаписи, "Цена");
   ДобавитьВыбранноеПолеСКД(ГруппировкаДетальныеЗаписи, "Валюта");
   
   //!!!!!!!!!!!!!!!МОЙ ВАРИАНТ. РАБОТАЕТ!!!!!!!!!
   Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Найти("ДатаДокумента");
   Если Параметр <> Неопределено Тогда
       Параметр.Значение = ДатаДляЗапросаЦенНоменклатуры();
   КонецЕсли;
   //!!!!!!!!!!!!!!!!!!!!!!!!
   
   // Компоновка макета и исполнение запроса.
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   СегментыСервер.ВключитьОтборПоСегментуНоменклатурыВСКД(КомпоновщикНастроек);
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"), Ложь);
   
   Параметр = МакетКомпоновки.ЗначенияПараметров.Найти("Основание");
   Если Параметр <> Неопределено Тогда
       Параметр.Значение = Объект.ДокументОснование;
   КонецЕсли;
   
   ///!!!!!!!!!!!!!!!ВАРИАНТ 1С.ВОТ ТАК НЕ РАБОТАЕТ!!!!!!!!!
   Параметр = МакетКомпоновки.ЗначенияПараметров.Найти("ДатаДокумента");
   Если Параметр <> Неопределено Тогда
       Параметр.Значение = ДатаДляЗапросаЦенНоменклатуры();
   КонецЕсли;