Программирование в 1ССреда, 24.04.2024, 09:25

| RSS
Главная | Каталог статей
Меню сайта

Категории раздела
Основы [36]
Общие вопросы по 1С 7.7 [88]
1С: Бухгалтерия 7.7 [7]
1С: Торговля 7.7 [4]
1С:Зарплата и кадры 7.7 [1]
1С 7.7: Проблемы и решения [33]
УРБД [3]
Управление Распределенными Базами Данных
OLE [2]
Механизм обмена данными между базами 1С через OLE
SQL [1]
Сервер терминалов [1]
Интеграция с внешними приложениями [3]
FAQ по 1С v.7.7 [7]
FAQ по 1С v.7.7

Поиск

Поиск по сайту

Главная » Статьи » 1С v.7.7 » Общие вопросы по 1С 7.7

Маленькие хитрости при работе с Excel
Маленькие хитрости при работе с Excel
 
    Как при работе с Excel через OLE обойти предупреждения
    Excel требует подтверждений пользователя, например, при удалении листа из рабочей книги. При этом процесс обработки останавливается. Как сделать чтобы он не задавал таких вопросов?

Эксель = СоздатьОбъект(“Excel.Application”);
.....
Эксель.DisplayAlerts = 0;
.....// а здесь делаешь что-нибудь
Эксель.DisplayAlerts = 1;

    Формат числа при выгрузке в Excel
    При выгрузке данных в Excel числа типа 9237642437 отображаются 9,23764Е+11. Есть такая фича у Excel: если перед числом (или другим значением) поставить апостроф (’), эксель это понимает как то, что ему подсовывают текст, а апостроф отображаться не будет, т.е. напиши так:
’9237642437

    Для того, чтобы открыть файл *.mxl в Excel
    Необходимо внести в реестр следующую информацию:
REGEDIT
[HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Converters]
“Moxel”=“1С:Предприятие (*.mxl),...\\bin\\mxl2xl.dll, *.mxl”
где:
<...> это путь к каталогу 1С-Предприятия
<10.0> это номер версии Экселя – XP. Для 2000 это будет 9.0, 97 – 8.0, 95 – 7.0
 
    Как определить, когда закончились данные на листе при загрузке данных из Excel
SpecialCells(11) – “последняя” ячейка
Например, если нужен номер строки последней ячейки, то
LastRow=ExcelApp.Cells(1,1).SpecialCells(11).Row;

    Обработка ошибочных значений
    При обработке через OLE ячеек, содержащих ошибочные значения (#ДЕЛ/0!; #ЗНАЧ!; #ЧИСЛО! и т.п.) 1С зависает при обращении к свойству Value – не помогает даже конструкция ПопыткаИсключение. Обойти эту неприятность можно очень просто – проверять перед обращением к Value свойство Text:

СписокОшибокЁкселя=СоздатьОбъект(“СписокЗначений”);
СписокОшибокЁкселя.ДобавитьЗначение(”#ПУСТО!”);
СписокОшибокЁкселя.ДобавитьЗначение(”#ДЕЛ/0!”);
СписокОшибокЁкселя.ДобавитьЗначение(”#ЗНАЧ!”);
СписокОшибокЁкселя.ДобавитьЗначение(”#ССЫЛКА!”);
СписокОшибокЁкселя.ДобавитьЗначение(”#ИМЯ?”);
СписокОшибокЁкселя.ДобавитьЗначение(”#ЧИСЛО!”);
СписокОшибокЁкселя.ДобавитьЗначение(”#Н/Д”);

//Для англ. версии
СписокОшибокЁкселя.ДобавитьЗначение(”#NULL!”);
СписокОшибокЁкселя.ДобавитьЗначение(”#DIV/0!”);
СписокОшибокЁкселя.ДобавитьЗначение(”#VALUE!”);
СписокОшибокЁкселя.ДобавитьЗначение(”#REF!”);
СписокОшибокЁкселя.ДобавитьЗначение(”#NAME?”);
СписокОшибокЁкселя.ДобавитьЗначение(”#NUM!”);
СписокОшибокЁкселя.ДобавитьЗначение(”#N/A”);
//...
ТекстЯчейки=Ячейка.Text;
Если СписокОшибокЁкселя.НайтиЗначение(ТекстЯчейки)=0 Тогда
   Сообщить(Ячейка.Value);
Иначе
   Сообщить(ТекстЯчейки);
КонецЕсли;
Категория: Общие вопросы по 1С 7.7 | Добавил: Spacer (15.08.2008)
Просмотров: 10752 | Теги: Excel
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Статистика

    Copyright 1C:Programmer © 2024
    Бесплатный конструктор сайтов - uCoz