Имя: Пароль:
1C
 
Установить значение параметра
,
0 andreanochilentano
 
naïve
11.07.24
17:32
Добрый день. Надо установить значение параметра из модуля объекта отчета.

Нашел два варианта, утверждается, что оба рабочие. У меня же не работает ни один из них - просто ничего не происходит.

8мерка, управляемые формы, формы отчета нет.

Что я делаю не так?

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    ЭД = Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода");
    ЭД.Значение = ТекущаяДата();
    ЭД.Использование = Истина;

        Второй вариант - аналогично.
    
    Параметры = КомпоновщикНастроек.Настройки.ПараметрыДанных;
    Параметры.УстановитьЗначениеПараметра("НачалоПериода",  ТекущаяДата());
КонецПроцедуры

НачалоПериода - Это тип Дата.
1 andreanochilentano
 
naïve
11.07.24
17:34
переименовал отчет и все заработало. кеширование, значит.

а у пользователя так же будет кешироваться?
2 andreanochilentano
 
naïve
11.07.24
17:40
Забыл написать, что отчет - внешний. Один раз сработало, а дальше опять ничего не происходит. Как меняю имя отчета - начинает работать.

Как с этим быть?
3 Волшебник
 
11.07.24
20:13
Это всё очень подозрительно
4 andreanochilentano
 
naïve
12.07.24
09:45
(3) вы правы. я столько раз вчера разных вариантов пробовал, что все смешалось.

Как итог - у меня внешний отчет. Варианты

СтандартнаяОбработка = Ложь;
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    ЭД = Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода");
    ЭД.Значение = ТекущаяДата();
    ЭД.Использование = Истина;

и
    
    Параметры = КомпоновщикНастроек.Настройки.ПараметрыДанных;
    Параметры.УстановитьЗначениеПараметра("НачалоПериода",  ТекущаяДата());

не работают. Везде пишут, что должно работать, а по факту - нет.

создал новый внешний отчет, проверил - не работает.
5 Мультук
 
гуру
12.07.24
09:50
(4)

Приведи код ПриКомпоновкеРезультата полностью


P.S.

Копи-паст из рабочего отчёта

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;  
    
    
    Настройки = КомпоновщикНастроек.Настройки;
    Параметры = КомпоновщикНастроек.Настройки.ПараметрыДанных;

    Параметры.УстановитьЗначениеПараметра("НекийПараметр",     получитьНекийПараметр()  );

    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);
    
    ДокументРезультат.Очистить();
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);

КонецПроцедуры
6 andreanochilentano
 
naïve
12.07.24
09:58
(5)

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    //Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    //ЭД = Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода");
    //ЭД.Значение = ТекущаяДата();
    //ЭД.Использование = Истина;

    //ЭД = Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода");
    //ЭД.Значение = КонецМесяца(ТекущаяДата());
    //ЭД.Использование = Истина;                        
    //
    //ЭД = Настройки.ПараметрыДанных.Элементы.Найти("ПериодОтчета");
    //ЭД.Значение.ДатаНачала = ТекущаяДата();
    //ЭД.Использование = Истина;           
    
    
    Параметры = КомпоновщикНастроек.Настройки.ПараметрыДанных;
    Параметры.УстановитьЗначениеПараметра("КонецПериода",  ТекущаяДата());

КонецПроцедуры


скопипастил. наверху варианты, которые тоже пробовал. даже предприятие перезапустил - просто ничего не происходит.
7 Мультук
 
гуру
12.07.24
09:59
(6)

Отлично. Сравните мой код и свой.
Найдите разницу.
Удачи!
8 andreanochilentano
 
naïve
12.07.24
10:22
(7) спасибо, скопипастил ваш код, поставил свои значения. нет, не работает.

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

	СтандартнаяОбработка = Ложь;
	  
	Настройки = КомпоновщикНастроек.Настройки;
	Параметры = КомпоновщикНастроек.Настройки.ПараметрыДанных;

	Параметры.УстановитьЗначениеПараметра("КонецПериода", ТекущаяДата()  );	
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
	
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);
	
	ДокументРезультат.Очистить();
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	
	ПроцессорВывода.Вывести(ПроцессорКомпоновки); 
  
КонецПроцедуры
9 Мультук
 
гуру
12.07.24
10:58
(8)

Отчёт по ссылке.
Результат см рис

https://dropmefiles.com/mCeml
10 andreanochilentano
 
naïve
12.07.24
11:09
Спасибо за потраченное время. Я криво сформулировал, значит.

Я имел в виду другое :( Есть элемент на форме. Тип - Дата. И вот надо заполнить именно элемент формы. Чтобы пользователь видел уже предварительно заполненные элементы управления.

Отчет как правило будет запускаться с текущей даты, поэтому и есть желание заполнить элемент формы текущей датой.
11 DrZombi
 
гуру
12.07.24
11:46
(10)Если вы используете БСП. То так.

Модуль отчета. Формы нет, и не надо...



//Обязательно весь модуль обработки заключить в - ошибок будет меньше, на одну

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
//..........


#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли

ПрограммныйИнтерфейс


#Область ПрограммныйИнтерфейс

Функция СведенияОВнешнейОбработке() Экспорт
    
    ИмяОтчета = ЭтотОбъект.Метаданные().Имя;
    Синоним = ЭтотОбъект.Метаданные().Синоним;
    Версия =  "РС5423ВУК025"; //ЭтотОбъект.Метаданные().Комментарий; //Бессмысленный набор буковок и циферей, после 1 и 1000 модификаций различных обработок :)
    Синоним = ?(ЗначениеЗаполнено(Синоним),Синоним, ИмяОтчета);        
    
    //ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1"); (на память...)
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("1.0.0.0");
    
    ПараметрыРегистрации.Наименование     = Синоним;
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет();
    ПараметрыРегистрации.Версия = Версия;
    ПараметрыРегистрации.Информация = ЭтотОбъект.Метаданные().Комментарий;
    ПараметрыРегистрации.БезопасныйРежим = Ложь;
    
    //Документы...
    //ПараметрыРегистрации.Назначение.Добавить("Документ.АктСверкиВзаиморасчетов");
    
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    
    Представление = "Расчет оценочного обязательства по оплате отпусков из ЗУП";
    Идентификатор = "ИмяКоманды";
    Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, Истина, Идентификатор);
    
    // Сохраним таблицу команд в параметры регистрации обработки
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    
    Возврат ПараметрыРегистрации;
КонецФункции

Функция ПолучитьТаблицуКоманд()
    
    // Создадим пустую таблицу команд и колонки в ней
    Команды = Новый ТаблицаЗначений;
    
    // Как будет выглядеть описание печатной формы для пользователя
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    
    // Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    
    // Тут задается, как должна вызваться команда обработки
    // Возможные варианты:
    // - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
    // - ВызовКлиентскогоМетода - вызвать клиентскую экспортную процедуру из модуля формы обработки
    // - ВызовСерверногоМетода - вызвать серверную экспортную процедуру из модуля объекта обработки
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
    
    // Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    
    // Для печатной формы должен содержать строку ПечатьMXL
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    
    Возврат Команды;
    
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование = "ОткрытиеФормы", ПоказыватьОповещение = Ложь, Модификатор = "ПечатьMXL")
    
    // Добавляем команду в таблицу команд по переданному описанию.
    // Параметры и их значения можно посмотреть в функции ПолучитьТаблицуКоманд
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
    
КонецПроцедуры

Процедура ВыполнитьКоманду(ИмяКоманды, ОбъектыНазначения = Неопределено, ПараметрыВыполнения = Неопределено) Экспорт
    
    Если ИмяКоманды = "ИмяКоманды" Тогда
        //код вашей обработки по регламенту...
    КонецЕсли;
    
КонецПроцедуры

#КонецОбласти





ОбработчикиСобытий

#Область ОбработчикиСобытий

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
    
    //ЗначениеПараметра = НастройкиОтчета.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ИспользоватьШтатноеРасписание"));
    //Если ЗначениеПараметра <> Неопределено Тогда
    //    ЗначениеПараметра.Значение = ПолучитьФункциональнуюОпцию("ИспользоватьШтатноеРасписание");
    //КонецЕсли;
    
    
    //Параметры.
    ПользМодиф = Ложь; //Если нужно...
    
    
    ПараметрВключен = Ложь;
    //ЗначениеПериодНач = ПолучитьЗначениеПараметра(НастройкиОтчета,"ПериодНач",Неопределено,ПараметрВключен);
    ЗначениеПериод_      = ПолучитьЗначениеПараметра(НастройкиОтчета,"Период_",Неопределено,ПараметрВключен);
    
    ПараметрВключен = Ложь;
    //ЗначениеПериодКон = ПолучитьЗначениеПараметра(НастройкиОтчета,"ПериодКон",Неопределено,ПараметрВключен);
    
    ЗначениеПериодНач = ЗначениеПериод_.ДатаНачала;
    ЗначениеПериодКон = ЗначениеПериод_.ДатаОкончания;
    
    УстановитьПараметр(НастройкиОтчета,"ПериодНач",ЗначениеПериодНач,Истина,ПользМодиф,Неопределено);
    УстановитьПараметр(НастройкиОтчета,"ПериодКон",ЗначениеПериодКон,Истина,ПользМодиф,Неопределено);
    
    ЗначениеОснОтпуска = ОбщегоНазначенияКлиентСервер.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.Основной");
    УстановитьПараметр(НастройкиОтчета,"ОсновнойОтпуск",ЗначениеОснОтпуска,Истина,ПользМодиф,Неопределено);
    
    ПараметрВключен = Ложь;
    ЗначениеПараметра = ПолучитьЗначениеПараметра(НастройкиОтчета,"ДатаОтчета",Неопределено,ПараметрВключен);
    Если ЗначениеПараметра <> Неопределено Тогда
        ЗначениеПараметра = КонецДня(ЗначениеПериодКон);
        УстановитьПараметр(НастройкиОтчета,"ДатаОтчета",ЗначениеПараметра,Истина,ПользМодиф,Неопределено);
        
        ПериодОстатка = ЗначениеПараметра;
    КонецЕсли;
    
    ПараметрВключен = Ложь;
    ЗначениеПараметра = ПолучитьЗначениеПараметра(НастройкиОтчета,"ПериодКон_Вкл",Неопределено,ПараметрВключен);
    Если ПериодОстатка <> Неопределено И ЗначениеПараметра <> Неопределено Тогда
        ЗначениеПараметра = Новый Граница(ПериодОстатка,ВидГраницы.Включая);
        УстановитьПараметр(НастройкиОтчета,"ПериодКон_Вкл",ЗначениеПараметра,Истина,ПользМодиф,Неопределено);
    КонецЕсли;
    
    
    КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета);
    Если ПользМодиф = Истина Тогда
        ЗаполнитьПользовательскиеНастройки(НастройкиОтчета, КомпоновщикНастроек.ПользовательскиеНастройки);
        //КомпоновщикНастроек.ЗагрузитьПользовательскиеНастройки(КомпоновщикНастроек.ПользовательскиеНастройки);
        //КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("ПользовательскиеНастройкиМодифицированы",Истина);
    КонецЕсли;
    //------------------------
    
    
    //Получим сотрудников, для среднего заработка...
    пРасчетСреднегоПоЧасам = Ложь;
    пСпособРасчетаОтпуска = Перечисления.СпособыРасчетаНачислений.ОплатаОтпускаПоКалендарнымДням;
    
    ТЗ_Сотрудники = ПолучитьСотрудниковПоЗапросуРезерва(ЗначениеПериодНач,ЗначениеПериодКон);
    ТЗ_РезультатРасчета = ПолучитьРезультатРасчетаСреднегоЗаработка(ПериодОстатка,пРасчетСреднегоПоЧасам,пСпособРасчетаОтпуска, ТЗ_Сотрудники);
    
    НаборыДанных=новый структура;
    НаборыДанных.Вставить("СведенияОСреднем",ТЗ_РезультатРасчета);
    //...    
    
    СтандартнаяОбработка = Ложь;
    
    ДокументРезультат.Очистить();
    
    МакетКомпоновки = ЗарплатаКадрыОтчеты.МакетКомпоновкиДанных(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
    
    // Создадим и инициализируем процессор компоновки.
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, НаборыДанных, ДанныеРасшифровки, Истина);
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    
    // Обозначим начало вывода
    ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
    
    КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("ОтчетПустой", Ложь);
КонецПроцедуры

#КонецОбласти





СлужебныеПроцедурыИФункции_Среднего_Заработка_СКД

#Область СлужебныеПроцедурыИФункции_Среднего_Заработка_СКД

Функция ПолучитьТекстЗапроса_Резерва()
    
    ТекстЗапроса =
    "ВЫБРАТЬ
    |    ОценочныеОбязательстваПоСотрудникамОстатки.Резерв КАК Резерв,
    |    ОценочныеОбязательстваПоСотрудникамОстатки.Сотрудник КАК Сотрудник,
    |    ОценочныеОбязательстваПоСотрудникамОстатки.СтатьяФинансирования КАК СтатьяФинансирования,
    |    СУММА(ОценочныеОбязательстваПоСотрудникамОстатки.СуммаРезерваОстаток) КАК СуммаРезерва,
    |    СУММА(ОценочныеОбязательстваПоСотрудникамОстатки.СуммаРезерваСтраховыхВзносовОстаток) КАК СуммаСтраховыхВзносов,
    |    СУММА(ОценочныеОбязательстваПоСотрудникамОстатки.СуммаРезерваФССНесчастныеСлучаиОстаток) КАК СуммаФССНС,
    |    СУММА(ОценочныеОбязательстваПоСотрудникамОстатки.СуммаРезерваОстаток + ОценочныеОбязательстваПоСотрудникамОстатки.СуммаРезерваСтраховыхВзносовОстаток + ОценочныеОбязательстваПоСотрудникамОстатки.СуммаРезерваФССНесчастныеСлучаиОстаток) КАК СуммаВсего
    |ПОМЕСТИТЬ ВТ_РезервОстаткиНач
    |ИЗ
    |    РегистрНакопления.ОценочныеОбязательстваПоСотрудникам.Остатки(&ПериодНач, {(Организация = &Организация
    |                И Резерв = &Резерв)}) КАК ОценочныеОбязательстваПоСотрудникамОстатки
    |
    |СГРУППИРОВАТЬ ПО
    |    ОценочныеОбязательстваПоСотрудникамОстатки.Резерв,
    |    ОценочныеОбязательстваПоСотрудникамОстатки.Сотрудник,
    |    ОценочныеОбязательстваПоСотрудникамОстатки.СтатьяФинансирования
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ОценочныеОбязательстваПоСотрудникамОстатки.Резерв КАК Резерв,
    |    ОценочныеОбязательстваПоСотрудникамОстатки.Сотрудник КАК Сотрудник,
    |    ОценочныеОбязательстваПоСотрудникамОстатки.СтатьяФинансирования КАК СтатьяФинансирования,
    |    СУММА(ОценочныеОбязательстваПоСотрудникамОстатки.СуммаРезерваОстаток) КАК СуммаРезерва,
    |    СУММА(ОценочныеОбязательстваПоСотрудникамОстатки.СуммаРезерваСтраховыхВзносовОстаток) КАК СуммаСтраховыхВзносов,
    |    СУММА(ОценочныеОбязательстваПоСотрудникамОстатки.СуммаРезерваФССНесчастныеСлучаиОстаток) КАК СуммаФССНС,
    |    СУММА(ОценочныеОбязательстваПоСотрудникамОстатки.СуммаРезерваОстаток + ОценочныеОбязательстваПоСотрудникамОстатки.СуммаРезерваСтраховыхВзносовОстаток + ОценочныеОбязательстваПоСотрудникамОстатки.СуммаРезерваФССНесчастныеСлучаиОстаток) КАК СуммаВсего
    |ПОМЕСТИТЬ ВТ_РезервОстаткиКон
    |ИЗ
    |    РегистрНакопления.ОценочныеОбязательстваПоСотрудникам.Остатки(&ПериодКон_Вкл, {(Организация = &Организация
    |                И Резерв = &Резерв)}) КАК ОценочныеОбязательстваПоСотрудникамОстатки
    |
    |СГРУППИРОВАТЬ ПО
    |    ОценочныеОбязательстваПоСотрудникамОстатки.Резерв,
    |    ОценочныеОбязательстваПоСотрудникамОстатки.Сотрудник,
    |    ОценочныеОбязательстваПоСотрудникамОстатки.СтатьяФинансирования
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ОценочныеОбязательстваПоСотрудникамОбороты.Резерв КАК Резерв,
    |    ОценочныеОбязательстваПоСотрудникамОбороты.Сотрудник КАК Сотрудник,
    |    ОценочныеОбязательстваПоСотрудникамОбороты.СтатьяФинансирования КАК СтатьяФинансирования,
    |    ОценочныеОбязательстваПоСотрудникамОбороты.СуммаРезерваПриход КАК СуммаРезерваПриход,
    |    ОценочныеОбязательстваПоСотрудникамОбороты.СуммаРезерваСтраховыхВзносовПриход КАК СуммаСтраховыхВзносовПриход,
    |    ОценочныеОбязательстваПоСотрудникамОбороты.СуммаРезерваФССНесчастныеСлучаиПриход КАК СуммаФССНСПриход,
    |    ОценочныеОбязательстваПоСотрудникамОбороты.СуммаРезерваПриход + ОценочныеОбязательстваПоСотрудникамОбороты.СуммаРезерваСтраховыхВзносовПриход + ОценочныеОбязательстваПоСотрудникамОбороты.СуммаРезерваФССНесчастныеСлучаиПриход КАК СуммаВсегоПриход,
    |    ОценочныеОбязательстваПоСотрудникамОбороты.СуммаРезерваРасход КАК СуммаРезерваРасход,
    |    ОценочныеОбязательстваПоСотрудникамОбороты.СуммаРезерваСтраховыхВзносовРасход КАК СуммаСтраховыхВзносовРасход,
    |    ОценочныеОбязательстваПоСотрудникамОбороты.СуммаРезерваФССНесчастныеСлучаиРасход КАК СуммаФССНСРасход,
    |    ОценочныеОбязательстваПоСотрудникамОбороты.СуммаРезерваРасход + ОценочныеОбязательстваПоСотрудникамОбороты.СуммаРезерваСтраховыхВзносовРасход + ОценочныеОбязательстваПоСотрудникамОбороты.СуммаРезерваФССНесчастныеСлучаиРасход КАК СуммаВсегоРасход
    |ПОМЕСТИТЬ ВТ_РезервОбороты
    |ИЗ
    |    РегистрНакопления.ОценочныеОбязательстваПоСотрудникам.Обороты(&ПериодНач, &ПериодКон, Период, {(Организация = &Организация
    |                И Резерв = &Резерв)}) КАК ОценочныеОбязательстваПоСотрудникамОбороты
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    Внз.Сотрудник КАК Сотрудник,
    |    СУММА(ЕСТЬNULL(Внз.СуммаРезерва_Нач, 0)) КАК СуммаРезерва_Нач,
    |    СУММА(ЕСТЬNULL(Внз.СуммаСтраховыхВзносов_Нач, 0)) КАК СуммаСтраховыхВзносов_Нач,
    |    СУММА(ЕСТЬNULL(Внз.СуммаФССНС_Нач, 0)) КАК СуммаФССНС_Нач,
    |    СУММА(ЕСТЬNULL(Внз.СуммаВсего_Нач, 0)) КАК СуммаВсего_Нач,
    |    СУММА(ЕСТЬNULL(Внз.СуммаРезерва_Кон, 0)) КАК СуммаРезерва_Кон,
    |    СУММА(ЕСТЬNULL(Внз.СуммаСтраховыхВзносов_Кон, 0)) КАК СуммаСтраховыхВзносов_Кон,
    |    СУММА(ЕСТЬNULL(Внз.СуммаФССНС_Кон, 0)) КАК СуммаФССНС_Кон,
    |    СУММА(ЕСТЬNULL(Внз.СуммаВсего_Кон, 0)) КАК СуммаВсего_Кон,
    |    СУММА(ЕСТЬNULL(Внз.СуммаРезерваПриход, 0)) КАК СуммаРезерваПриход,
    |    СУММА(ЕСТЬNULL(Внз.СуммаСтраховыхВзносовПриход, 0)) КАК СуммаСтраховыхВзносовПриход,
    |    СУММА(ЕСТЬNULL(Внз.СуммаФССНСПриход, 0)) КАК СуммаФССНСПриход,
    |    СУММА(ЕСТЬNULL(Внз.СуммаВсегоПриход, 0)) КАК СуммаВсегоПриход,
    |    СУММА(ЕСТЬNULL(Внз.СуммаРезерваРасход, 0)) КАК СуммаРезерваРасход,
    |    СУММА(ЕСТЬNULL(Внз.СуммаСтраховыхВзносовРасход, 0)) КАК СуммаСтраховыхВзносовРасход,
    |    СУММА(ЕСТЬNULL(Внз.СуммаФССНСРасход, 0)) КАК СуммаФССНСРасход,
    |    СУММА(ЕСТЬNULL(Внз.СуммаВсегоРасход, 0)) КАК СуммаВсегоРасход
    |ИЗ
    |    (ВЫБРАТЬ
    |        ВТ_РезервОстаткиНач.Резерв КАК Резерв,
    |        ВТ_РезервОстаткиНач.Сотрудник КАК Сотрудник,
    |        ВТ_РезервОстаткиНач.СтатьяФинансирования КАК СтатьяФинансирования,
    |        ВТ_РезервОстаткиНач.СуммаРезерва КАК СуммаРезерва_Нач,
    |        ВТ_РезервОстаткиНач.СуммаСтраховыхВзносов КАК СуммаСтраховыхВзносов_Нач,
    |        ВТ_РезервОстаткиНач.СуммаФССНС КАК СуммаФССНС_Нач,
    |        ВТ_РезервОстаткиНач.СуммаВсего КАК СуммаВсего_Нач,
    |        NULL КАК СуммаРезерва_Кон,
    |        NULL КАК СуммаСтраховыхВзносов_Кон,
    |        NULL КАК СуммаФССНС_Кон,
    |        NULL КАК СуммаВсего_Кон,
    |        NULL КАК СуммаРезерваПриход,
    |        NULL КАК СуммаСтраховыхВзносовПриход,
    |        NULL КАК СуммаФССНСПриход,
    |        NULL КАК СуммаВсегоПриход,
    |        NULL КАК СуммаРезерваРасход,
    |        NULL КАК СуммаСтраховыхВзносовРасход,
    |        NULL КАК СуммаФССНСРасход,
    |        NULL КАК СуммаВсегоРасход
    |    ИЗ
    |        ВТ_РезервОстаткиНач КАК ВТ_РезервОстаткиНач
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |    ВЫБРАТЬ
    |        ВТ_РезервОстаткиКон.Резерв,
    |        ВТ_РезервОстаткиКон.Сотрудник,
    |        ВТ_РезервОстаткиКон.СтатьяФинансирования,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        ВТ_РезервОстаткиКон.СуммаРезерва,
    |        ВТ_РезервОстаткиКон.СуммаСтраховыхВзносов,
    |        ВТ_РезервОстаткиКон.СуммаФССНС,
    |        ВТ_РезервОстаткиКон.СуммаВсего,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL
    |    ИЗ
    |        ВТ_РезервОстаткиКон КАК ВТ_РезервОстаткиКон
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |    ВЫБРАТЬ
    |        ВТ_РезервОбороты.Резерв,
    |        ВТ_РезервОбороты.Сотрудник,
    |        ВТ_РезервОбороты.СтатьяФинансирования,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        ВТ_РезервОбороты.СуммаРезерваПриход,
    |        ВТ_РезервОбороты.СуммаСтраховыхВзносовПриход,
    |        ВТ_РезервОбороты.СуммаФССНСПриход,
    |        ВТ_РезервОбороты.СуммаВсегоПриход,
    |        ВТ_РезервОбороты.СуммаРезерваРасход,
    |        ВТ_РезервОбороты.СуммаСтраховыхВзносовРасход,
    |        ВТ_РезервОбороты.СуммаФССНСРасход,
    |        ВТ_РезервОбороты.СуммаВсегоРасход
    |    ИЗ
    |        ВТ_РезервОбороты КАК ВТ_РезервОбороты) КАК Внз
    |
    |СГРУППИРОВАТЬ ПО
    |    Внз.Сотрудник";
    
    Возврат ТекстЗапроса;
КонецФункции

Функция ПолучитьСотрудниковПоЗапросуРезерва(ЗначениеПериодНач,ЗначениеПериодКон)
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ПериодНач", ЗначениеПериодНач);
    Запрос.УстановитьПараметр("ПериодКон", ЗначениеПериодКон);
    
    ПериодКон_Вкл = Новый Граница(ЗначениеПериодКон,ВидГраницы.Включая);
    Запрос.УстановитьПараметр("ПериодКон_Вкл", ПериодКон_Вкл);
    Запрос.Текст = ПолучитьТекстЗапроса_Резерва();
    
    РезЗапроса = Запрос.Выполнить();
    
    Выборка = РезЗапроса.Выбрать();
    
    //...
    
    
    ИсхДан = УчетСреднегоЗаработка.ПустаяТаблицаИсходныхДанныхРасчетаОбщегоСреднегоЗаработка();
    //ИсхДан = Новый ТаблицаЗначений;
    //ИсхДан.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));
    //ИсхДан.Колонки.Добавить("ПорядокРасчета", Новый ОписаниеТипов("ПеречислениеСсылка.ПорядокРасчетаСреднегоЗаработкаОбщий"));
    //ИсхДан.Колонки.Добавить("ДатаНачалаСобытия", Новый ОписаниеТипов("Дата"));
    //ИсхДан.Колонки.Добавить("НачалоПериодаРасчетаСреднего", Новый ОписаниеТипов("Дата"));
    //ИсхДан.Колонки.Добавить("ОкончаниеПериодаРасчетаСреднего", Новый ОписаниеТипов("Дата"));
    
    пНаДату = ЗначениеПериодКон;
    пКоличествоМесяцев = 12;
    
    ДатаНачалаРасчета     = ДобавитьМесяц(НачалоМесяца(пНаДату),-пКоличествоМесяцев);
    ДатаОкончанияРасчета = НачалоДня(КонецМесяца(ДобавитьМесяц(пНаДату,-1)));
    
    Пока Выборка.Следующий() Цикл
        
        СтрокаДанных = Выборка;
        
        СтрТаб                        = ИсхДан.Добавить();
        СтрТаб.Сотрудник             = СтрокаДанных.Сотрудник;
        СтрТаб.ПорядокРасчета         = Перечисления.ПорядокРасчетаСреднегоЗаработкаОбщий.Постановление2010;
        СтрТаб.ДатаНачалаСобытия    = НачалоМесяца(пНаДату);
        
        пДатаНачалаРасчета      = ДатаНачалаРасчета;
        пДатаОкончанияРасчета = ДатаОкончанияРасчета;
        
        СтрТаб.НачалоПериодаРасчетаСреднего       = пДатаНачалаРасчета;
        СтрТаб.ОкончаниеПериодаРасчетаСреднего = пДатаОкончанияРасчета;
        
    КонецЦикла;
    
    Возврат ИсхДан;
КонецФункции


Функция ПолучитьПустуюТЗ_СведенияОСреднем()
    
    ТЗ_РезультатРасчета = Новый ТаблицаЗначений;
    ТЗ_РезультатРасчета.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));
    ТЗ_РезультатРасчета.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));
    ТЗ_РезультатРасчета.Колонки.Добавить("ГруппаКолонок", Новый ОписаниеТипов("Строка"));
    ТЗ_РезультатРасчета.Колонки.Добавить("ВидЗаработка", Новый ОписаниеТипов("ПеречислениеСсылка.УчетНачисленийВСреднемЗаработкеОбщий"));
    //ПеречислениеСсылка.УчетНачисленийВСреднемЗаработкеОбщий
    
    Возврат ТЗ_РезультатРасчета;
КонецФункции

Функция ПолучитьРезультатРасчетаСреднегоЗаработка(пНаДату,пРасчетСреднегоПоЧасам,пСпособРасчетаОтпуска, ТЗ_Сотрудники)
    
    пРезультатРасчета = ПолучитьПустуюТЗ_СведенияОСреднем();
    
    пТЗ_Сотрудники = ТЗ_Сотрудники.Скопировать();
    ДанныеДляРасчСредЗарЗаМесяц = УчетСреднегоЗаработка.ДанныеДляРасчетаОбщегоСреднегоЗаработкаСотрудников(пТЗ_Сотрудники);
    
    ДополнительныеПараметры = УчетСреднегоЗаработкаКлиентСервер.ДополнительныеПараметрыРасчетаСреднегоЗаработка();
    ДополнительныеПараметры.ДатаНачалаСобытия      = НачалоМесяца(пНаДату);
    ДополнительныеПараметры.НачалоПериода          = Дата(1,1,1);//НачалоПериодаРасчетаСреднего;
    ДополнительныеПараметры.ОкончаниеПериода      = Дата(1,1,1);//ОкончаниеПериодаРасчетаСреднего;
    ДополнительныеПараметры.ПоЧасам              = пРасчетСреднегоПоЧасам; //Ложь
    ДополнительныеПараметры.СпособРасчетаОтпуска = пСпособРасчетаОтпуска;  //Перечисления.СпособыРасчетаНачислений.ОплатаОтпускаПоКалендарнымДням;
    
    //ДополнительныеПараметры = УчетСреднегоЗаработкаКлиентСервер.ДополнительныеПараметрыРасчетаСреднегоЗаработка();
    //ДополнительныеПараметры.Индексации = ДанныеОбИндексации(Форма);
    //ДополнительныеПараметры.ДатаНачалаСобытия = Форма.ДатаНачалаСобытия;
    //ДополнительныеПараметры.НачалоПериода = Форма.НачалоПериодаРасчета;
    //ДополнительныеПараметры.ОкончаниеПериода = Форма.ОкончаниеПериодаРасчета;
    //ДополнительныеПараметры.ПоЧасам = Форма.ЧасовойСреднийЗаработок;
    
    
    Для Каждого СтрокаСотрудника Из ТЗ_Сотрудники Цикл
        ОтборСтрок = новый Структура("Сотрудник",СтрокаСотрудника.Сотрудник);
        
        ЗаработокСотрудника     = ДанныеДляРасчСредЗарЗаМесяц.ДанныеОНачислениях.найтиСтроки(ОтборСтрок);
        ВремяСотрудника         = ДанныеДляРасчСредЗарЗаМесяц.ДанныеОВремени.найтиСтроки(ОтборСтрок);
        ИндексацияСотрудника = ДанныеДляРасчСредЗарЗаМесяц.ДанныеОбИндексации.найтиСтроки(ОтборСтрок);
        
        ДополнительныеПараметры.Индексации = ИндексацияСотрудника;
        
        ДополнительныеПараметры.НачалоПериода          = СтрокаСотрудника.НачалоПериодаРасчетаСреднего;
        ДополнительныеПараметры.ОкончаниеПериода      = СтрокаСотрудника.ОкончаниеПериодаРасчетаСреднего;
        
        //ДанныеДляРасчетаСреднего = УчетСреднегоЗаработкаКлиентСервер.ДанныеДляРасчетаСреднегоЗаработка(ЗаработокСотрудника, ВремяСотрудника, ДополнительныеПараметры);
        //
        ////    ВсегоЗаработок
        //для каждого стр из ДанныеДляРасчетаСреднего.Заработок цикл
        //    НовСтрока = пРезультатРасчета.Добавить();
        //    НовСтрока.Сотрудник        = СтрокаСотрудника.Сотрудник;
        //    НовСтрока.Сумма            = стр.Учтено;
        //    НовСтрока.ГруппаКолонок    = "Учтен заработок";
        //    НовСтрока.ВидЗаработка    = стр.СоставнаяЧасть;
        //КонецЦикла;
        //
        ////    ВсегоВремя
        //ВсегоЗаработок = УчетСреднегоЗаработкаКлиентСервер.ИтогиПоПолю(ДанныеДляРасчетаСреднего.Заработок, "Учтено");    
        //ВсегоВремя       = УчетСреднегоЗаработкаКлиентСервер.ИтогиПоПолю(ДанныеДляРасчетаСреднего.ОтработанноеВремя, "Учтено");    
        //
        //НовСтрока = пРезультатРасчета.Добавить();
        //НовСтрока.Сотрудник        = СтрокаСотрудника.Сотрудник;
        //НовСтрока.Сумма            = ВсегоВремя;
        //НовСтрока.ГруппаКолонок    = "Учтено отработанного времени";
        
        //    СреднийЗаработок
        СреднийЗаработок = УчетСреднегоЗаработкаКлиентСервер.СреднийЗаработокОбщий(ЗаработокСотрудника, ВремяСотрудника, ДополнительныеПараметры);
        //СреднийЗаработок = УчетСреднегоЗаработкаКлиентСервер.СреднийЗаработок(ВсегоЗаработок,ВсегоВремя);
        
        НовСтрока = пРезультатРасчета.Добавить();
        НовСтрока.Сотрудник        = СтрокаСотрудника.Сотрудник;
        НовСтрока.Сумма            = СреднийЗаработок;
        НовСтрока.ГруппаКолонок    = "Средний заработок";
        
    КонецЦикла;
    
    //пРезультатРасчета.Свернуть("Сотрудник,Сумма,ГруппаКолонок,ВидЗаработка");
    
    Возврат пРезультатРасчета;
КонецФункции



#КонецОбласти





СлужебныеПроцедурыИФункции


#Область СлужебныеПроцедурыИФункции

Процедура ПередЗаполнениемОбщихИсточниковДанныхОтчета(НаборДанных) Экспорт
    
    //Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба") Тогда
    //    МодульГосударственнаяСлужба = ОбщегоНазначения.ОбщийМодуль("ГосударственнаяСлужба");
    //    Для Каждого Набор Из НаборДанных Цикл
    //        Если ТипЗнч(Набор) = Тип("НаборДанныхЗапросСхемыКомпоновкиДанных") Тогда
    //            МодульГосударственнаяСлужба.ДобавитьВТекстЗапросаПредставлениеВидДолжностиГосударственнойСлужбы(Набор.Запрос);
    //        КонецЕсли;
    //    КонецЦикла;
    //КонецЕсли;
    //
    //Для Каждого Набор Из НаборДанных Цикл
    //    Если ТипЗнч(Набор) = Тип("НаборДанныхЗапросСхемыКомпоновкиДанных") Тогда
    //        Набор.Запрос = СтрЗаменить(Набор.Запрос, "&ВидГосударственнойСлужбы", """");
    //    КонецЕсли;
    //КонецЦикла;

КонецПроцедуры

Процедура ИнициализироватьОтчет() Экспорт
    
    ПередЗаполнениемОбщихИсточниковДанныхОтчета(СхемаКомпоновкиДанных.НаборыДанных);
    ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеИсточникиДанныхОтчета(ЭтотОбъект);
    
КонецПроцедуры

// Для общей формы "Форма отчета" подсистемы "Варианты отчетов".
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
    
    Настройки.События.ПриСозданииНаСервере = Истина;
    Настройки.События.ПередЗагрузкойНастроекВКомпоновщик = Истина;
    Настройки.Вставить("РазрешеноМенятьВарианты",    Истина);
    Настройки.Вставить("РазрешеноИзменятьСтруктуру", Истина);
    
КонецПроцедуры

// Вызывается перед загрузкой новых настроек. Используется для изменения схемы компоновки.
//
Процедура ПередЗагрузкойНастроекВКомпоновщик(Контекст, КлючСхемы, КлючВарианта, НовыеНастройкиКД, НовыеПользовательскиеНастройкиКД) Экспорт
    
    Если КлючСхемы <> КлючВарианта Тогда
        
        ИнициализироватьОтчет();
        ОтчетыСервер.ПодключитьСхему(ЭтотОбъект, Контекст, СхемаКомпоновкиДанных, КлючСхемы);
        
        КлючСхемы = КлючВарианта;
        
    КонецЕсли;
    
КонецПроцедуры

// Вызывается в обработчике одноименного события формы отчета после выполнения кода формы.
//
// Параметры:
//   Форма - УправляемаяФорма - Форма отчета.
//   Отказ - Передается из параметров обработчика "как есть".
//   СтандартнаяОбработка - Передается из параметров обработчика "как есть".
//
// См. также:
//   "УправляемаяФорма.ПриСозданииНаСервере" в синтакс-помощнике.
//
Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
    
    ИнициализироватьОтчет();
    ЗначениеВДанныеФормы(ЭтотОбъект, Форма.Отчет);
    
КонецПроцедуры

#КонецОбласти




ДопФункцииПроцедуры

#Область ДопФункцииПроцедуры

Функция ПолучитьЗначениеПараметра(Настройки_Основные,ИмяПараметра,ЗначениПоУмолчанию,ПараметрВключен=Ложь,ПараметрНайден=Ложь)
    
    РезФункц = ЗначениПоУмолчанию;
    
    НайденПараметр = Настройки_Основные.ПараметрыДанных.Элементы.Найти(ИмяПараметра);
    Если НайденПараметр <> Неопределено Тогда
        РезФункц = НайденПараметр.Значение;
        ПараметрВключен = НайденПараметр.Использование;
        ПараметрНайден  = Истина;
    КонецЕсли;
    
    Возврат РезФункц;
КонецФункции

Процедура УстановитьПараметр(Настройки_Основные,ИмяПараметра,Знач ЗначениеПоУмолчанию, Знач УстановитьНовоеЗначение=Ложь,
                            пПользовательскиеНастройкиМодифицированы=Ложь, ВозвращаемоеЗначениеПараметра=Неопределено)
    
    НайденПараметр = Настройки_Основные.ПараметрыДанных.Элементы.Найти(ИмяПараметра);
    Если НайденПараметр = Неопределено Тогда
        ВозвращаемоеЗначениеПараметра = ЗначениеПоУмолчанию; //Не нашли, но вернем его...
        Возврат;
    КонецЕсли;
    
    пЗначение = НайденПараметр.Значение;
    Если УстановитьНовоеЗначение = Истина или Не ЗначениеЗаполнено(пЗначение) Тогда
        НайденПараметр.Значение = ЗначениеПоУмолчанию;
        пЗначение = ЗначениеПоУмолчанию;
    КонецЕсли;
    
    ВозвращаемоеЗначениеПараметра = пЗначение;
    
    НайденПараметр.Использование = Истина;
    
    //Для пользовательского интерфейса...
    ПользовательскийПараметр = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(НайденПараметр.ИдентификаторПользовательскойНастройки);
    Если ТипЗнч(ПользовательскийПараметр) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда
        ПользовательскийПараметр.Значение = пЗначение;
        ПользовательскийПараметр.Использование = Истина;
        
        пПользовательскиеНастройкиМодифицированы = Истина;
    КонецЕсли;
    
КонецПроцедуры

Процедура ЗаполнитьПользовательскиеНастройки(НовыеНастройкиКД, НовыеПользовательскиеНастройкиКД)
    
    Для Каждого СледПараметр Из НовыеНастройкиКД.ПараметрыДанных.Элементы Цикл
        Если Не ПустаяСтрока(СледПараметр.ИдентификаторПользовательскойНастройки) Тогда
            ПользовательскийПараметр = НовыеПользовательскиеНастройкиКД.Элементы.Найти(СледПараметр.ИдентификаторПользовательскойНастройки);
            Если ТипЗнч(ПользовательскийПараметр) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда
                ПользовательскийПараметр.Значение = СледПараметр.Значение;
                ПользовательскийПараметр.Использование = СледПараметр.Использование;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры

//................................

Процедура ДобавитьЗаполненноеЗначениеСписок(СпсЗнач, ЭлементОтбора)
    
    Если ЭлементОтбора = Неопределено или Не ЗначениеЗаполнено(ЭлементОтбора) Тогда
        Возврат;
    КонецЕсли;
    
    СпсЗнач.Добавить(ЭлементОтбора);
    
КонецПроцедуры

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

Процедура ЗаполнитьЗначениямиПараметр(Настройки,КомпоновщикНастроек, ИмяПараметра, пПользовательскиеНастройкиМодифицированы, пОбновитьЗначения)
    
    //Если ИмяПараметра = "Имяпараметра" Тогда
    //    
    //    ЗначениеПараметра = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ИмяПараметра"));
    //    Если ЗначениеПараметра <> Неопределено
    //        и (Не ЗначениеЗаполнено(ЗначениеПараметра.Значение) или НЕ ЗначениеПараметра.Использование или пОбновитьЗначения = Истина)
    //        Тогда
    //        пПользовательскиеНастройкиМодифицированы = Истина;
    //        
    //        СпсЗнач = Новый СписокЗначений;
    //        
    //        ЭлементОтбора = Справочники.НоменклатурныеГруппы.НайтиПоКоду("Код элемента");
    //        ДобавитьЗаполненноеЗначениеСписок(СпсЗнач, ЭлементОтбора);
    //        
    //        ЗначениеПараметра.Значение = СпсЗнач;
    //        ЗначениеПараметра.Использование = Истина;
    //        
    //        ПользовательскийПараметр = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ЗначениеПараметра.ИдентификаторПользовательскойНастройки);
    //        Если ТипЗнч(ПользовательскийПараметр) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда
    //            ПользовательскийПараметр.Значение = ЗначениеПараметра.Значение;
    //        КонецЕсли;
    //    КонецЕсли;
    //    
    //    
    //КонецЕсли;
    
КонецПроцедуры

#КонецОбласти







12 DrZombi
 
гуру
12.07.24
11:46
+(10) Ваш раздел "СлужебныеПроцедурыИФункции"
13 andreanochilentano
 
naïve
12.07.24
12:52
Ура, работает. Для потомков:

Процедура ПриОбновленииСоставаПользовательскихНастроекНаСервере(СтандартнаяОбработка)
    
    Настройки = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ПериодОтчета"));  
    Настройки.Значение.Вариант =ВариантСтандартногоПериода.ПроизвольныйПериод;
    Настройки.Значение.ДатаНачала = ТекущаяДата();
14 DrZombi
 
гуру
12.07.24
13:17
(13) для вас.

В БСП этот список параметров куда ширше, но его надо искать в основной конфигурации, через поиск.

И вы поймете, что кроличья нора куда глубже :)



// Для общей формы "Форма отчета" подсистемы "Варианты отчетов".
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
    
    Настройки.События.ПриСозданииНаСервере = Истина;
    Настройки.События.ПередЗагрузкойНастроекВКомпоновщик = Истина;
    Настройки.Вставить("РазрешеноМенятьВарианты",    Истина);
    Настройки.Вставить("РазрешеноИзменятьСтруктуру", Истина);
    
КонецПроцедуры



15 andreanochilentano
 
naïve
12.07.24
14:21
(14) до БСП пока не дошел, пока с СКД разбираюсь ) Спасибо )