Имя: Пароль:
1C
 
Как разрешить редактировать определенную строку в СКД прям в отчете
0 alekosansey
 
03.02.22
20:00
Добрый вечер подскажите как можно снят с защиты определенную строку для редактирования в скд
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
  РезультатСтруктура = Новый Структура;
    
  Поля = ДанныеРасшифровки.Элементы.Получить(Расшифровка).ПолучитьПоля() ;
  Если Поля[0].Поле = "ФактБюджет" или Поля[0].Поле = "ФактВнебюджет" Тогда
      РезультатСтруктура.Вставить(ПОля[0].Поле, Поля[0].Значение);
  КонецЕсли;
  
  ВывестиЗначениеГруппировки(ДанныеРасшифровки, Расшифровка, РезультатСтруктура);
  
  СтандартнаяОбработка = ЛОжь;
  
  
  ФормаОтчета = Отчеты.ЭК_БюджетРасшифровкаПоРегистраторам.ПолучитьФорму("ФормаОтчета");
  Если НЕ РезультатСтруктура.Свойство("Всего") и РезультатСтруктура.Количество()>1 Тогда
      Если РезультатСтруктура.Свойство("ФактБюджет") или РезультатСтруктура.Свойство("ФактВнеБюджет")  Тогда
          Если РезультатСтруктура.Свойство("Месяц") Тогда
              ФормаОтчета.НачалоПериодаПарам = НачалоМесяца(РезультатСтруктура.Месяц);
              ФормаОтчета.КонецПериодаПарам = КонецМесяца(РезультатСтруктура.Месяц);
          Иначе
              ФормаОтчета.НачалоПериодаПарам = НачалоМесяца(НачалоПериода);
              ФормаОтчета.КонецПериодаПарам = КонецМесяца(КонецПериода);
          КонецЕсли;
              
              Если ТипЗНЧ(РезультатСтруктура.БюджетДС) = Тип("СправочникСсылка.ЭкСтатьиДДСДляБюджетирования")Тогда
                  ФормаОтчета.СтатьяДДСДляБюджетированияПарам = РезультатСтруктура.БюджетДС;
                  ФормаОтчета.Открыть();
              ИначеЕсли ТипЗНЧ(РезультатСтруктура.БюджетДС) = Тип("СправочникСсылка.ЭкСтатьиДДСДляБюджетированияРасширенные") Тогда               
                  Запрос = Новый Запрос;
                  Запрос.Текст =
                  "ВЫБРАТЬ
                  |    ЭкСтатьиДДСДляБюджетирования.Ссылка как БюджетДС
                  |ИЗ
                  |    Справочник.ЭкСтатьиДДСДляБюджетирования КАК ЭкСтатьиДДСДляБюджетирования
                  |ГДЕ
                  |    ЭкСтатьиДДСДляБюджетирования.ОбобщеннаяСтатья = &ОбобщеннаяСтатья";
                  
                  Запрос.УстановитьПараметр("ОбобщеннаяСтатья", РезультатСтруктура.БюджетДС);
                  
                  РезультатЗапроса = Запрос.Выполнить();
                  
                  Если Не РезультатЗапроса.Пустой() Тогда
                      ФормаОтчета.СтатьяДДСДляБюджетированияПарам = РезультатЗапроса.Выгрузить();
                      ФормаОтчета.Открыть();
                  КонецЕсли;
              КонецЕсли;
      КонецеСЛИ;
  КонецЕсли;
  
  
КонецПроцедуры

Процедура ВывестиЗначениеГруппировки(п_Данные, ТекРасшифровка, РезультатСтруктура)
    
    МассивРодителей = п_Данные.Элементы[ТекРасшифровка].ПолучитьРодителей();
    
    Для Сч = 1 По МассивРодителей.Количество() Цикл
        
        ПолеРодитель = МассивРодителей[Сч-1];
        Если ТипЗнч(ПолеРодитель) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
            
            //Выведем значения текущей расшифровки
            Поле = ПолеРодитель.ПолучитьПоля()[0];
            //Сообщить("Поле: " + Поле.Поле + ", значение: " + Поле.Значение);
            РезультатСтруктура.Вставить(Поле.Поле, Поле.Значение);
            
        ИначеЕсли ТипЗнч(ПолеРодитель) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") тогда
            
            Попытка
                
                Поле = ПолеРодитель.ПолучитьРодителей()[0].ПолучитьПоля()[0] ;
                //Сообщить("Поле: " + Поле.Поле + ", значение: " + Поле.Значение);
                РезультатСтруктура.Вставить(Поле.Поле, Поле.Значение);
                
            Исключение
                
            КонецПопытки;
            
        КонецЕсли;
        
    КонецЦикла;
    
КонецПроцедуры
1 alekosansey
 
03.02.22
20:07
ну или хотябы текущей ячейки
Ошибка? Это не ошибка, это системная функция.