|
1с.82. Выгрузить данные из 1с в excel | ☑ | ||
---|---|---|---|---|
0
DoctorRoza
14.11.12
✎
13:39
|
Коллеги, помогите пожалуйста! Видимо уже приелся код, поэтому не вижу ошибки. Нужно вставить формулу в ячейку. Гуглил, форумы читал, туташние и инфостаровские, но ответа не нашел.
Есть код // Попытка Эксель = Новый COMОбъект("Excel.Application"); Исключение Возврат; КонецПопытки; /////////////// //Эксель.Quit(); /////////////////////////////// ДиалогФыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогФыбораФайла.Фильтр = "Файл Excel (*.xls)|*.xls"; ДиалогФыбораФайла.Заголовок = "Выберите файл Excel"; ДиалогФыбораФайла.ПредварительныйПросмотр = Ложь; ДиалогФыбораФайла.Расширение = "xls"; ДиалогФыбораФайла.ИндексФильтра = 0; ДиалогФыбораФайла.ПроверятьСуществованиеФайла = Ложь; Если ДиалогФыбораФайла.Выбрать() Тогда Объект.Путь = ДиалогФыбораФайла.ПолноеИмяФайла; КонецЕсли; КаталогФайла = ДиалогФыбораФайла.Каталог; ВыбФайл = Новый Файл(ДиалогФыбораФайла.ПолноеИмяФайла); /////////////////////////////////////////////////////////////////////////////////////////////////////////////// Эксель.DisplayAlerts = False; ////////////////////////////// Workbook = Эксель.Workbooks.Open(Объект.Путь); Sheet = Workbook.Worksheets(1); Workbook.ActiveSheet.UnProtect(); ///////////////////////////////// Выборка = ПолучитьВыборкуЦен(Истина,,,); НомерСтроки = 8; Для Каждого СтрокаТЧ Из Выборка Цикл Если ПустаяСтрока(СтрокаТЧ.Номенклатура) Тогда Sheet.Cells(НомерСтроки, 3).Value = Строка(СтрокаТЧ.Родитель); Иначе Sheet.Cells(НомерСтроки, 2).Value = СтрокаТЧ.Артикул; Sheet.Cells(НомерСтроки, 3).Value = Строка(СтрокаТЧ.Номенклатура); // Sheet.Cells(НомерСтроки, 5).Value = СтрокаТЧ.Цена; КонецЕсли; ////////////////////////////// НомерСтроки = НомерСтроки + 1; //////////////////////////////////////////// КонецЦикла; //++++++++++++++++++ Формула = "=СУММПРОИЗВ(R[-"+Строка(НомерСтроки-10)+"]C:R[-1]C;R[-"+Строка(НомерСтроки-10)+"]C[1]:R[-1]C[1])"; //Sheet.Cells(НомерСтроки, 5).FormulaR1C1 = Формула; //Sheet.Cells(НомерСтроки, 5).NumberFormat = "0,00;[Красный]-0,00"; //++++++++++++++++++++++ //////////////////////////////////// Workbook.Save(); Workbook.Close(); Эксель.Application.Quit(); Эксель.Quit(); Эксель = 0; // Вообщем, видимо, что то не дописал и ни одной формулы вставить в нужную ячейку не могу, выдается критическая ошибка 1с. Стоит Excel 2007. 8.2.16.368. Ячейки из цикла заполняются, файл xls записывается. Вставляю Формулу непосредственно в ячейку файла xls, все работает. Кто может посмотрите свежим взглядом! |
|||
1
mzelensky
14.11.12
✎
13:45
|
Что-то я не вижу страчку, где ты пытаешься формулу записать!?
|
|||
2
DoctorRoza
14.11.12
✎
13:46
|
поле ввода формулы закомментировал ..
|
|||
3
mzelensky
14.11.12
✎
13:49
|
(0) ну я так делал:
Лист.Cells(Счетчик,КолонкаКол).Formula = ... |
|||
4
DoctorRoza
14.11.12
✎
13:53
|
вот то-то и оно, что не понятнопочему не работает :(
|
|||
5
de Bug
14.11.12
✎
13:54
|
(0) Сдается мне, что FormulaR1C1 не понимает русское название функции.
Пропиши формулу в Экселе и посмотри отладчиком, что стоит в FormulaR1C1. |
|||
6
DoctorRoza
14.11.12
✎
13:57
|
тут все четко, формула взята из екселя непосредственно, русских букв нет, латиница.
|
|||
7
DoctorRoza
14.11.12
✎
13:57
|
формула, при вставке в сам ексель, работает нормально
|
|||
8
dk
14.11.12
✎
13:58
|
FormulaR1C1Local
|
|||
9
DoctorRoza
14.11.12
✎
14:00
|
хм .. сейчас проверю ..
|
|||
10
mzelensky
14.11.12
✎
14:00
|
(0) ну попробуй просте что-то туда вставить...не функцию, а что-то элементарное...там "2+5"..посмотри вообще вставится или нет.
|
|||
11
DoctorRoza
14.11.12
✎
14:01
|
нет .. не работает ..
|
|||
12
DoctorRoza
14.11.12
✎
14:02
|
да блим простешее даже не встает .. типа
"=R[-2]C*R[-2]C[1]" |
|||
13
dk
14.11.12
✎
14:03
|
(11) значит дело в формуле (скобки, запятые, кавычки ...)
(10) +1 |
|||
14
dk
14.11.12
✎
14:04
|
либо адрес ячейки неверный
в отладчике погляди что Sheet.Cells(НомерСтроки, 5) возращает |
|||
15
DoctorRoza
14.11.12
✎
14:07
|
так ведь
Sheet.Cells(НомерСтроки, 5) - comОбъект |
|||
16
Утконос
14.11.12
✎
14:07
|
у тебя формула !!!
=СУММПРОИЗВ(R[--2]C:R[-1]C;R[--2]C[1]:R[-1]C[1]) |
|||
17
DoctorRoza
14.11.12
✎
14:09
|
и что?
|
|||
18
dk
14.11.12
✎
14:09
|
"--" косяк однако
|
|||
19
DoctorRoza
14.11.12
✎
14:10
|
двоного минуса нет!!
|
|||
20
Утконос
14.11.12
✎
14:10
|
(17) да ни ЧЁ !
R[--2] - исключительная ошибка при записи Формула = "=СУММПРОИЗВ(R["+Строка(НомерСтроки-10)+"]C:R[-1]C;R["+Строка(НомерСтроки-10)+"]C[1]:R[-1]C[1])"; |
|||
21
dk
14.11.12
✎
14:10
|
хотя если "=R[-2]C*R[-2]C[1]" не пашет ..
|
|||
22
DoctorRoza
14.11.12
✎
14:11
|
=СУММПРОИЗВ(R[-91]C:R[-1]C;R[-91]C[1]:R[-1]C[1])
|
|||
23
DoctorRoza
14.11.12
✎
14:11
|
вот как есть
|
|||
24
dk
14.11.12
✎
14:12
|
а просто "=1*3" пашет?
|
|||
25
dk
14.11.12
✎
14:12
|
может рус/англ раскладка в формуле менялась
|
|||
26
DoctorRoza
14.11.12
✎
14:13
|
2+2 не вставляет .. :(
|
|||
27
DoctorRoza
14.11.12
✎
14:13
|
блин, ну что же ни так??
|
|||
28
dk
14.11.12
✎
14:16
|
поменяй ячейку на 1, 1
|
|||
29
DoctorRoza
14.11.12
✎
14:19
|
менял, явно указывал адреса, не помогает, что то видимо в файле. Это типа шаблон заполнения, а точнее, прайс с удаленными строками.
|
|||
30
dk
14.11.12
✎
14:20
|
может ячейка защищена или еще что
|
|||
31
DoctorRoza
14.11.12
✎
14:22
|
может быть .. :(
|
|||
32
DoctorRoza
14.11.12
✎
14:22
|
все равно спасибо за внимание .. :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |