Код: Выделить всё
//**************************************************************************************
// Ейский, Перемещение выделенных записей в реестр "Возврат" 16072008
//**************************************************************************************
включить "OldProject";
переменные
ф: ФормаВвода;
сс, Мастер, Грид : СтатическиеДанные;
сетка : сеткаданных;
реестр, запрос : строка;
функция ВыполнитьЗапросКБазе(запрос : строка; сс : статическиеДанные) : целое;
переменные
фЗапрос : строка;
начало
результат := -1;
попытка
сс.Закрыть;
фЗапрос := "[PumpData] { " + запрос + " }";
сс.СоединитьБД;
сс.Запрос := фЗапрос;
сс.Открыть;
сс.ВНачало;
результат := сс.ЧислоЗаписей;
обязательно
конец;
конец;
начало
ф := ПолучитьФормуВвода;
сс := СоздатьСтатическиеДанные;
если ВыполнитьЗапросКБазе("select id from facialfinreestr where reestrnumber='Возврат'", сс)<1 тогда ВызватьОшибку("Нет реестра 'Возврат'");
сс.ВНачало;
реестр := сс.ПолеПоИмени("id").КакСтрока;
запрос := 'update facialfincaption set reestr_ref=' + реестр + ' where id in (0';
попытка
сетка:=ф.детализация.сетка ;
сетка.данные.Открыть;
сетка.данные.ЗапретитьПрорисовку;
если ф.АктивнаяДетализация = -1 тогда
начало // активна форма заголовков
Мастер := ф.Заголовки.Таблица;
если ф.ЕстьИзменения тогда
если Сообщение('Есть несохраненные данные. Сохранить?', Сообщение_Вопрос, Кнопка_Да+Кнопка_Нет) = Результат_Нет
тогда Выход
иначе ф.СохранитьИзменения;
если Мастер.ПолеПоИмени("ID").КакЦелое <> 0 тогда
начало
Грид:=ф.Заголовки.Сетка.ПолучитьВыделенныеСтроки;
Грид.ВНачало;
пока не Грид.Вконце делать // Пока не все выделеные строки скопированы
Начало
запрос := запрос + "," + Грид.ПолеПоИмени("ID").Какстрока;
Грид.Следующая;
конец;
запрос := запрос + ")";
ВыполнитьЗапрос(запрос);
конец;
конец;
обязательно
сетка.данные.РазрешитьПрорисовку;
конец;
конец;