1C+Excel #4177


#0 by AlexMan
Имеем некоторый отчет в 1С в котором в одной колонке пишем в свойствах ячейки (в конфигураторе) : Тип-Текст в самом поле пишем чтото вроде : "=R11C11+R12C12" затем после формирования отчета в 1С (в режиме предприятия) сохраняем его как файл Excel , открываем получившийся файл и что же значение колонки НЕ ВЫЧИСЛЕНО!!! и не вычисляется до тех пор пока не "встанеш" на одну из ячеек затем в строку формул и там нажмеш Enter и так с каждой ячейкой колонки как можно сделать чтобы значения в Excel после сохранения из 1С считались автоматически?
#1 by AlexMan
Наверное я криво задаю вопрос... или он никого не заинтерисовал , попробую заинтерисовать описываю жизненную ситуацию: прайс сохраняется в Excel , по эл. почте отсылается клиенту клиент помимо количества товара которое хочет взять указывает свою скидку (в процентах) - по этому надо расчитать уже на месте (т.е. в Excel) новую сумму , вот это как раз и не выходит...
#2 by здысь
Помоему F9  или Schift+F9, это перерасчет листа. А еще в этой-же книге скопировать полностью лист, мне помогало.
#3 by AlexMan
F9 и Shift+F9 мне не помогало а вот копировать не пробовал (попробую дома завтра напишу результат).
#4 by Ssem
попробуй в настройках Excel установить в ярлыке Calculation (в русском варианте наверное Калькуляция) Automatic. Замечал не раз, что Excel сам переводит режим Automativ в Manual. (Почему??? не отслеживал.) Тогда действительно нужно давить F9 или Shift+F9...
#5 by Ssem
попробуй в настройках Excel установить в ярлыке Calculation (в русском варианте наверное Калькуляция) Automatic. Замечал не раз, что Excel сам переводит режим Automativ в Manual. (Почему??? не отслеживал.) Тогда действительно нужно давить F9 или Shift+F9...
#6 by AlexMan
- в настройках Excel стоит "автоматически" все равно не расчитывает ...
#7 by AlexMan
копирование листа не помогает (куда только не копировал) нажимал "Пересчет листа" в Сервис/Параметры/Вычисления не считает эту колонку хоть ты тресни.... блин чего делать то?
#8 by Frol
Я думаю, проблема в формате той строки "=R11C11+R12C12",наверняка в Excel-е строка, содержащая формулу для вычисления имеет совсем не строковый формат. При вводе такой строки Excel (после нажатия злополучной клавиши Enter) переводит её в свой формат ( типа формат формул...). Тебе лучше всего делать по другому... Создай шаблон листа Excel с формулами для расчёта, в который будешь выгружать нужные данные из 1С с помощью обработки. Или по другому... интереснее, но и сложнее. Поройся в VBA в Excel-е, наверняка там есть методы у ячейки, которые задают такой формат. Тобишь, с помощью обработки создавай сам файл Excel. Надеюсь, ты знаешь, как можно выгрузить что-нибудь используя OLE. Успехов!
#9 by AlexMan
Как выгружать что то через Оле я знаю (честно говоря я не вижу принцыпиальных отличий между способами 1 и 2 и там и там надо использовать Оле). Только через Оле работать медленно будет (прайс не детский 3000 строк) да и геморойно это слишком надо будет ячейки Excel програмно "рвать", "соединять" с цветами гемороится и т.д.. Вобщем не тот вариант учитывая что весь прайс в 1С распрекрастно формируется и юзерам не составляет труда самим его в Excel сохранить талько с этой колонкой беда . может лучше в Excel чевонибудь дописать чтобы эту колонку в свой формат переводил?
#10 by GrayT
Прав похоже. Я попробовал макрос ActiveCell.FormulaR1C1 = ActiveCell.Value - расчитал текущу ячейку
#11 by 427
да... Он прав.... надо... (все через ОЛЕ) отключить автовычисления (будет быстрее заполняться через ОЛЕ, т.к. не будет перевычислений) заполнить какие надо ячейки включить автовычисления дать команду перерасчета на всякий случай формрулы пишутся только в формате R1C1 в свойство FormulaR1C1..... все будет нормально... Прайс в 3000 строк - абсолютно детский.... 14000-15000 - уже более менее нормальный... (косметика, парфюмерия, бытовая химия) например губная помада 8 серий по 24 цвета (9*24) уже 216 строк.... каждый цвет в прайсе отдельно, потому что есть ходовые и неходовые цвета... В моем прайсе клиент просто вбивает количество - сразу видит сумму по строке товара и всего по заказу... Затем пинает прайс-заказ обратно и на фирме он просто всасывается в Счет или РасхНакл с проверкой остатков.... Что есть - сразу на отгрузку.... только там нужно использовать еще кучу всяких методов... чтобы защититься от дурости покупателя и подделки прайс-заказа...
#12 by AlexMan
- блин через Оле как я уже писал муторно слишком, а код ActiveCell.FormulaR1C1 = ActiveCell.Value (из 10) где писать надо не в Excel случайно?
#13 by Frol
всё через ОЛЕ, т.е. в 1С-ке... типа Excel.cells(K,S).FormulaR1C1= Excel.cells(K,S).Value и т.д. где, Excel - это объект листа.
#14 by AlexMan
понятно , блин а в Еxcel нельзя случайно написать чтото типа токого ?
#15 by Estet
Здравствуй, Александр:) Если формулы расположены в одном столбце, через Меню: [Данные] -> [Текст по столбцам...]  можно автоматом преобразовать весь столбец(предварительно выделив его целиком)
#16 by AlexMan
Привет Игорек я тебе кстате тоже писал ответ про Штатную обработку проведения. Дома попробую. Зарание благодарен.
#17 by 427
В эекселе есть автоматическое написание программ... Изучи его и ..... будь счастлив - эксель все будет делать сам ....
#18 by AlexMan
спасибо за совет .
#19 by AlexMan
Свершилось чудо друг-выручил друга!!!!!!!!! в написана чистая правда все работает!!!!!!!!!!!! Оле - ненужно!!!!!!!!!!! Халява прокатила!!!!!!!!!!!!
#20 by DmitryDDI
Как закрыть XLS? Прога открывает документ, скидывает данные через ОЛЕ и делает КЛОСЕ обьекта, но при запуске XLS все виснет, видимо закрыл криво, чтоли? ?????????????????????????????????????????????????????????????
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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