Код: Выделить всё
<?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").КакЦелое <> 0) тогда
ТФДокИсх := Выделенные.ПолеПоИмени("FinType").КакЦелое;
Если (Выделенные.ПолеПоИмени("IsCLSChanged").КакЦелое=1) и (Выделенные.ПолеПоИмени("FinType").КакЦелое <> 0) тогда
ТФДокНов := Выделенные.ПолеПоИмени("FinType").КакЦелое;
Выделенные.Следующая;
конец;
Диалог.Очистить;
Диалог.Добавить("Тип финансирования исходного документа","ТипФинансированияИсх",1,"","0.00");
Диалог.Значение("ТипФинансированияИсх"):=ФорматироватьДробное("0.00", ТФДокИсх);
Диалог.Добавить("Тип финансирования нового документа","ТипФинансированияНов",1,"","0.00");
Диалог.Значение("ТипФинансированияНов"):=ФорматироватьДробное("0.00", ТФДокНов);
если не Диалог.Выполнить тогда выход;
ТФДокИсх := Диалог.Значение("ТипФинансированияИсх");
ТФДокНов := Диалог.Значение("ТипФинансированияНов");
Деталь.BeginUpdate;
СеткаДеталь.BeginUpdate;
попытка
Выделенные.ВНачало;
пока не Выделенные.ВКонце делать
начало
если Деталь.Locate("id", МассивИз(Выделенные.ПолеПоИмени("id").КакЦелое), 0) тогда
начало
Если (Деталь.ПолеПоИмени("IsCLSChanged").КакЦелое=0) и (Деталь.ПолеПоИмени("FinType").КакСтрока <> ТФДокИсх) тогда
начало
Деталь.Edit;
Деталь.ПолеПоИмени("FinType").КакСтрока := ТФДокИсх;
Деталь.Post;
конец;
Если (Деталь.ПолеПоИмени("IsCLSChanged").КакЦелое=1) и (Деталь.ПолеПоИмени("FinType").КакСтрока <> ТФДокНов) тогда
начало
Деталь.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>