|
Выполнение Java script на сервере apache (Tomcat) из 1С | ☑ | ||
---|---|---|---|---|
0
SuperMario
17.10.19
✎
11:23
|
Всем привет!
Вот такая нестандартная задачка мне прилетела. Заказчик просит силами 1С выгрузить в учетную систему данные по актам списания. В PAI интерфейсе этой системы нет метода на данный вид документа. Но в недрах самого сервера нашёл jsp файл, в котором из csv файла можно загрузить эти акты. private WriteoffDocument createWriteOffDocument(TableDataReader csvReader) throws IOException, ParseException { Properties row = csvReader.readRow(); WriteoffDocument writeoffDocument = new WriteoffDocument(getDocumentNumber(DocumentType.WRITEOFF_DOCUMENT), getDateIncoming(), getStore(), getAccount(true)); String[] headers = csvReader.getHeader(); while (row != null) { Product product = getProduct(row.getProperty(headers[HEADER_ART]), row.getProperty(headers[HEADER_NAME])); if (product == null) { row = csvReader.readRow(); continue; } BigDecimal amount = getAmount(row.getProperty(headers[HEADER_AMOUNT])); // TODO добавить поддержку размеров блюд ProductSize WriteoffDocumentItem item = writeoffDocument.addItem(product, ProductSizeConstants.DEFAULT_PRODUCT_SIZE, ProductSizeConstants.DEFAULT_AMOUNT_FACTOR, amount); MeasureUnit amountUnit = getMeasureUnit(row.getProperty(headers[HEADER_UNITS])); checkUnitError(item, amountUnit); row = csvReader.readRow(); } return writeoffDocument; Вышеуказанным кодом можно воспользоваться из 1С? Для интеграции с данной систему использую HTTP соединение. Получаю ключ и составляю get /post запросы с опред. параметрами подписывая их этим ключом. В ответ получаю состояние выполнения Если это get , то в теле ответа нужная мне инфа в виде xml или Json. |
|||
1
Garikk
17.10.19
✎
11:51
|
учитывая постановку задачи и ваши вопросы, правильный ответ: наймите специалиста
|
|||
2
Garykom
гуру
17.10.19
✎
11:54
|
Разве это не форум об аниме (зачеркнуто) lsFusion?
|
|||
3
SuperMario
17.10.19
✎
11:57
|
(1) понимаю.
Сам себе голову об коленку сломал. |
|||
4
Garikk
17.10.19
✎
12:14
|
(3) ничего особо сложного в вашей задаче нет, но она нерешаема в рамках форума путем 'советов'
p.s. ещё как минимум потому что язык у вас ещё и не javascript, а просто java |
|||
5
fisher
17.10.19
✎
12:15
|
Это не js, это java.
И этот метод лишь кусок того, что тебе надо в итоге. Короче, если во внешнем API не предусмотрено, тады ой. Ну или можешь каким-нить stunnel настроить прямой доступ в базу системы заказчика и курочить им там все направо и налево :) |
|||
6
Garykom
гуру
17.10.19
✎
12:17
|
(0) iiko ?
|
|||
7
Garikk
17.10.19
✎
12:18
|
(6) iiko же вроде на C# была? (или переписали?)
|
|||
8
Garykom
гуру
17.10.19
✎
12:19
|
(7) А что с блюдами и актами списания на java знаешь?
|
|||
9
SuperMario
17.10.19
✎
12:21
|
(6) в точку!
|
|||
10
SuperMario
17.10.19
✎
12:24
|
(5) не получится.
У iiko ,при запуске сервера, все документы, которые попадают по дате в период редактирования, выгружаются в память. И на SQL запись происходит по мене накопления событий на изменение данных. Т.о. если я в таблицы запишу эти документы, то сервер их тупо не увидит (придется его перезапускать постоянно) |
|||
11
SuperMario
17.10.19
✎
12:24
|
(7) нет. На Java она вся насквозь и до сих пор на ней
|
|||
12
Garykom
гуру
17.10.19
✎
12:31
|
(9) Нехрен закрытую проприетарную гадость покупать.
Взяли бы 1С и горя не знали )) |
|||
13
SuperMario
17.10.19
✎
12:33
|
(12) согласен.
Но, как в том кино про Шурика: "красть ничего не надо. Все украдено уже до вас" )) |
|||
14
SuperMario
17.10.19
✎
12:34
|
(12) уходим по чуть с этого софта.
А пока приходится грызть этот кактус |
|||
15
fisher
17.10.19
✎
12:36
|
(12) Хм... А насколько она закрытая, как для джавы? Может все-таки ендпоинты там не проблема допилить?
|
|||
16
Garykom
гуру
17.10.19
✎
12:39
|
(15) Не проблема только задолбаешься изучать где, что и главное как правильно допилить.
По дефолту оно умеет выгружать в 1С, а вот загружать из 1С (как впрочем и других внешних) почти не умеет. |
|||
17
Garikk
17.10.19
✎
12:40
|
(11) хмм..помню в 2011 гдето году её ставил, там везде .net был и ошибки дотнетовские
|
|||
18
fisher
17.10.19
✎
12:41
|
(16) Ясно
(14) Сдается мне, что кто-нить знакомый с джавовским стеком не понаслышке, сможет покопавшись под капотом этого драндулета прикрутить нужную ручку, которую ты сможешь дергать из 1С. |
|||
19
Garykom
гуру
17.10.19
✎
12:54
|
(18) >покопавшись под капотом этого драндулета прикрутить нужную ручку, которую ты сможешь дергать из 1С
Как думаешь какой будет ценник на такого знакомого? Который без знания предметки полезет? |
|||
20
Garykom
гуру
17.10.19
✎
12:56
|
Имхо я бы напрямую в БД менял.
Делаем снимок базы, добавляем документу "акт списания" с одной-двумя строчками и снова делаем снимок базы. Изучаем что поменялось, важно чтоб больше никаких операций не было. |
|||
21
Garykom
гуру
17.10.19
✎
12:59
|
(20)+ Хотя лучше сначала документу с одной строчкой, снимок, затем еще одну строчку добавляем и снова снимок базы.
Т.е. увидеть разницу между одно и второй строчкой в каких таблицах оно. |
|||
22
Cyberhawk
17.10.19
✎
13:01
|
"интерфейсе этой системы нет метода" // На нет и суда нет
|
|||
23
SuperMario
17.10.19
✎
14:19
|
(20) прочти (10)
>>Т.о. если я в таблицы запишу эти документы, то сервер их тупо не увидит (придется его перезапускать постоянно) |
|||
24
Garykom
гуру
17.10.19
✎
14:34
|
(23) Должен быть код который заставляет перечитать документы из базы.
Вот его уже как то дергать. |
|||
25
SuperMario
17.10.19
✎
14:34
|
+(23) у сервера в файле Resto.Propertis
есть строка db-period-length-days=40 он при старте ее прочитывает и выгружает в оперативку все доку менты текущей датой до -40 дней давности. И далее к чтению данных с SQL не обращается. Он только пишет в него. Читать начинает только если в отчете выбрали период >40 дней. |
|||
26
Garykom
гуру
17.10.19
✎
14:36
|
(25) Чушь это, такого не может быть если разрабы iiko не полные дятлы.
Потому что документов может быть тупо больше чем влезет в оперативку. Другой вопрос что может держать ссылки на документы но не все их содержимое (тогда оперативки на много хватит доков). Тогда вручную создаем документ, меняем его в базе и профит. |
|||
27
SuperMario
17.10.19
✎
14:45
|
>>Другой вопрос что может держать ссылки на документы
Может и так. Я подробностей не знаю. В самой iiko нам говорили, что типа этот период он выгружает и держит в оперативе для быстроты работы. А реально объект это или ссылки , не отвечу. |
|||
28
SuperMario
17.10.19
✎
14:52
|
(26) дружище, если честно то мне на iiko пофиг!
Суть в том, что сидят девчонки и ручками ХХХашат акты в iiko, когда они все тепленькие лежит в 1C. |
|||
29
Garykom
гуру
17.10.19
✎
14:56
|
(28) А нахрена они нужны в iiko?
|
|||
30
SuperMario
17.10.19
✎
16:29
|
(29) а как же? Весь оперативный учет ведется в iiko. Себестоимость готовой продукции там же формируется.
|
|||
31
Cyberhawk
17.10.19
✎
17:54
|
(30) Переходи на 1С, там интеграция реализована как надо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |