v8: Работа 1С XLS непонятные глюки #532222


#0 by Andru
Пишу вот такой код. Пользователи работают в терминале под одним пользователем отрабатывает отлично, у другого пользователя пишет ошибку "Ошибка при установке значения атрибута контекста (FormulaLocal): Произошла исключительная ситуация (0x800a03ec)" обошел все форумы, забивал формулу на английском. Все равно не работает.
#1 by izekia
а без буковок попробуй
#2 by Andru
Не совсем понял.
#3 by Tatitutu
= Excel.Sheets.Cells(1,1)
#4 by Andru
без "А" в Cells(1,"A")
#5 by Andru
понял, проблемка только завтра попробую.
#6 by dk
может там адреса в формате R1C1 забиты, хотя сумнительно либо на англицком формулу забей в ....Formula = ...
#7 by Andru
других вариантов нету?
#8 by Andru
"Formula =" пробовал не помогает, вообще неработало
#9 by Andru
"FormulaR1C1 =" тоже пробовал
#10 by Andru
могут быть какие-то настройки в самом EXL
#11 by Andru
???
#12 by Andru
везде на локальных машинах работает. Проблема только в терминале, хотя права у пользователей одинаковый.
#13 by dk
отладчик не предлагать?
#14 by Andru
проходил отладчиком, только я в таком состоянии, приму любое предложение которое не пробовал.
#15 by dk
тест 1 поменять формула на "=1"
#16 by Andru
проверить схавает хоть что-то?
#17 by dk
ну да, отсекаешь 1 причину за другой
#18 by Andru
отлично, попробую.
#19 by Капюшон
может быть разные версии Оффис у юзеров? у меня изза этого раньше в VBA проблемы возникали.
#20 by Andru
на моей машине 2010, у клиента на локальных машинах и сервере 2003, и везде работает кроме терминала.
#21 by Andru
может при установки админ не на всех пользователей VBA установил.
#22 by Andru
????
#23 by dk
excel без vba не ставится )
#24 by Andru
может это быть причиной?
#25 by Andru
я уже готов поверить в любое не вероятное.
#26 by supremum
Только что проверил код в под терминалом - все работает. Проблема может быть с правами пользователей.
#27 by Andru
я под своим пользователем в терминал заходил, у меня не работало, под сисадмином заходил работает, назначил права сисадмина себе все равно не работает.
#28 by Andru
может мой пользователь не входит какую-то группу типа "Пользователи DCOM"
#29 by kambala
Права на папку КаталогВременныхФайлов посмотри на запись
#30 by Andru
я убирал строки        КонецЕсли; без них отрабатывало под всеми пользователями нормально.
#31 by Andru
так что права у всех на временный каталог есть.
#32 by dk
может там англицкий Excel у юзера, хотя сумнительно
#33 by Andru
Админ ставил под своим профелем и разрешил использовать всем пользователям, так что у всех один и тот же, но я проверю.
#34 by ХелпДеск
Подозрительное присвоение: Value = ДатаНачало Соответствует ли тип значения и формат ячейки xls и тип переменной ДатаНачало Потом надо подумать над присвоением: КоличествоДней = что-то Возможно это что-то (Value) надо привести к строковому типу. Для отладки можно присвоить строковые константы.
#35 by ХелпДеск
Лучше через setValue устанавливать значения, чем через прямое присвоение.
#36 by Andru
Суть в том что на присвоение даты не ругается, ругается на формулу
#37 by Andru
Это не сработало Excel.Sheets.Cells(1,"A") = Excel.Sheets.Cells(1,1)
#38 by dk
Excel.Sheets.Cells(1,1).Formula = "=DAYS360(B1;C1;0)";
#39 by Andru
Этот тест сработал тест 1 поменять формула на "=1"
#41 by Andru
мне кажется это права, но не могу понять какие и на что
#42 by Rie
Попробуй FormulaR1C1 - что скажет?
#43 by Andru
Excel.Sheets.Cells(1,1).FormulaLocal = "DAYS360(B1;C1;1)" это сработало, но не посчитал.
#44 by Andru
Как правильно передать DAYS360(B1;C1;1) третий параметр в EXL истина или ложь
#45 by Rie
А что должно было посчитать? И как именно "не посчитал"?
#46 by Andru
вернул неопределено
#47 by Andru
прошу прошения
#48 by Andru
я незаметил один знак
#49 by Andru
я написал вот так DAYS360(B1;C1;1), а надо было =DAYS360(B1;C1;1). И это не сработало. Извеняюсь.
#50 by dk
что есть "не сработало"? Вылетела с ошибкой? в файле что-нить сохранилось?
#51 by Aprobator
а под юзером у которого проблема в терминале эксель запустить слабо?
#52 by Andru
ошибка даже самая какая и была в начале
#53 by Andru
под пользователем у которого не работает, запускаю эксель и все работает если руками на прямую в эксель забиваешь.
#54 by Andru
поэтому и говорю не понятный глюк.
#55 by Aprobator
Сервис - Параметры - Общие - Стиль ссылок R1C1 под проблемным пользователем стоит?
#56 by Andru
нет не стоит
#57 by dk
Excel.Sheets.Cells(1,1).Formula = "=B1";
#58 by dk
может тупо в формуле C или B в кириллице заведены
#59 by Andru
еще раз все перепроверил B это английская B, С тоже.
#60 by Aprobator
хм - а точно вылетает на установке формулы, а не раньше на Excel.Sheets? Не помню, честно говоря там индексы с 0 или с 1?
#61 by Andru
спецально отладчиком проходил, еще строку с присвоением формулы комментировал, затыкается только на формуле.
#63 by Andru
почему Formula? у меня это не сработало. я пишу FormulaLocal. Так же я пробовал Formula = "=B1" и FormulaLocal = "=B1", все отработало.
#64 by dk
а не пробовал сначала данные в B1 и С1 заполнить, а уже потом формулу? )
#65 by Andru
Попробовал В1 и С1 заполнил, и все равно заткнулся на формуле.
#66 by Andru
Ради интереса изменил формулу
#67 by Andru
И все равно ругается на присвоение формулы.
#68 by Aprobator
лист не защищенный или ячейка?
#69 by Andru
я никаких защит не ставил. А как проверить?
#70 by Andru
новый лист создаю же.
#71 by dk
Excel.Sheets.Cells(1,1).FormulaLocal = "=B1 + C1";
#72 by Aprobator
Excel.Sheets.Cells(1,1).AllowEdit проверка на разрешение редактирования. Хотя можно проверить и просто попытвашись записать значение. Еще можно формулу попытаться вписать так:
#73 by Andru
Хоть что-то новенькое. Ошибка. Ошибка при получении значения атрибута контекста (Range): Неверное число параметров
#74 by Andru
А вот это посчитал Excel.Sheets.Cells(1,1).FormulaLocal = "=B1 + C1";
#75 by Andru
я так понимаю проблема с использованием внутренних формул экселя, если простое сложение посчитал.
#76 by dk
Excel.Application.Workbooks.Add; почему 1 в аргументе? а если просто Excel.Application.Workbooks.Add;
#77 by Andru
я где то взял пример создание нового документа и листа, и все работало пока в терминал не запустили.
#78 by dk
корявый пример )
#79 by Andru
Не помогло.Ошибка при установке значения атрибута контекста (FormulaLocal): Произошла исключительная ситуация (0x800a03ec)
#80 by Aprobator
покопался по хелпу, там формула присваивается только на актином листе (в примерах). Может стоит попробовать так:
#81 by Aprobator
вот еще пример из хелпы:
#83 by Aprobator
кстати - попробуй по деревянному - зайди в эксель, создай формулу, а потом с 1Сы ее считай и посмотри как она выглядит )
#84 by Andru
спасибо большое, попробую но только завтра.
#85 by Andru
ничего не сработало. буду искать другой выход.
#86 by Andru
Я тут встречал расчеты. Европейский метод - ?(День(Дата2)=31,30,День(Дата2))-?(День(Дата1)=31,30,День(Дата1))+30*(Год(Дата2)*12+Месяц(Дата2)-Год(Дата1)*12-Месяц(Дата1))   Европейский метод расчет еще боле менее, а вот американский не правильно считает, может кто нибудь уже пытался решить это в 1С.
#87 by Andru
к примеру задаеш период 26.08.2010-12.02.2011 Европейски метод дает 166 Американский метод дает 184
#88 by Andru
В экселе оба метода дают 166
#89 by azernot
В порядке бреда, попробуй поменять местами строки кода Т.е. сначала присвоить даты, а уже потом формулу ссылающуюся на даты..
#90 by Andru
пробовал не помогает.
#91 by Andru
кажись нашел если кому интересно проверьте тоже, может я что-то не замечаю Американский метод расчета ?(День(ДатаКон)=31,30,День(НачалоДня(ДатаКон)) - День(НачалоМесяца(ДатаКон)))+?(День(ДатаНач)=31,30,День(КонецМесяца(ДатаНач)) - День(НачалоДня(ДатаНач)))+30*(Год(ДатаКон)*12+(Месяц(ДатаКон)-1)-Год(ДатаНач)*12-Месяц(ДатаНач))
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С