| 
    
        
     
     | 
    
    
  | 
ошибка при сохранении в Excel | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        warhero    
     19.06.07 
            ✎
    13:12 
 | 
         
        Юзаю следующую конструкцию : 
  
        Excel.Workbooks().SaveAs(ИмяФайла,-4143)...но на разных компьютерах работает по-разному - где-то вылетает, где-то отрабатывает отлично...Excel один и тот же - из Офиса 2003, релиз 1С-ны тоже - за нумером 25...права на сохранение в папку тоже одинаковы...в чем дело, может кто сталкивался ? Заранее спасибо !  | 
|||
| 
    1
    
        smaharbA    
     19.06.07 
            ✎
    13:27 
 | 
        
 
 Пишите правильно  | 
|||
| 
    2
    
        warhero    
     19.06.07 
            ✎
    13:30 
 | 
         
        хммм...а что именно у меня неправильно ? Я ж говорю, сия конструкция работает на одном компьютере, и не работает на другом...значит, дело не в синтаксисе...а в чем, вот вопрос !     
         | 
|||
| 
    3
    
        warhero    
     19.06.07 
            ✎
    13:36 
 | 
         
        up     
         | 
|||
| 
    4
    
        smaharbA    
     19.06.07 
            ✎
    13:37 
 | 
         
        (2) ты че такой упрямый ?
  
        у тебя просто открыта одна книга, вот и сохраняет, 2 книги или шаблон+книга уже вывалится Не хочешь не верь, но тута я самый умный по этим вопросам ))  | 
|||
| 
    5
    
        smaharbA    
     19.06.07 
            ✎
    13:38 
 | 
         
        хотя я передумал, в (0) вообще неверно     
         | 
|||
| 
    6
    
        smaharbA    
     19.06.07 
            ✎
    13:39 
 | 
         
        +
  
        Ексель.DisplayAlerts=0; ... Ексель.DisplayAlerts=-1;  | 
|||
| 
    7
    
        Heckfy    
     19.06.07 
            ✎
    13:40 
 | 
         
        (6) Давай уже и я отмечусь :)
  
        1С и Excel. I. Вступление II. Таблицы 1С и Excel. III. Получение данных из Excel. IV. Вывод данных в Excel. V. Часто используемые методы для чтения/установки значений в Excel. Вступление. Многие знают, что Excel гораздо старше 1С. На мой взгляд, это очень успешный продукт, и нареканий о нем я не слышал. Excel прост и универсален. Он способен выполнять не только простые арифметические операции, но и сложные вычисления, построение графиков и т.п. Знаю примеры, когда организации до перехода на 1С вели часть бухгалтерии в Excel. Многие и сейчас параллельно используют две программы. В этой статье рассмотрим способы обмена данными между 1С и Excel. Таблицы 1С и Excel. Многие пользователи для удобства работы сохраняют таблицы 1С (печатные формы) в формате Excel (*.xls). После чего в полученном файле делают различные группировки, сортировки, вычисления и т.п. Связано это с тем, что в таблицах 1С нет такого огромного функционала как в таблицах Excel. Но в версии 1С 8.0 есть нововведения, делающих работу с таблицами более комфортной. На сайте 1С (http://www.1c.ru/) есть полезная программка, которая дает возможность открывать таблицы 1С в Excel и сохранять лист Excel как таблицу 1С. Это пригодится в том случае, если таблицу 1С не сохранили в формате Excel, а на том компьютере, где нужно открыть эту таблицу не установлена 1С. Да и постоянно помнить о том, что сохранить таблицу 1С нужно в формате Excel, не будет необходимости. Полная информация о программе находится здесь. Скачать программу можно здесь (архив zip 682 739 байт). Замечание: В Excel разделителем дробной части считается символ ",". Поэтому перед сохранением таблицы 1С в формате Excel замените в ней другой разделитель (например ".") на ",". Иначе в Excel с этими числами не удастся произвести вычисления, или они вообще не будут отображаться как числа. Например, в таблице 1С "15.2" отобразится в Excel как "15.фев". Получение данных из Excel. Доступ из 1С к Excel производится посредством OLE. Например, код Попытка Эксель = СоздатьОбъект("Excel.Application"); Исключение Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!"); Возврат; КонецПопытки; позволит нам получить доступ через переменную "Эксель" к запущенному приложению Excel. А далее уже можно получить доступ к книге (файлу), листу и ячейке с данными. Далее примеры кода. Открытие книги (файла): Книга = Эксель.WorkBooks.Open(ПутьКФайлу); ПутьКФайлу - полный путь к файлу книги Excel. Выбор листа книги для работы с ним: Лист = Книга.WorkSheets(НомерЛиста); или Лист = Книга.WorkSheets(ИмяЛиста); НомерЛиста - номер листа в книге, ИмяЛиста - имя листа в книге. Получение значения ячейки листа: Значение = Лист.Cells(НомерСтроки, НомерКолонки).Value; НомерСтроки, НомерКолонки - номер строки и номер колонки, на пересечении которых находится ячейка. Важно: не забывайте поле выполнения нужных действий добавлять код Эксель.Quit(); , иначе запущенный процесс останется незавершенным и будет занимать память и процессор компьютера. Вывод данных в Excel. Для вывода (выгрузки) данных в Excel необходимо либо открыть существующую книгу, либо создать новую, и выбрать рабочий лист для вывода данных. Открытие существующей книги описано выше, а для создания новой книги нужно использовать следующий код: Попытка Эксель = СоздатьОбъект("Excel.Application"); Исключение Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!"); Возврат; КонецПопытки; Книга = Эксель.WorkBooks.Add(); Так как при создании книги в Excel автоматически создаются листы (Сервис->Параметры->Общие->Листов в новой книге), то нужно лишь произвести выбор листа, с которым будет вестись работа: Лист = Книга.WorkSheets(НомерЛиста); либо добавить в книгу новый лист, если необходимо: Лист = Книга.Sheets.Add(); Следующим шагом будет установка значения ячейки: Лист.Cells(НомерСтроки, НомерКолонки).Value = Значение; НомерСтроки, НомерКолонки - номер строки и номер колонки, на пересечении которых находится ячейка. И в конце нужно произвести запись созданной книги: Попытка Книга.SaveAs(ПутьКФайлу); Исключение Сообщить(ОписаниеОшибки()+" Файл не сохранен!"); Возврат; КонецПопытки; ПутьКФайлу - полный путь к файлу книги Excel (включая имя). Важно: не забывайте, что в имени файлов не должно содержаться символов \ / : * ? " > < |. Часто используемые методы для чтения/установки значений в Excel. Эксель = СоздатьОбъект("Excel.Application"); Получение доступа к приложению Excel. Эксель.Visible = Видимость; 0 - Excel не виден, 1 - виден. Книга = Эксель.WorkBooks.Add(); Создание новой книги (файла) Excel. Книга.SaveAs(ИмяФайла); Сохранение книги Excel. Лист = Книга.WorkSheets.Add(); Добавление нового листа в книгу. Книга = Эксель.WorkBooks.Open(ИмяФайла); Открытие существующей книги (файла) Excel. Лист = Книга.WorkSheets(НомерЛиста); Установка листа в качестве рабочего с номером НомерЛиста. Лист.Name = ИмяЛиста; Задание рабочему листу имени ИмяЛиста Лист.PageSetup.Zoom = Масштаб; Задание параметра страницы "Масштаб" (от 10 до 400). Лист.PageSetup.Orientation = Ориентация; Ориентация: 1 - книжная, 2 - альбомная. Лист.PageSetup.LeftMargin = Эксель.CentimetersToPoints(Сантиметры); Задание левой границы (в сантиметрах). Лист.PageSetup.TopMargin = Эксель.CentimetersToPoints(Сантиметры); Задание верхней границы (в сантиметрах). Лист.PageSetup.RightMargin = Эксель.CentimetersToPoints(Сантиметры); Задание правой границы (в сантиметрах). Лист.PageSetup.BottomMargin = Эксель.CentimetersToPoints(Сантиметры); Задание нижней границы (в сантиметрах). Лист.Columns(НомерКолонки).ColumnWidth = Ширина; Задание ширины колонке. Лист.Cells(НомерСтроки, НомерКолонки).Value = Значение; Ввод данных в ячейку. Лист.Cells(НомерСтроки,НомерКолонки).Font.Name = ИмяШрифта; Установка шрифта в ячейке. Лист.Cells(НомерСтроки,НомерКолонки).Font.Size = РазмерШрифта; Установка размера шрифта в ячейке. Лист.Cells(НомерСтроки,НомерКолонки).Font.Bold = Жирный; 1 - жирный шрифт, 0 - нормальный. Лист.Cells(НомерСтроки,НомерКолонки).Font.Italic = Курсив; 1 - наклонный шрифт, 0 - нормальный. Лист.Cells(НомерСтроки,НомерКолонки).Font.Underline = Подчеркнутый; 2 - подчеркнутый, 1 - нет. Лист.Cells(НомерСтроки, НомерКолонки).NumberFormat = Формат; Установка формата данных ячейки. Лист.Cells(НомерСтроки,НомерКолонки).Borders.Linestyle = ТипЛинии; Установка рамок ячейки. 1 - тонкая сплошная.  | 
|||
| 
    8
    
        warhero    
     19.06.07 
            ✎
    15:31 
 | 
         
        Я перезакрывал весь Excel на конкретном компутере (там, где не работает метод SaveAs), даже перегружал его...таким образом, оставил одну книгу Excel (лургих не открывал)...но все так, как и было...     
         | 
|||
| 
    9
    
        Папа Гапа    
     19.06.07 
            ✎
    15:36 
 | 
         
        (8) Перезакрывание всего Екселя не поможет. Код меняй. Тебе же Гуру smaharbA
  
        объяснил...  | 
|||
| 
    10
    
        warhero    
     19.06.07 
            ✎
    15:39 
 | 
         
        Да я уяснил уже это...я одного не могу понять - почему на одном работает компьютере, а на другом - нет ?! Везде закрыт Excel, то бишь нет нигде ни одной открытой рабочей книги...     
         | 
|||
| 
    11
    
        warhero    
     19.06.07 
            ✎
    15:43 
 | 
         
        Он сказал - при более чем одной открытой рабочей книге Excel возникает ошибка ! На одной машине все, что можно закрыто - все работает ! На другой - те же условия - ниффига не работает !     
         | 
|||
| 
    12
    
        AcaGost    
     19.06.07 
            ✎
    15:47 
 | 
         
        (10) А как создаешь файл Excel?     
         | 
|||
| 
    13
    
        warhero    
     19.06.07 
            ✎
    15:51 
 | 
         
        ОкноЕхс=СоздатьОбъект("Excel.Application"); 
  
        НовыеРабочиеКниги=ОкноЕхс.Workbooks; РабочаяКнига=ОкноЕхс.Workbooks.Open(ИмяФФ); ОкноЕхс.DisplayAlerts=0; ОкноЕхс.Workbooks(ВыбФ).SaveAs(ИмяФФ,-4143); ОкноЕхс.DisplayAlerts=1; вываливается на SaveAs...но не везде...  | 
|||
| 
    14
    
        warhero    
     19.06.07 
            ✎
    15:54 
 | 
         
        это не моя разработка...я готовую юзаю чью-то для перевода mxl в xls...все работало всегда как часы...а вот на одном из компьютеров у юзера такая вот проблема...у меня все нормально...не пойму, в чем дело...     
         | 
|||
| 
    15
    
        warhero    
     19.06.07 
            ✎
    15:59 
 | 
         
        кстати, а у меня работает и с еще одной открытой рабочей книгой...загадка...     
         | 
|||
| 
    16
    
        AcaGost    
     19.06.07 
            ✎
    16:01 
 | 
         
        (14) Закрой вначале "РабочаяКнига"     
         | 
|||
| 
    17
    
        smaharbA    
     19.06.07 
            ✎
    19:40 
 | 
         
        ОкноЕхс=СоздатьОбъект("Excel.Application"); 
  
        НовыеРабочиеКниги=ОкноЕхс.Workbooks; РабочаяКнига=ОкноЕхс.Workbooks.Open(ИмяФФ); ОкноЕхс.DisplayAlerts=0; РабочаяКнига.SaveAs(ИмяФФ,-4143); ОкноЕхс.DisplayAlerts=1;  | 
|||
| 
    18
    
        smaharbA    
     19.06.07 
            ✎
    19:41 
 | 
         
        Даже лучче так
  
        ОкноЕхс=СоздатьОбъект("Excel.Application"); НовыеРабочиеКниги=ОкноЕхс.Workbooks; РабочаяКнига=НовыеРабочиеКниги.Open(ИмяФФ); ОкноЕхс.DisplayAlerts=0; РабочаяКнига.SaveAs(ИмяФФ,-4143); ОкноЕхс.DisplayAlerts=1;  | 
|||
| 
    19
    
        warhero    
     20.06.07 
            ✎
    10:34 
 | 
         
        Попробую...но все же, почему при равных условиях отрабатывает по-разному ?     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |