Поиск по этому блогу

21 августа 2015 г.

Запрос по удалению "зеркальных" строк из таблицы.

ВЫБРАТЬ
"Вася" КАК Ч1,
"Маша" КАК Ч2
ПОМЕСТИТЬ ВТ_ПарыСДублями

ОБЪЕДИНИТЬ
ВЫБРАТЬ
"Маша",
"Вася"

ОБЪЕДИНИТЬ
ВЫБРАТЬ
"Вася",
"Даша"

ОБЪЕДИНИТЬ
ВЫБРАТЬ
"Даша",
"Вася"

ОБЪЕДИНИТЬ
ВЫБРАТЬ
"Вася",
"Оля"

ОБЪЕДИНИТЬ
ВЫБРАТЬ
"Оля",
"Вася"

ОБЪЕДИНИТЬ
ВЫБРАТЬ
"Вася",
"Зина"

ОБЪЕДИНИТЬ
ВЫБРАТЬ
"Зина",
"Вася"

ОБЪЕДИНИТЬ
ВЫБРАТЬ
"Вася",
"Рита"

ОБЪЕДИНИТЬ
ВЫБРАТЬ
"Рита",
"Вася"

ОБЪЕДИНИТЬ
ВЫБРАТЬ
"Ира",
"Петя"

ОБЪЕДИНИТЬ
ВЫБРАТЬ
"Петя",
"Ира"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ВТ_ПарыСДублями.Ч1,
ВТ_ПарыСДублями.Ч2
ИЗ
ВТ_ПарыСДублями КАК ВТ_ПарыСДублями
внутреннее СОЕДИНЕНИЕ ВТ_ПарыСДублями КАК ВТ_ПарыСДублями1
ПО ВТ_ПарыСДублями.Ч1 = ВТ_ПарыСДублями1.Ч1
И ВТ_ПарыСДублями.Ч1 > ВТ_ПарыСДублями1.Ч2

10 августа 2015 г.

Алгоритм корректного открытия на чтение и закрытия файла Эксель через COM-объект

// Пример алгоритма работы с файлом Экселя, 
// Обход частой  проблемы зависания процесса Экселя.

Попытка

       Excel          = Новый COMОбъект("Excel.Application");
       ExcelФайл = Excel.WorkBooks.Open(Объект.ПолноеИмяФайлаДанных);
       
Состояние("Обработка файла Microsoft Excel...");
       ExcelЛист = Excel.Sheets(НомерЛистаExcel);

Исключение

       ТекстОшибки = "Ошибка. Возможно неверно указан номер листа книги Excel.";
       ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
       Возврат Ложь;

КонецПопытки;

ActiveCell      = Excel.ActiveCell.SpecialCells(xlLastCell);
RowCount      = ActiveCell.Row;
ColumnCount = ActiveCell.Column;

// Файл открыли на чтение.
// Обрабатываем его данные.... ... ... ... ...
// И корректно зарываем (так чтобы он не пытался выводить подтверждения сохранения/закрытия).

Excel.DisplayAlerts = 0;
ExcelФайл.Close();
Excel.DisplayAlerts = 1;
Excel.Application.Quit();