211 / 204 / 15
Регистрация: 29.05.2014
Сообщений: 1,056
|
|
1 | |
Эксель по русски или даешь расчет в табличном документе21.10.2014, 21:54. Показов 7496. Ответов 52
Метки нет Все метки)
(
Постановка задачи возможно кривая, буду рад уточняющим вопросам.
Итак, есть набор формул (штук 700) которые описывают работу предприятия. Это все в экселе. Работает. Необходимо повторить то же самое в 1С. Учитывая что формулы меняются со скоростью звука, прописывать каждую в коде - не комильфо. Поэтому сделал парсер и интерпретатор формул экселя. Но наткнулся на 2 замечательных камня - циклические ссылки и связность строк (когда строка 3 зависит от значения в строке 2, 5,10). Циклические победил кое-как, не такая уж и проблема, а вот со связностью не знаю как бороться. Буду рад любой идее. Даже идиотской.
0
|
|
21.10.2014, 21:54 | |
Ответы с готовыми решениями:
52
Очистка строк в табличном документе Проблемы с кодировкой в табличном документе 1С Не печатает нули в табличном документе Присоединить область в табличном документе |
Модератор
![]() |
||||||
22.10.2014, 04:04 | 2 | |||||
wwall, по сути нужен стек до уровня когда не попадется ячейка которая уже расчитана
Добавлено через 37 минут т.е. некий рекурсивный расчет Например :
Рассчитали ячейку или ячейка константа, пишем ее в таблицу результатов и снимаем со стека
0
|
211 / 204 / 15
Регистрация: 29.05.2014
Сообщений: 1,056
|
|
22.10.2014, 09:08 [ТС] | 3 |
В файле 900 строк. часть формул зависят, как уже говорил, от значений в нижележащих строках
например А1 = с3+о4+р5 и каждая из этих ячеек с3,о4,р5 зависит еще от полусотни ячеек определенных в других колонках. При предложенном тобой варианте расчета получается что в результате на стеке окажется весь массив данных, за исключением ячеек явно выведенных в 0 (те что ниже последней строки с данными) Короче, этот путь - самый последний вариант. Он реализован практически, но скорость его работы - никакая.
0
|
Заблокирован
|
|
22.10.2014, 10:54 | 4 |
насичет идиотских идеев - это ко мне.
тока ты пишешь как то не по русски- я мало что понимаю. Добавлено через 2 минуты з.ы. вопрос: значение в колонке строки 45 может ли зависеть от значения в строке 67. или только от значений строк которые имеют номер меньше либо равный 45? Добавлено через 1 минуту сдается мине запихать фсее в многомерный массиф и делать через выполнить() (тыже сама мене учил про многомерные массивы ,Волли, и про выполнить чета писал ![]()
0
|
Заблокирован
|
|
22.10.2014, 13:23 | 6 |
как цитату вставить не знаю
![]() то ДетМонт я ниче не понял из кода Волли, просто предложил опщий вариант. а в чем тогда проблема(это если строка 45 использует значения тока строк менее 45)? /// если строка 45 может использовать значения строк более 45. тогда сначала м.б. заполнить начальные элементы массива. которые ни на что не ссылаются. а потом от них плясать. Добавлено через 8 минут ДетМонт: рекурсивно доставать для каждого эл-та - мне каж все переебется ужасно. луче наверн как нить примотать к каждой ячейке список других ячеек. примотать так: сложив списки входящих в нее ячеек.
0
|
211 / 204 / 15
Регистрация: 29.05.2014
Сообщений: 1,056
|
|
22.10.2014, 15:34 [ТС] | 7 |
Dethmontt, у экселя представление таблицы - не матрица, точнее не совсем матрица, а достаточно хитрая структура которая позволяет адресацию в любом виде. сделать такое в 1С - просто не реально. Точнее в теории то реально, но на деле - не намного лучше чем рекурсивный обсчет который ты предлагаешь (плюс только в том что глубина рекурсии падает, но минус - отожранная память) Модель экселя не перенести в 1С один в один. Тут проблема в том что расчет формулы сведены к к строке. То есть за один проход у меня вычисляются колонки по одной строке (что бы контекст строки не дергать при пересчете)
Gokusa, Да может. и именно в этом проблема.
0
|
Шизофреник
360 / 362 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
|
|
22.10.2014, 15:48 | 8 |
wwall, мож я не так понял "Необходимо повторить то же самое в 1С"... повторить что, меняющиеся формулы? Аналог конструктора формул зуп'овский - не вариант?
Или надо парсить значения? Вроде как то можно доставать сразу результат ячейки, а не формулу... не оно?
0
|
2954 / 1766 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
22.10.2014, 16:27 | 9 |
В ёкселе и рассчитать его же вб-скриптом. Потом закачать в 1с.
А если надо воплотить алгоритм, то... б... и на хрена я на этот троллинг ведусь...
0
|
211 / 204 / 15
Регистрация: 29.05.2014
Сообщений: 1,056
|
|
22.10.2014, 16:48 [ТС] | 10 |
ок. у тебя файл экселя - 5 листов. В сумме на все листы - около 4000 показателей. Они не формализованы. Т.е. пользователи хотят менять их логику. Моя задача - сделать это в 1С. Если ты знаешь путь более простой чем распарсить формулы - поделись. Внемлю мудрости и смирю гордыню.
Хотел бы потроллить - спросил бы про комобъекты под линуксом. wladimir_ui, надо вычислять по формулам. Сейчас фактически так и сделано - все через это выполнить и интепретацию формул. Задача - пересчитать значение формулы в строке если изменилось влияющее значение. Сделать это за приемлемое время. Ну для понимания - 5 минут - это уже - фу... в экселе лучше....
0
|
2954 / 1766 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
22.10.2014, 17:15 | 11 |
wwall, извини, родной, у меня гокушин пост был перед глазами.
Всё алгоритмизируется. Даже расчет зарплаты по формулам. Что хоть за задача? Обучение ёкселю методом десятипальцевого ввода с клавиатуры?
0
|
4203 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
22.10.2014, 17:16 | 12 |
0
|
2954 / 1766 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
22.10.2014, 17:20 | 13 |
Погоди... С замиранием сердца жду озвучки задачи. Человек зря ворошить энтропию вселенной не будет.
0
|
Модератор
![]() |
|
22.10.2014, 17:27 | 14 |
Это уже работает в экселе! тот кто это сделал, вряд ли сможет повторить это еще раз! =)))
Добавлено через 1 минуту Перевести Эксель в 1С без потери функционала + связь с производственными документами (объектами 1С)
0
|
2954 / 1766 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
22.10.2014, 17:28 | 15 |
1
|
4203 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
22.10.2014, 17:28 | 16 |
0
|
2954 / 1766 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
22.10.2014, 17:29 | 18 |
это понятно. Алгоритм для экселя воплотить нормальными гуманными средствами: регистрами и табличками с кнопками на форме.
0
|
4203 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
22.10.2014, 17:30 | 20 |
Скопирожать готовое и исправить адресацию операндов - много ума не надо, справится и учёная обезьяна, или тот самый парсер. И Вы уж определитесь: или регулярно появляются новые формулы, или они написаны один раз.
0
|
22.10.2014, 17:30 | |
Помогаю со студенческими работами здесь
20
Сворачивание записей в табличном документе В табличном документе таблица не умещается по ширине
1с 8.3 Программное определение координат области в табличном документе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |