<?xml version="1.0" encoding="windows-1251"?>
<registry>
	<node path="%root%\Объекты\Контроллеры\РеестрПоправок\ПоправкиКЗакону">
		<value type="7" name="КонтрольСводаБАНаНеотрицательность">включить "\библиотеки\libru.lib";
включить "\библиотеки\Layers.lib";
включить "\библиотеки\Base.lib";
включить "\библиотеки\States.lib";
включить "\библиотеки\Reports.lib";
включить "\библиотеки\Ops.lib";
включить "\Макросы\Слои\ПоддержкаКонтроллеров.abl";
включить "\Макросы\Слои\ПоддержкаСлойницы.abl";
включить "\Макросы\Вспомогательные.abl";
включить "\Макросы\Слои\ПоддержкаКонтроля.abl";

КонтрольСводаБАНаНеотрицательность(Параметры: IVariables);

   функция СброситьРезультатыКонтроляВДокумент(ДокКонтекст: КонтекстДокумента; Документ: Сущность; КонтрольныйСлой: ILayer);
   переменные
     ссОшибка: СтатическиеДанные;
   начало
     ссОшибка := СоздатьСтатическиеДанные;
     ссОшибка.ДобавитьЦелоеПоле('ControlResult');
     ссОшибка.ДобавитьСтроковоеПоле('ControlMessage', 255);
     ссОшибка.Открыть;
     ссОшибка.Группировать(КонтрольныйСлой.LayerData, 'default=false;ControlResult=Max(ControlResult);ControlMessage=sum(ControlMessage)');
     если ссОшибка.Поле("ControlResult").КакЦелое = 3 тогда
     начало
       ДокКонтекст.ДобавитьОшибку(ссОшибка.Поле('ControlMessage').КакСтрока, 0, 1);
       УстановитьРезультатКонтроляВДокументе(Документ, 1, ссОшибка.Поле('ControlMessage').КакСтрока);
     конец;
   конец;

переменные
  Документы    : Список;
  ИтераторПоДок: ИтераторСписка; 
  ДокКонтекст  : КонтекстДокумента;
  Документ     : Сущность;
  ПараметрыКонтроллера: IVariables;
  СлойКонтроля: ILayer;
  ДанныеКонтроля: СтатическиеДанные;
  КонтролируемыйСлой: ILayer;
  КонтролируемыеДанные: СтатическиеДанные;
  FilterBak: строка;
  FilteredBak: целое;
начало
  ПроверитьНаличиеПараметровДляКонтроллераВУзле(РабочийУзел, Параметры, 'Документы');
  Документы := Параметры.Значение('Документы');

  ИтераторПоДок := Документы.ИтераторСписка;
  СлойКонтроля := ПолучитьМенеджерСлоев.CreateLayerByAlias('ПланированиеБА.ФормыВвода.СводнаяФорма');
  ДанныеКонтроля := СлойКонтроля.LayerData;    
  
  пока ИтераторПоДок.ЕстьСледующий делать
  начало
    ДокКонтекст := ИтераторПоДок.Следующий;
    Документ := ДокКонтекст.ПолучитьДокумент;
    
    для Документ.Источник.GetDetail("Операции") делать
      для СтатическиеДанные(.LayerData) делать
      начало
        .BeginUpdates;
        FilterBak := .Filter;
        FilteredBak := .Filtered;
        попытка
          .Filter := "Слой_Алиас = 'ПланированиеБА.ФормыВвода.СводнаяФорма'";
          .Filtered := да; 
          если .RecordCount &gt; 0 тогда
          начало
            ПараметрыКонтроллера := СоздатьКоллекцию;
            для ПараметрыКонтроллера делать
            начало
              .Values("ИмяТочкиПодключения") := "ПередачаПараметров"; 
              .Values("Объект") := СлойКонтроля; 
              .Values("ТипКонтроллера") := "РеестрПоправок.ПоправкиКЗакону.ПередачаПараметровДокачкиДанных";
              .Values("МаппингПараметров") := "ВариантПрисвоения&lt;Параметры:ОписаниеПередачи.ВариантПрисвоения,ПараметрыИсточника&lt;Параметры:ОписаниеПередачи.ПараметрыИсточника,ПараметрыПриемника&lt;Параметры:ОписаниеПередачи.ПараметрыПриемника";
            конец;
            ВызватьКонтроллер("Платформа.ПодключитьКонтроллер", ПараметрыКонтроллера);
              
            СлойКонтроля.OpenEmpty;
            .First;
            пока не (.Eof) делать
            начало
              КонтролируемыйСлой := .GetDetail("ОписаниеОперации");
              КонтролируемыеДанные := КонтролируемыйСлой.LayerData;
              ДанныеКонтроля.PumpData(КонтролируемыеДанные, "");              
              .Next;
            конец; 
             
            для СлойКонтроля.ContextParams делать
            начало  
              .Values('$Layer.FacialAccCls') := Документ.Атрибут("FacialAccCls");
              .Values('$Layer.RejectDate') := 0;
              .Values('$Layer.RejectDate.Ограничение') := "NULL";
              .Values('$Layer.ID') := ПолучитьСписокЗначенийПоля(СлойКонтроля.LayerData, "ID", ",");
              .Values('$Layer.ID.Ограничение') := "NOT IN";
              .Values('$Layer.LayerVersion') := КонтролируемыйСлой.ContextParams.Values("$Version.ВерсияДанных");
              .Values('$Layer.LayerVersion.Ограничение') := "=";
              .Values('$Version.Сборка') := СтатическиеДанные(Документ.Источник.LayerData).Поле("Сборка_Код").КакЦелое;
            конец;  
            
            СлойКонтроля.ControlLayerData('ПланированиеБА.ФормыВвода.КонтрольСводнойФормыНаНеотриц', да); 
            СброситьРезультатыКонтроляВДокумент(ДокКонтекст, Документ, СлойКонтроля);
          конец;
        обязательно
          .EndUpdates;
          .Filter := FilterBak;
          .Filtered := FilteredBak;
        конец;
      конец;
  конец;      
конец.

</value>
		<param value="КонтрольСводаБАНаНеотрицательность" type="1" name="AccessCount">351</param>
		<param value="КонтрольСводаБАНаНеотрицательность" type="2" name="AccessDate">41843,6395284144</param>
		<param value="КонтрольСводаБАНаНеотрицательность" type="3" name="installversion">1.0</param>
	</node>
</registry>
