ТФ у уведомлений

Все вопросы по АС Бюджет
Аватара пользователя
Val
зам. председателя совета директоров
зам. председателя совета директоров
Сообщения: 2029
Зарегистрирован: 09.06.2004 08:52
Откуда: Ейск
Контактная информация:

ТФ у уведомлений

Сообщение Val » 29.04.2009 09:30

Скрипт для простановки ТФ у уведомлений на уточнение. Это поле на интерфейсе не отображено, поэтому может понадобиться.

Код: Выделить всё

<?xml version="1.0" encoding="windows-1251"?>
<registry>
   <node path="%root%\Объекты\Интерфейсы\{2E7A6969-9C20-4CE4-9FA1-A18DE23226F4}\Действия\ВводТипаФинансирования">
      <value type="3" name="Заголовок">ВводТипаФинансирования</value>
      <value type="7" name="Код программы">// Простановка типа финансирования

включить "Project";
включить "\Библиотеки\ABLTools.lib";
включить "\Библиотеки\LibRU.lib";
включить "\макросы\отчеты\поддержкаОтчетов.abl";
включить 'Бюджет\Ресурсы\Макросы\Стандартные.abl';

константы                         
  nl = #13#10;

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

  если Деталь.RecordCount = 0 тогда
    ВызватьОшибку("Нет данных для принятия");
  если Деталь.UpdatesPending тогда
    ВызватьОшибку("Сначала сохраните изменения");   

    ПолучитьВыделенныеИлиТекущую(Выделенные, СеткаДеталь, Деталь);

    Выделенные.ВНачало;                       
    пока не Выделенные.ВКонце делать
    Начало
     Если (Выделенные.ПолеПоИмени("IsCLSChanged").КакЦелое=0) и (Выделенные.ПолеПоИмени("FinType").КакЦелое &lt;&gt; 0) тогда
       ТФДокИсх := Выделенные.ПолеПоИмени("FinType").КакЦелое;
     Если (Выделенные.ПолеПоИмени("IsCLSChanged").КакЦелое=1) и (Выделенные.ПолеПоИмени("FinType").КакЦелое &lt;&gt; 0) тогда 
       ТФДокНов := Выделенные.ПолеПоИмени("FinType").КакЦелое;     
     Выделенные.Следующая;     
    конец;       

 Диалог.Очистить;
 Диалог.Добавить("Тип финансирования исходного документа","ТипФинансированияИсх",1,"","0.00"); 
 Диалог.Значение("ТипФинансированияИсх"):=ФорматироватьДробное("0.00", ТФДокИсх);

 Диалог.Добавить("Тип финансирования нового документа","ТипФинансированияНов",1,"","0.00");
 Диалог.Значение("ТипФинансированияНов"):=ФорматироватьДробное("0.00", ТФДокНов);
 
 если не Диалог.Выполнить тогда выход;

    ТФДокИсх := Диалог.Значение("ТипФинансированияИсх");
    ТФДокНов := Диалог.Значение("ТипФинансированияНов");

    Деталь.BeginUpdate;
    СеткаДеталь.BeginUpdate;

  попытка

    Выделенные.ВНачало;
    пока не Выделенные.ВКонце делать
    начало
      если Деталь.Locate("id", МассивИз(Выделенные.ПолеПоИмени("id").КакЦелое), 0) тогда
         начало
         
          Если (Деталь.ПолеПоИмени("IsCLSChanged").КакЦелое=0) и (Деталь.ПолеПоИмени("FinType").КакСтрока &lt;&gt; ТФДокИсх) тогда
          начало
            Деталь.Edit;           
            Деталь.ПолеПоИмени("FinType").КакСтрока := ТФДокИсх;
            Деталь.Post;
          конец;
          Если (Деталь.ПолеПоИмени("IsCLSChanged").КакЦелое=1) и (Деталь.ПолеПоИмени("FinType").КакСтрока &lt;&gt; ТФДокНов) тогда
          начало
            Деталь.Edit;           
            Деталь.ПолеПоИмени("FinType").КакСтрока := ТФДокНов;
            Деталь.Post;           
          конец;
      конец;
      Выделенные.Следующая;     
    конец;
    Деталь.ApplyUpdates;
  обязательно
    Деталь.EndUpdate;
    СеткаДеталь.EndUpdate;
    Деталь.РазрешитьПрорисовку;       
  конец; 
 
конец.
</value>
      <param value="Код программы" type="1" name="AccessCount">37</param>
      <param value="Код программы" type="2" name="AccessDate">39926,4578157755</param>
      <param value="Код программы" type="3" name="Export">ZUBKOVEA\ЗубковЕА\28.04.2009 17:58:32</param>
   </node>
</registry>

Вернуться в «АС Бюджет»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость

cron