Вход | Регистрация

1С:Предприятие ::

Метки:OLE и COM

1C+Excel

Я
   AlexMan
 
11.05.04 - 18:57
Имеем некоторый отчет в 1С в котором в одной колонке пишем в свойствах ячейки (в конфигураторе) : Тип-Текст в самом поле пишем чтото вроде : "=R11C11+R12C12" затем после формирования отчета в 1С (в режиме предприятия) сохраняем его как файл Excel , открываем получившийся файл и что же значение колонки НЕ ВЫЧИСЛЕНО!!! и не вычисляется до тех пор пока не "встанеш" на одну из ячеек затем в строку формул и там нажмеш Enter и так с каждой ячейкой колонки как можно сделать чтобы значения в Excel после сохранения из 1С считались автоматически?
 
  Рекламное место пустует
   AlexMan
 
1 - 11.05.04 - 21:48
Наверное я криво задаю вопрос... или он никого не заинтерисовал , попробую заинтерисовать описываю жизненную ситуацию: прайс сохраняется в Excel , по эл. почте отсылается клиенту клиент помимо количества товара которое хочет взять указывает свою скидку (в процентах) - по этому надо расчитать уже на месте (т.е. в Excel) новую сумму , вот это как раз и не выходит...
   здысь
 
2 - 11.05.04 - 22:07
Помоему F9  или Schift+F9, это перерасчет листа.
А еще в этой-же книге скопировать полностью лист, мне помогало.
   AlexMan
 
3 - 12.05.04 - 13:18
F9 и Shift+F9 мне не помогало а вот копировать не пробовал (попробую дома завтра напишу результат).
   Ssem
 
4 - 12.05.04 - 15:00
попробуй в настройках Excel установить в ярлыке Calculation (в русском варианте наверное Калькуляция) Automatic. Замечал не раз, что Excel сам переводит режим Automativ в Manual. (Почему??? не отслеживал.)
Тогда действительно нужно давить F9 или Shift+F9...
   AlexMan
 
6 - 12.05.04 - 15:38
(4) -(5) в настройках Excel стоит "автоматически" все равно не расчитывает ...
   AlexMan
 
7 - 13.05.04 - 13:32
(2) копирование листа не помогает (куда только не копировал)
нажимал "Пересчет листа" в Сервис/Параметры/Вычисления не считает эту колонку хоть ты тресни.... блин чего делать то?
   Frol
8 - 13.05.04 - 13:58
Я думаю, проблема в формате той строки "=R11C11+R12C12",наверняка в Excel-е строка, содержащая формулу для вычисления имеет совсем не строковый формат. При вводе такой строки Excel (после нажатия злополучной клавиши Enter) переводит её в свой формат ( типа формат формул...).
Тебе лучше всего делать по другому...
Создай шаблон листа Excel с формулами для расчёта, в который будешь выгружать нужные данные из 1С с помощью обработки.
Или по другому... интереснее, но и сложнее.
Поройся в VBA в Excel-е, наверняка там есть методы у ячейки, которые задают такой формат. Тобишь, с помощью обработки создавай сам файл Excel.
Надеюсь, ты знаешь, как можно выгрузить что-нибудь используя OLE.
Успехов!
   AlexMan
 
9 - 13.05.04 - 19:42
(8) Как выгружать что то через Оле я знаю (честно говоря я не вижу принцыпиальных отличий между способами 1 и 2 и там и там надо использовать Оле). Только через Оле работать медленно будет (прайс не детский 3000 строк) да и геморойно это слишком надо будет ячейки Excel програмно "рвать", "соединять" с цветами гемороится и т.д.. Вобщем не тот вариант учитывая что весь прайс в 1С распрекрастно формируется и юзерам не составляет труда самим его в Excel сохранить талько с этой колонкой беда . может лучше в Excel чевонибудь дописать чтобы эту колонку в свой формат переводил?
   GrayT
 
10 - 13.05.04 - 20:56
(8)Прав похоже.
Я попробовал макрос ActiveCell.FormulaR1C1 = ActiveCell.Value - расчитал текущу ячейку
 
  Рекламное место пустует
   427
 
11 - 13.05.04 - 23:10
(10) да... Он прав....

(0) надо... (все через ОЛЕ)
отключить автовычисления (будет быстрее заполняться через ОЛЕ, т.к. не будет перевычислений)

заполнить какие надо ячейки
включить автовычисления
дать команду перерасчета на всякий случай

формрулы пишутся только в формате R1C1 в свойство FormulaR1C1.....

все будет нормально... Прайс в 3000 строк - абсолютно детский.... 14000-15000 - уже более менее нормальный... (косметика, парфюмерия, бытовая химия)
например губная помада 8 серий по 24 цвета (9*24) уже 216 строк.... каждый цвет в прайсе отдельно, потому что есть ходовые и неходовые цвета...

В моем прайсе клиент просто вбивает количество - сразу видит сумму по строке товара и всего по заказу... Затем пинает прайс-заказ обратно и на фирме он просто всасывается в Счет или РасхНакл с проверкой остатков.... Что есть - сразу на отгрузку....

только там нужно использовать еще кучу всяких методов... чтобы защититься от дурости покупателя и подделки прайс-заказа...
   AlexMan
 
12 - 14.05.04 - 15:03
(10)-(11) блин через Оле как я уже писал муторно слишком, а код ActiveCell.FormulaR1C1 = ActiveCell.Value (из 10) где писать надо не в Excel случайно?
   Frol
 
13 - 14.05.04 - 15:12
(12) всё через ОЛЕ, т.е. в 1С-ке...
типа
Excel.cells(K,S).FormulaR1C1= Excel.cells(K,S).Value и т.д.
где, Excel - это объект листа.
   Estet
 
15 - 14.05.04 - 17:59
Здравствуй, Александр:)
Если формулы расположены в одном столбце, через Меню: [Данные] -> [Текст по столбцам...]  можно автоматом преобразовать весь столбец(предварительно выделив его целиком)
   AlexMan
 
16 - 14.05.04 - 18:41
Привет Игорек я тебе кстате тоже писал ответ про Штатную обработку проведения.
Дома попробую.
Зарание благодарен.
   427
 
17 - 14.05.04 - 19:00
В эекселе есть автоматическое написание программ...

Изучи его и ..... будь счастлив - эксель все будет делать сам ....


Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует