Можно ли при таком сохранении в эксель:

ТабДокумент.Записать(Путь+"\"+ИмяФайла, ТипФайлаТабличногоДокумента.XLS);

записать туда ещё каким-то образом эксель-формулу?
---
проблема с записью решена переносом процедуры записи на клиент
---
записать туда ещё каким-то образом эксель-формулу? Возможно... если сумеете каким-то образом вписать эту формулу непосредственно в табличный документ 1С.
---
каким?
---
https://infostart.ru/public/869535/
---
посмотрите внимательнее предложенный там код. Это чистой воды OLE
Эксель = Новый COMОбъект("Excel.Application");
---
это ответ на ваш вопрос каким, образом вписать формулу в таб док
---
это не мой вопрос. Сохранением ТабДока средствами 1С в xls формулы невозможно перенести. Они хранятся в отдельных свойствах, которые никак не заполняются.
---
каким? Ну, это вам лучше знать - мне такие методы неизвестны.

P.S. И не только мне: https://forum.mista.ru/topic.php?id=819217
---
нет. Только через OLE
---
Открыть после записи зип.архив, распаковать и дописать в XML нужные формулы не пробовали?
---
старый формат XLS это ж вроде не XML
---
Вообще пытался сделать по-простому - записываю формулу прямиком в макет, и сохраняю потом ТабДок как эксель
Но, в этом случае формула начинает работать только после двойного клика на ячейке эксель
видимо, таким способом это никак не обойти

   ТабДокумент.Записать(Путь+"\"+ИмяФайла, ТипФайлаТабличногоДокумента.XLS);
---
Эксель = Новый COMОбъект("Excel.Application");
        Эксель.Application.DisplayAlerts = False;
        Эксель.Application.ReferenceStyle = "xlR1C1";
        Эксель.Application.ErrorCheckingOptions.InconsistentFormula = Ложь;

        Книга = Эксель.Workbooks.Open(ИмяФайла);

        Лист = Книга.WorkSheets("Staff");
  Книга.Sheets("Staff").Select();

        ВсегоКолонок = ТабДок.ШиринаТаблицы;
        ВсегоСтрок = ТабДок.ВысотаТаблицы - 7;//7 -высота подвала

        МассивКом = Лист.Range(Лист.Cells(1, 1), Лист.Cells(ВсегоСтрок, ВсегоКолонок)).FormulaR1C1;
        Для Ном = 1 По МассивКом.GetLength(0) Цикл
            Для Ном2 = 1 По МассивКом.GetLength(1) Цикл
                Значение = МассивКом.GetValue(Ном,Ном2);

                Если НЕ Найти(Значение, "") = 0 Тогда
                    МассивКом.SetValue(Ном, Ном2, СтрЗаменить(Значение, "", ""));
                КонецЕсли;

    //Если СтрНачинаетсяС(Значение, "=") Тогда //Формулам зададим формат...
    // Ячейка = Лист.Cells(Ном2,Ном);
    // Ячейка.NumberFormat = "# ##0,00;-# ##0,00;""""";
    //КонецЕсли;

            КонецЦикла;
        КонецЦикла;
        Лист.Range(Лист.Cells(1, 1), Лист.Cells(ВсегоСтрок, ВсегоКолонок)).FormulaR1C1 = МассивКом;
---
я правильно понимаю, в этом примере открывается сущетсвующая книга?

не отрабатывает Книга = Эксель.Workbooks.Open(ИмяФайла);
---
коллеги, по-прежнему нужны ваши советы

ранее были проблемы с правами USR1CV8 на запуск компоненты эксель. Права раздали, ошибка сменилась.

сейчас я использую следующий код:

```1c
    #Область ФормированиеExcel

    ПутьКФайлу = Путь+"\"+ИмяФайла;
    //ПутьКФайлу = "D:\test\qwe.xls";
    Эксель = Новый COMОбъект("Excel.Application");
    Эксель.Application.DisplayAlerts = False;
    Эксель.Application.ReferenceStyle = "xlR1C1";
    Эксель.Application.ErrorCheckingOptions.InconsistentFormula = Ложь;

    //Книга = Эксель.WorkBooks.Add();

    Книга = Эксель.Workbooks.Open(ПутьКФайлу);

    Лист = Книга.WorkSheets(1);

    ВсегоКолонок = ТабДокумент.ШиринаТаблицы;
    ВсегоСтрок = ТабДокумент.ВысотаТаблицы;

    МассивКом = Лист.Range(Лист.Cells(1, 1), Лист.Cells(ВсегоСтрок, ВсегоКолонок)).FormulaR1C1;
    Для Ном = 1 По МассивКом.GetLength(0) Цикл
    Для Ном2 = 1 По МассивКом.GetLength(1) Цикл
    Значение = МассивКом.GetValue(Ном,Ном2);

    Если НЕ Найти(Значение, ") = 0 Тогда
    МассивКом.SetValue(Ном, Ном2, СтрЗаменить(Значение, ", "));
    КонецЕсли;

    Если СтрНачинаетсяС(Значение, "=") Тогда //Формулам зададим формат...
    Ячейка = Лист.Cells(Ном2,Ном);
    Ячейка.NumberFormat = "# ##0,00;-# ##0,00;""";
    КонецЕсли;

    КонецЦикла;
    КонецЦикла;
    Лист.Range(Лист.Cells(1, 1), Лист.Cells(ВсегоСтрок, ВсегоКолонок)).FormulaR1C1 = МассивКом; //Если тут ошибка, то скорее всего косяк в формуле

    Книга.SaveAs(ПутьКФайлу);

    Эксель.Quit();
    Эксель = Неопределено;

    #КонецОбласти
```

возникает ошибка про отсутствие файла или нехватку прав.

я правильно понимаю, что в приведенном коде откроется существующая книга или (в отсутствие) создастся новая?
также был вариант записи ТабДок.Записать(xls) - с ним не удаётся записать формулы.
также пробую сначала ТабДок.Записать(xls), а затем открыть его через com. ошибка аналогична.
буду очень признателен за помощь
---
не используйте сетевой путь к файлу. Скопируйте файл на сервер (программно) и открывайте там.
---
ранее были проблемы с правами USR1CV8 на запуск компоненты эксель. Права раздали, ошибка сменилась. Все действия из вот этой статьи выполнили?
также пробую сначала ТабДок.Записать(xls), а затем открыть его через com. ошибка аналогична. Значит, дело не в отсутствии файла или пути к нему.
---
проблема с записью решена переносом процедуры записи на клиент
---
проблема с записью решена переносом процедуры записи на клиент Даже неудобно спрашивать: а на сервере Excel вообще установлен? ;)
---
осталась проблема с одной формулой - =СУММ(R[-16]C[3]:R[-1]C[3])
она формируется в зависимости от числа строк (16)
и данная формула не "встаёт" в эксель, вместо неё встает сначала ?ИМЯ , а после двойного щелчка уже превращается в формулу. почему так?
---
она формируется в зависимости от числа строк (16) А можно увидеть код, которым она формируется?
---
"=СУММ(R[-"+строка(НомерПрайс)+"]C[3]:R[-1]C[3])"

также пробовал [ и ] заменить на символ(91) и 93 соответственно, в данном случае результата не даёт
---
"=СУММ(R[-"+строка(НомерПрайс)+"]C[3]:R[-1]C[3])" Лично я бы на всякий попробовал так:
"=СУММ(R[-"+Строка(Цел(НомерПрайс))+"]C[3]:R[-1]C[3])"

И проверил бы результат:

```1c
    Сообщить("=СУММ(R[-"+Строка(Цел(НомерПрайс))+"]C[3]:R[-1]C[3])");
```

А то мало ли что, вдруг там получается "=СУММ(R[--16]C[3]:R[-1]C[3])"
---
это номер, он целый итак, дело не в этом