Имя: Пароль:
IT
 
Скрипт по обработке XML из мой склад на Маке на чем писать?
Ø (Волшебник 23.11.2022 09:26)
0 Гений 1С
 
гуру
07.11.22
11:46
Клиент выгружает XML УПД из Мой склад. Ему нужно убрать лидирующие нули из кодов товара.
Я думал на VBS написать скрипт и добавить скрипт в SendTo.
Но у клиента мак.
Можно конечно, сервис на 1С написать, но это как-то из пушки по воробьям.
На чем писать скрипт (закажу на KWORKe)? На питоне?
И как его потом вставить в Мак, чтобы по правой кнопки мыши обрабатывался файл или как там?
1 Asmody
 
07.11.22
11:47
на свифте пиши
2 Kassern
 
07.11.22
11:49
(0) А что мешает выгрузку xml поправить, чтобы сразу верно выгружался файл?
3 Гений 1С
 
гуру
07.11.22
11:50
(2) в моём складе? интересно, как? только не предлагай коды товаров менять. гггг
4 Kassern
 
07.11.22
11:52
(3) Зайти в мой склад, посмотреть кусок кода, который xml формирует и добавить туда условие, Если БезЛидирующихНулей Тогда и вперед и с песней
5 NorthWind
 
07.11.22
11:54
(0) питон?
6 NorthWind
 
07.11.22
11:55
мне вообще кажется, что VBS хоронить пора, и заместо него брать Питон. Там из минусов только то что установить надо, в остальном одни плюсы...
7 Kassern
 
07.11.22
11:59
(6) " только то что установить надо" - это может быть значимый минус. Не так давно, клиент обратился, мол обмен перестал работать, а потом выяснилось, что поставили новый сервак, а внешнюю библиотеку для работы с СФТП не зарегали. А код еще работает с определенной старой версией этой библиотеки, которую еще найти надо.
8 Garykom
 
гуру
07.11.22
12:03
(0) На JS писать, причем в браузере
9 polosov
 
07.11.22
12:06
(0) 1С Исполнитель.
10 Гений 1С
 
гуру
07.11.22
13:31
(4) там нельзя менять код. Это мой склад.
(5) По стопам Леонтьева, ага.
11 Kassern
 
07.11.22
13:32
(10) Я прост с ним не работал, но неужели нет никакого API? Что-то верится с трудом, что нельзя дорабатывать мой склад под хотелки бизнеса, вряд ли из коробки он полностью покрывает все потребности.
12 Garykom
 
гуру
07.11.22
13:34
(11) API там есть но гений не может осилить для 1С
13 kittystark
 
07.11.22
13:36
(0) эта XML куда потом идет ?
14 Кирпич
 
07.11.22
13:45
15 Гений 1С
 
гуру
07.11.22
13:47
(12) API там из серии из пушки по воробьям. там есть API для доступа к данным, его я использую. А вот API для событий там нет, увы.
16 NorthWind
 
07.11.22
13:47
(10) я хрен его знает по чьим стопам, но язык годный. Там в отличие от VBS можно черта лысого делать, и безо всяких ком-объектов. Два хмл-парсера попроще и посложнее, надо FTP-пожалуйста, надо ZIP-пожалуйста, с веб-сервисами общаться - пожалуйста, свой вебсервис накалякать буквально пятью строчками - пожалуйста. Красота, а не язык.
17 Гений 1С
 
гуру
07.11.22
13:47
(13) клиенту или поставщику, точно не знаю. У них там коды товаров без нулей, так уж сложилось
18 Гений 1С
 
гуру
07.11.22
13:48
(14) ну нет, не все так банально. Там надо в определенных тегах заменить.
19 NorthWind
 
07.11.22
13:49
+ (16) это не говоря уже про встроенную работу со списками, множествами и кортежами. Не надо мудохаться с задачами типа убрать нужные элементы из массива, можно просто вычесть из одного множества другое. Тупо знак "минус".
20 Кирпич
 
07.11.22
13:50
(18) очень даже банально банально. регулярку накалякать и всё
покажи файл
21 Гений 1С
 
гуру
07.11.22
13:51
(19)
так, хорошо, поставили мы питон на маке (вопрос еще как).
далее, как пкм к файлу привязать? То бишь чтобы на файле можно было команду "Обработать" повесить?
В Винде я через сендту дела, а в маке?
22 Гений 1С
 
гуру
07.11.22
13:52
(20) файл покамись не готов, в сыром виде от клиента показать не могу, но банальное УПД обычное
23 NorthWind
 
07.11.22
13:54
(21) ну, поставить, думаю, не проблема - https://www.python.org/downloads/macos/
С остальным разбираться надо. Как вариант, поднять макос на виртуалке и там потренироваться. Я не маковод.
24 Гений 1С
 
гуру
07.11.22
13:54
(23) так вот и я не маковвод
25 Кирпич
 
07.11.22
13:57
ну там же можно файлик бросить мышкой на программу, как в windows?
26 NorthWind
 
07.11.22
13:58
(24) ну откажись тогда от задачи, раз неинтересно. Чтобы чего-то сделать, нужна макось в руках. Либо у клиента сидеть, либо на виртуалке поставить. Далее, с макосью и гуглом, все можно сделать.
27 kittystark
 
07.11.22
13:58
+1 к регулярным выражениям
28 stix2010
 
07.11.22
14:16
(0) OneScript, сам и напишешь.
29 Гений 1С
 
гуру
07.11.22
14:49
(26) дык можно на винде отладить, а в мак уже передать готовое
30 vbus
 
07.11.22
14:53
Файлик-то где посмотреть?
31 Garykom
 
гуру
07.11.22
15:07
(21) Зачем ПКМ на файле?
Сделай клиенту сервис одностраничник на JS, можно и в инете на VPS разместить а можно и локально html файлик в браузере открывать.
Там формочка с кнопкой выбора загрузки файла, кнопка обработать и кнопка сохранить
32 Garykom
 
гуру
07.11.22
15:11
(31)+ Современные браузеры уже хз сколько лет позволяют делать оффлайн приложения
Короче простейший SPA покруче PWA
https://habr.com/ru/post/279291/
33 Garykom
 
гуру
07.11.22
15:12
(32) *простейший SPA или покруче PWA
34 Гений 1С
 
гуру
07.11.22
15:27
(31) к чему эти лишние телодвижения. Если сохранять надо под то же имя файла и старую версию переименовывать в BAK.
35 Гений 1С
 
гуру
07.11.22
15:27
(32) а что там с доступом к локальной файловой системе?
36 Ivan_495
 
07.11.22
16:16
js
37 Garykom
 
гуру
07.11.22
16:20
(35) Подучи уже теорию а?
JS в браузере работает в песочнице, по умолчанию не имеет доступа к реальной ФС.
По этому и написал про Upload/Download ну или ставь nodejs или плагин в браузере с поддержкой реального приложения-сервиса на компе.
38 Ivan_495
 
07.11.22
16:31
bash- скрипт
39 Ivan_495
 
07.11.22
16:38
(36) опечатка wsh
40 Галахад
 
гуру
07.11.22
16:44
(0) На самом деле свой сервис, это же то к чему идут все производители ПО.
Software as a service шаг вперед, от фриланса к налаженному бизнесу.
41 NorthWind
 
07.11.22
16:49
(38) на маке?
42 NorthWind
 
07.11.22
16:50
точнее, как раз баш-то на маке можно, думаю. вот wsh вряд ли.
43 Гений 1С
 
гуру
07.11.22
21:20
(37) как-то это слишком сложно для такой простой задачи, не?
44 vovastar
 
07.11.22
21:24
Судя по всему, за решение этой задачи, клиент останется со старым маком, а Гений купит себе новый. Клиент явно порет дурака, один звонок в тп моего склада и ему эту задачу решили бы за 5000р.
45 Гений 1С
 
гуру
07.11.22
21:28
(44) каким образом?
46 vovastar
 
07.11.22
21:33
(45) ну, это вообще. Уважаемый директор своего ИП, вам нужно рассказать как деньги зарабатывать?
47 Гений 1С
 
гуру
07.11.22
21:46
(46) 0 бит
48 NorthWind
 
07.11.22
22:44
(29) некоторые вещи будут специфичны для мака. Например, как удобнее скормить скрипту файл без излишнего прогрева головы клиента.
49 lexushka
 
07.11.22
23:08
не писал никогда, но там же был скриптовый язык AppleScript…
без вот этих вот фантазий
имхо
50 lexushka
 
07.11.22
23:09
ну и питон кстати стоит
версия 2.7.16
51 NorthWind
 
08.11.22
08:00
(50) хм... ну двушка совсем древняя, там, кажется, и синтаксис в каких-то моментах отличался. Актуальные версии старше 3.7.
52 NorthWind
 
08.11.22
08:00
* новее
53 Гость из Мариуполя
 
гуру
09.11.22
21:14
Я, конечно, дико извиняюсь, но где Гений нашел мак с правой кнопкой мыши? Я тоже такой хочу, дайте два.
не, ну имитация там или  Ctrl + Click - это понятно, но ЗАЧЕМ?

если у Гения 1С-ка сама при старте компа запускается (аж три базы), если у него туалетная бумага при пердеже сама от рулона отрывается, то нафига он такое геморное решение заказчику подсовывает - юзать аналог ПКМ на маке?
странно - в одних вещах перфекционист, а в других - строго антиперфекционист.
54 Кирпич
 
10.11.22
09:04
(53) Ты ничего не понимаешь в бизнесе. Будет великое сражение с маками длинною в месяц. Потом гений явится к клиенту с изможденным лицом, выставит ценник тыщ в 40, возьмет деньги и удалится, упиваясь своим величием. А вы, глупцы, которые решили бы эту проблему за часик, просто бесплатно похихикаете.
55 NorthWind
 
10.11.22
09:41
ну не столько ПКМ, сколько кинуть файл на ярлык скрипта имхо. Это работает и в макоси (один из основных способов сделать что-либо) и в винде (по-моему, спионерено как раз из макоси).
56 NorthWind
 
10.11.22
09:41
та не заплатит 40 никто за это. 4 может заплатят
57 Garykom
 
гуру
10.11.22
10:11
Мой склад же облачный в браузере?
Тогда однозначно плагин к браузеру ваять, который будет перехватывать "Клиент выгружает XML УПД из Мой склад" и на лету XML-ину править...
58 NorthWind
 
10.11.22
12:23
(57) а че сразу не новый браузер на основе хромиума чисто под этот сайт?
59 Кирпич
 
10.11.22
13:29
Дарю гению. Пусть тыщу ссыкономит. Так как файл он нифига не показал, пускай сам допиливает, чего там менять.

#!/usr/bin/python

import os
import sys
import xml.etree.ElementTree as ET


filename = sys.argv[1]
tree = ET.parse(filename)
root = tree.getroot()

for node in root.findall(".//ДопСведТов[@КодТов]"):
    code = node.attrib['КодТов']
    node.attrib['КодТов'] = code.lstrip('0') #здесь меняем код

filename = os.path.abspath(filename)
directory = os.path.dirname(filename)
filename = os.path.basename(filename)
tree.write(os.path.join(directory, "out_"+filename), encoding="windows-1251")
60 Кирпич
 
10.11.22
13:30
интересно, на маке будет работать или нет
61 Кирпич
 
10.11.22
13:34
перед //ДопСведТов точку сожрало почему то
".//ДопСведТов[@КодТов]"
62 Kassern
 
10.11.22
14:03
(59) Модуль xml.etree.ElementTree не защищен от вредоносных данных. Устарело с версии 3.3: модуль xml.etree.cElementTree устарел.
Через несколько лет с новым питоном этой либы может и не стать, либо нужно будет переписывать под аналог библиотеку, либо где-то скачивать старую версию питона как я понял.
63 Кирпич
 
10.11.22
14:10
(62) какие несколько лет. тут до весны бы дожить
64 Kassern
 
10.11.22
14:11
(63) Главное не сколько прожить, а как. Доживем, не переживайте, все будет хорошо.
65 NorthWind
 
10.11.22
16:28
(62) вы будете смеяться, но в пайтоне, похоже, вообще нет парсеров, которые были бы полностью защищены от злонамеренно созданного XML. Что касается eTree, то он один из лучших и благополучно работает в последних версиях.
66 NorthWind
 
10.11.22
16:29
67 Гений 1С
 
гуру
10.11.22
16:47
(59) спасибо, брро. Вот никак не могу файл подготовить, занят
68 Гений 1С
 
гуру
10.11.22
16:47
(57) плагин к браузеру сваять - проще застрелиться, тем более который файлы обрабатывает
69 Гений 1С
 
гуру
17.11.22
14:47
(59) вот файлец:


<?xml version="1.0" encoding="Windows-1251" standalone="yes"?>
<Файл ИдФайл="ON_NSCHFDOPPR_....." ВерсФорм="5.01" ВерсПрог="МойСклад">
    <СвУчДокОбор>
        <СвОЭДОтпр/>
    </СвУчДокОбор>
    <Документ КНД="111" Функция="СЧФДОП">
        <СвСчФакт НомерСчФ="00417" ДатаСчФ="26.10.2022" КодОКВ="643">
            <Тест КодТов="00332"></Тест>
        </СвСчФакт>
        <ТаблСчФакт>
            <СведТов НомСтр="1" НаимТов="Табуретка" ОКЕИ_Тов="796" КолТов="1.0" ЦенаТов="1286.00" СтТовБезНДС="1286.00" НалСт="20%">
                <СвТД КодПроисх="840" НомерТД="333333333333"/>
                <ДопСведТов ПрТовРаб="1" КодТов="00101" НаимЕдИзм="шт" КрНаимСтрПр="Украина"/>
            </СведТов>
            <СведТов НомСтр="2" НаимТов="Стул" ОКЕИ_Тов="796" КолТов="1.0" ЦенаТов="1458.33" СтТовБезНДС="1458.33" НалСт="20%" СтТовУчНал="1750.00">
                <ДопСведТов ПрТовРаб="1" КодТов="00332" НаимЕдИзм="шт" КрНаимСтрПр="Украина"/>
            </СведТов>
        </ТаблСчФакт>
        <СвПродПер>
            <СвПер СодОпер="Товары переданы" ДатаПер="26.10.2022">
                <ОснПер НаимОсн="Договор" НомОсн="Г-25-092020" ДатаОсн="28.09.2020"/>
            </СвПер>
        </СвПродПер>
        <Подписант/>
    </Документ>
</Файл>

70 Кирпич
 
17.11.22
14:55
(69) ну для такого и сделано. только учти (61)
71 Кирпич
 
17.11.22
15:06
а вот так с диалогом выбора файла

#!/usr/bin/python

import os
import sys
import xml.etree.ElementTree as ET
from tkinter import filedialog as FD

filename = None

if len(sys.argv) > 1:
    filename = sys.argv[1]

if not filename:
    filename = FD.askopenfilename(filetypes=[("xml files","*.xml")])

if not filename:
    exit()

tree = ET.parse(filename)
root = tree.getroot()

for node in root.findall(".//ДопСведТов[@КодТов]"):
    code = node.attrib['КодТов']
    node.attrib['КодТов'] = code.lstrip('0') #здесь меняем код

filename = os.path.abspath(filename)
directory = os.path.dirname(filename)
filename = os.path.basename(filename)
tree.write(os.path.join(directory, "out_"+filename), encoding="windows-1251")
72 Кирпич
 
17.11.22
15:06
точку опять сожрало
73 vbus
 
17.11.22
15:23
(71) Есть подозрение, что ET.parse(filename) прочитает utf-8, кириллицу покорёжит, но зависит от файла. Можно открыть файл с нужной кодировкой или bin, и скормить Element.tree.fromstring()
74 Кирпич
 
17.11.22
15:30
(73) ну файл, само собой, должен быть в такой кодировке, какая у него в заголовке прописана. <?xml version="1.0" encoding="Windows-1251" standalone="yes"?>
75 Гений 1С
 
гуру
17.11.22
15:34
(71) мне надо без диалога. желательно. перетащить куда-нибудь файл или как то особо щелкнуть на нем. в винде есть SendO
76 Кирпич
 
17.11.22
15:42
(75) Ну у меня мака нету. Я фиг знает, что там можно, что нельзя. В винде можно просто на скрипт xml перетащить. В маке не знаю. Нанимай программиста и рассказывай ему чего ты хочешь
77 Гений 1С
 
гуру
17.11.22
16:01
(76) попробую перетащить на скрипт, окей.
78 Arbuz
 
17.11.22
16:09
(41) и правда, там же zsh.
79 Гений 1С
 
гуру
17.11.22
16:20
Что то нифига не понимаю, где еррор:

Код на PY:

#!/usr/bin/python


import os
import sys
import xml.etree.ElementTree as ET


#filename = sys.argv[1]
filename = 'C:\\test\\example.xml'
tree = ET.parse(filename)
root = tree.getroot()

for node in root.findall("//ДопСведТов[@КодТов]"):

    code = node.attrib['КодТов']
    node.attrib['КодТов'] = code.lstrip('0') #здесь меняем код


filename = os.path.abspath(filename)
directory = os.path.dirname(filename)
filename = os.path.basename(filename)
tree.write(os.path.join(directory, "out_"+filename), encoding="windows-1251")




========================== RESTART: C:\test\udp_xml.py =========================
Traceback (most recent call last):
  File "C:\test\udp_xml.py", line 11, in <module>
    tree = ET.parse(filename)
  File "D:\Users\fixin\AppData\Local\Programs\Python\Python311\Lib\xml\etree\ElementTree.py", line 1218, in parse
    tree.parse(source, parser)
  File "D:\Users\fixin\AppData\Local\Programs\Python\Python311\Lib\xml\etree\ElementTree.py", line 580, in parse
    self._root = parser._parse_whole(source)
xml.etree.ElementTree.ParseError: mismatched tag: line 9, column 10
80 Кирпич
 
17.11.22
16:27
(79) ну наверное файл кривой. кодировка может не та
81 Гений 1С
 
гуру
17.11.22
16:30
такс, был не валидный XML, поправил, понеслась другая ошибка.


========================== RESTART: C:\test\udp_xml.py =========================
C:\test\example.xml
Traceback (most recent call last):
  File "D:\Users\fixin\AppData\Local\Programs\Python\Python311\Lib\xml\etree\ElementPath.py", line 370, in iterfind
    selector = _cache[cache_key]
KeyError: ('//ДопСведТов[@КодТов]',)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\test\udp_xml.py", line 15, in <module>
    for node in root.findall("//ДопСведТов[@КодТов]"):
  File "D:\Users\fixin\AppData\Local\Programs\Python\Python311\Lib\xml\etree\ElementPath.py", line 411, in findall
    return list(iterfind(elem, path, namespaces))
  File "D:\Users\fixin\AppData\Local\Programs\Python\Python311\Lib\xml\etree\ElementPath.py", line 375, in iterfind
    raise SyntaxError("cannot use absolute path on element")
SyntaxError: cannot use absolute path on element

82 Кирпич
 
17.11.22
16:31
(81) точку поставил? (61)
83 Гений 1С
 
гуру
17.11.22
16:33
(82) уже поставил. слушай, а как мне прошлый файл переименовать в бак, а записать все в файл исходный?
84 Кирпич
 
17.11.22
16:34
(83) загугли
85 Гений 1С
 
гуру
17.11.22
16:35
и еще - как алерт какой-нибудь вызвать MsgBox
86 Гений 1С
 
гуру
17.11.22
16:39
с алертом разобрался.
(84) спасибо за диалогбокс, обойдемся без запуска по скрипту и перетаскивания
87 Кирпич
 
17.11.22
16:41
(83)

filename = os.path.abspath(filename)

import shutil
shutil.copy(filename, filename + ".bak")
88 Кирпич
 
17.11.22
16:43

#!/usr/bin/python

import os
import sys
import xml.etree.ElementTree as ET
from tkinter import filedialog as FD

filename = None

if len(sys.argv) > 1:
    filename = sys.argv[1]

if not filename:
    filename = FD.askopenfilename(filetypes=[("xml files","*.xml")])

if not filename:
    exit()

tree = ET.parse(filename)
root = tree.getroot()

for node in root.findall("..//ДопСведТов[@КодТов]"):
    code = node.attrib['КодТов']
    node.attrib['КодТов'] = code.lstrip('0') #здесь меняем код

filename = os.path.abspath(filename)

import shutil
shutil.copy(filename, filename + ".bak")

directory = os.path.dirname(filename)
filename = os.path.basename(filename)
tree.write(os.path.join(directory, filename), encoding="windows-1251")
89 Гений 1С
 
гуру
17.11.22
16:47
(88) ХЗ, немного по другому сделал, итоговый скрипт:

#!/usr/bin/python


import os
import sys
import xml.etree.ElementTree as ET
import ctypes  # An included library with Python install.
def Mbox(title, text, style):
    return ctypes.windll.user32.MessageBoxW(0, text, title, style)

from tkinter import filedialog as FD

filename = None

if len(sys.argv) > 1:
    filename = sys.argv[1]

if not filename:
    filename = FD.askopenfilename(filetypes=[("xml files","*.xml")])

if not filename:
    exit()

tree = ET.parse(filename)
root = tree.getroot()

for node in root.findall(".//ДопСведТов[@КодТов]"):

    code = node.attrib['КодТов']
    node.attrib['КодТов'] = code.lstrip('0') #здесь меняем код


filename = os.path.abspath(filename)

directory = os.path.dirname(filename)
filename = os.path.basename(filename)

os.rename(os.path.join(directory, filename), os.path.join(directory, "src_" + filename))
tree.write(os.path.join(directory, filename), encoding="windows-1251")

Mbox('Успешно', 'Обработка XML файла завершена', 1)

90 Гений 1С
 
гуру
17.11.22
16:47
(88) Спасибо, бро, счас это попробую на маке погонять.
91 Гений 1С
 
гуру
17.11.22
16:51
Если кому интересно, как я душил Питона: https://geniy1s.ru/startuem-v-python/
92 Kassern
 
17.11.22
16:52
(91) Вы площадку перепутали
93 Гений 1С
 
гуру
17.11.22
16:53
(92) будем считать это PET-проектом
94 Кирпич
 
17.11.22
16:53
(90) Это же на винде только будет работать
ctypes.windll.user32.MessageBoxW(0, text, title, style)
95 Кирпич
 
17.11.22
16:54
думаешь на маке есть user32.dll? :))))
96 Кирпич
 
17.11.22
16:55
tkinter  используй
97 Гений 1С
 
гуру
17.11.22
16:59
(95) не думаю.
(96) окей, посмотрим, сранно, что в питоне нет простого алерта
98 Кирпич
 
17.11.22
17:04
(97)в питоне кризис айти наверное. вот тебе алерт. хоть бы загуглил чтоли...

from tkinter import messagebox as MB
MB.showinfo(title="Успех", message="Обработка XML файла завершена")
99 Гений 1С
 
гуру
17.11.22
17:07
(98) все зашибись, ошибки не выдает, только сообщения тоже не выдает. видимо, когда скрипт завершается, убивается и окно сообщения
100 Кирпич
 
17.11.22
17:08
(99) куда нибудь не туда вставил, вот и не выдает. у меня всё выдает
101 Гений 1С
 
гуру
17.11.22
17:08
(100) ага, надо юзать IDE
102 PLUT
 
17.11.22
17:09
(91) "модный парень", теперь умеет в змею:) тыж гугл-погромист :)


"Осталось только проверить, как это будет работать на Маке."
103 Кирпич
 
17.11.22
17:09

#!/usr/bin/python

import os
import sys
import xml.etree.ElementTree as ET
from tkinter import filedialog as FD
from tkinter import messagebox as MB

filename = None

if len(sys.argv) > 1:
    filename = sys.argv[1]

if not filename:
    filename = FD.askopenfilename(filetypes=[("xml files","*.xml")])

if not filename:
    exit()

tree = ET.parse(filename)
root = tree.getroot()

for node in root.findall(".//ДопСведТов[@КодТов]"):
    code = node.attrib['КодТов']
    node.attrib['КодТов'] = code.lstrip('0') #здесь меняем код

filename = os.path.abspath(filename)

import shutil
shutil.copy(filename, filename + ".bak")

directory = os.path.dirname(filename)
filename = os.path.basename(filename)
tree.write(os.path.join(directory, filename), encoding="windows-1251")

MB.showinfo(title="Успех", message="Обработка XML файла завершена")
104 PLUT
 
17.11.22
17:10
+(102)  напоминает таблетки для памяти (как у деда Бидона в разъединенных штатах)

я зла зачеркнуто пайтон не помню, поэтому записываю
105 Гений 1С
 
гуру
17.11.22
17:11
(103) Ага, получилось.
Не работало, потому что SRC файл уже существовал и спотыкалось.

#!/usr/bin/python


import os
import sys
import xml.etree.ElementTree as ET

from tkinter import filedialog as FD

filename = None

if len(sys.argv) > 1:
    filename = sys.argv[1]

if not filename:
    filename = FD.askopenfilename(filetypes=[("xml files","*.xml")])

if not filename:
    exit()

tree = ET.parse(filename)
root = tree.getroot()

for node in root.findall(".//ДопСведТов[@КодТов]"):

    code = node.attrib['КодТов']
    node.attrib['КодТов'] = code.lstrip('0') #здесь меняем код


filename = os.path.abspath(filename)

directory = os.path.dirname(filename)
filename = os.path.basename(filename)

os.rename(os.path.join(directory, filename), os.path.join(directory, "src_" + filename))
tree.write(os.path.join(directory, filename), encoding="windows-1251")

from tkinter import messagebox as MB
MB.showinfo('Успешно', 'Обработка XML файла завершена')



Всем спасибо, скоро потестирую на маке, отпишусь
106 Кирпич
 
17.11.22
17:12
(105) "Всем спасибо, скоро потестирую на маке, отпишусь"
да нам пох
107 Гений 1С
 
гуру
17.11.22
17:13
(106) и славно
108 НафНаф
 
17.11.22
19:37
И теперь это ещё и на Хабре...
109 Гений 1С
 
гуру
17.11.22
19:45
(108) теперь все 1сники поняли, что применять скрипты на Питоне несложно в практических задачах. Пора забить на CMD и VBS
110 Кирпич
 
17.11.22
20:09
(109) Ну да. Теперь все. Ты был последним из одинесников, который о питоне не знал. Заценил мощь питонову, морда? :))
111 НафНаф
 
17.11.22
20:10
(109) может и убивцу на пайтоне?
112 Garykom
 
гуру
17.11.22
20:14
(110) Да питон местами очень мощен
Но какая же он кака когда легаси с кучей кода
Ну и тормозной местами, куча привязок к либам на С/С++ причем платформозависимым
Т.е. linux only например
113 Кирпич
 
17.11.22
20:20
(112) Да golang местами очень мощен
Но какая же он кака когда легаси с кучей кода
Ну и тормозной местами, куча привязок к либам на С/С++ причем платформозависимым
114 Кирпич
 
17.11.22
20:23
(111) Убийцу надо писать на VBS. Иначе убийцу никто бояться не будет
115 Garykom
 
гуру
17.11.22
20:29
(113) нене
golang пока еще легаси нету
и еще не настолько мощен как питон с его кучей кучей либ для всего
и чем мне голанг понравился что большая часть либ платформонезависимы, с очень редкими исключениями
в отличие от питона
116 Garykom
 
гуру
17.11.22
20:29
(114) точно
в ms office на vba
117 NorthWind
 
17.11.22
22:09
(112) зато можно одной строчкой иои лвумя сделать то, ради чего в плюсах подклчаешь буст или стл и полдня разбираешься в темплейтах и итераторах.
118 PloAl
 
17.11.22
22:11
(91) Кого то душит жаба, кого то душит питон, а кто то и сам душит змею)))
119 ДедМорроз
 
17.11.22
22:59
Кстати,macOS это же FreeBSD - там на шеле,видимо,можно накатать и ничего не ставить.
120 НафНаф
 
18.11.22
09:18
(109) а потом мы удивляемся, почему не любят на хабре 1С? Всё тебе правильно в комментариях написали - не нужны такие "статьи"
121 NorthWind
 
18.11.22
12:08
(119) с некоторой долей вероятности там хмл все же придется парсить. На шелле, мне кажется, это будет несколько хлопотно делать.
122 Гений 1С
 
гуру
18.11.22
12:26
(110) Вот что крест животворящий делает, Иоанне.
(111) для убивцы одного языка мало, нужна трехзвенка. Троица так сказать.
123 Gary417
 
18.11.22
12:52
(119) шелл не зависит от того фри это или еще что. в мак можно что хочешь поставить, хоть шелл хоть баш.

там немного другая проблема, мак это юникс и некоторые базовые утилиты на нем 'не GNUтые' и их работа отличается от линуксовых
я на солярке сталкивался с тем что ключи tar-а не совпадают с теми что есть в гнутой его версии
124 Гений 1С
 
гуру
18.11.22
13:03
(120) учись не применять множественное число вместо единичного, гг
125 Gary417
 
18.11.22
14:00
(124) ну 1С реально недолюбливают в отрасли
126 NorthWind
 
18.11.22
14:06
(125) завидують :) Хотя, надобно заметить, к статьям Гени на хабре есть и вполне конструктивные каменты. Иной раз их интереснее читать чем саму статью.
127 НафНаф
 
18.11.22
14:15
(124) учи русский язык - "единичного"
128 Gary417
 
18.11.22
14:17
(126) а на хабре комменты почти всегда лучше статьи под которой они написаны
129 Гений 1С
 
гуру
18.11.22
15:51
гм, на Маке скрипт работает только в IDLE
если щелкнуть и запустить в Python Launcher, просто мигает экран и все.
если запускать в терминале, то иногда запускается иногда пишет Segmentation Fault 11
Попробую переставить питон (там уже стоял). если не поможет, то пусть запускают в IDLE, это выше моих сил
130 Kassern
 
18.11.22
15:55
(129) "это выше моих сил" - гений не осилил?
131 PLUT
 
18.11.22
16:03
(129) скажи клеентам, пусть Мак на помойку отнесут, и купят нормальный ноутбук на линупсе или на крайний случай на винде
132 НафНаф
 
18.11.22
16:13
(129) напиши об этом на хабре
133 Гений 1С
 
гуру
18.11.22
16:17
(132) уже
134 Гений 1С
 
гуру
18.11.22
16:29
а можно дать файлу расширение pyz, а где-нибудь в маке прописать, что файлы pyz должны обрабатываться командой python %1??
135 Кирпич
 
18.11.22
16:38
(134) ты хоть убрал из скрипта вызов виндовой dll?
136 Гений 1С
 
гуру
18.11.22
16:40
(135) да, возможно это поможет: https://stackoverflow.com/questions/36564320/how-to-make-python-script-executable-on-osx
попробую из терминала запустить .py файл через командную строку, может там увижу ошибку
137 Кирпич
 
18.11.22
16:42
мож второй питон, вместо третьего запускается
138 Гений 1С
 
гуру
18.11.22
16:53
гм, в терминале пишу: open first.py

сам first банальный (посмотрел,там есть python3.11):

#!/usr/local/bin/python3.11
print("Hello World!")
input("Press Enter to continue...")

Без первой строки тоже не запускается
139 Кирпич
 
18.11.22
16:57
(138) нахрена писать open. в терминале нужно писать python first.py или
python3 first.py
140 Гений 1С
 
гуру
18.11.22
17:10
(139) так работает, а при щелчке нет.
Попробовал создать скрипт upd_xml.sh с кодом:

python3 upd_xml.py

Но он у меня открывается в текстовом редакторе
141 Gary417
 
18.11.22
17:16
(140) а на файле +x стоит? чтобы по щелчку то он работал
142 Gary417
 
18.11.22
17:17
(141) типа
chmod +x first.py
143 Гений 1С
 
гуру
18.11.22
17:27
(142) это скриптом делать?
144 Гений 1С
 
гуру
18.11.22
17:28
попробовал на Apple Scripty:
do shell script "cd ~; cd Desktop; python3"
выдает ошибку

do shell script "cd ~; cd Desktop; ls"
выдает что нет разрешения
145 Gary417
 
18.11.22
17:30
(143) просто запустить

у любого исполняемого файла должен быть флаг executable

после чего ты его как 'экзешник' сможешь запускать, без всяких python блаблабла и т.п.
146 Gary417
 
18.11.22
17:31
из консоли это будет както так:

bash$ ./first.py
Hello world!
147 Gary417
 
18.11.22
17:31
из консоли только не забывай что писать надо ./блабла (точку с прямым слешем) если запускаешь файл который лежит тамже где ты находишся
148 Гений 1С
 
гуру
18.11.22
17:33
(146) мне надо не из консоли, а из эппл-скрипта. пользователь не будет лазить в консоль
149 Гений 1С
 
гуру
18.11.22
17:33
(145) проставил этот флаг, не помогло.
150 Гений 1С
 
гуру
18.11.22
17:35
do shell script "cd ~; cd Desktop; open ./upd_xml.py"

так не ругается, но open ./upd_xml.py и из консоли тоже не запускается.
151 vovastar
 
18.11.22
17:35
(148) смори, а то изучишь AppleScript, начнешь зарабатывать нормально, потеряем хлопца.
152 Gary417
 
18.11.22
17:39
153 Gary417
 
18.11.22
17:39
set desktop_folder to "$HOME/Desktop"
do shell script "python " & desktop_folder & "/Pricematch/foo.py"
154 Gary417
 
18.11.22
17:40
python3 только
155 Gary417
 
18.11.22
17:40
(не 3.11, а 3 иначе все поломается как макось обновится)
156 Гений 1С
 
гуру
18.11.22
17:55
(153) так ругается
157 Кирпич
 
18.11.22
18:35
(156) пора объявлять кризис apple
158 Гений 1С
 
гуру
18.11.22
19:03
(157) да, в Win это намного проще делается
159 Кирпич
 
18.11.22
19:28
(158)так и в маке тоже просто. Просто ты тупишь.
160 Гений 1С
 
гуру
19.11.22
09:19
(159) в чем же я туплю?
161 vovastar
 
19.11.22
09:27
(160) в том что берёшься за задачи, в которых нихрена не шаришь.
162 Гений 1С
 
гуру
19.11.22
09:29
(161) это плохо? глаза боятся - руки делают. Поэтому я и успешен. А трусы дрожат от страха
163 NorthWind
 
19.11.22
09:53
(160) поставь pycharm community edition и посмотри построчно отладкой, что происходит. Я, кстати, обычно никаких алертов не показываю, все равно их никто не читает. Гораздо лучше сделать import logging и собирать ошибки в лог-файл. Если будет надо, потом почитаешь, в том числе и за длительное время.
164 trdm
 
19.11.22
09:54
(6) > мне вообще кажется, что VBS хоронить пора, и заместо него брать Питон. Там из минусов только то что установить надо, в остальном одни плюсы...

У VBS иногда бывают заскоки, типа CInt(строка) - переполнение int. пипец на строке "10523"
пришлось свой велик городить. CLng() не помог..
у питона свои заморочки..
165 Guk
 
19.11.22
09:55
(162) >> Поэтому я и успешен

смело!!!...
166 trdm
 
19.11.22
09:55
+(164) да и vbs зреново с юникодом работает, js-лучше.
167 NorthWind
 
19.11.22
09:58
(164) хмм. Может, в какой-то определенной винде

teststr = "10523"
digits = cint (teststr)
msgbox digits

у меня станцевало...
168 NorthWind
 
19.11.22
09:59
или к строке какая-нть дрянь невидимая приписана была справа или слева...
169 Гений 1С
 
гуру
19.11.22
10:16
(163) можно конечно, но ведь в IDE работает. возможно, придется действительно отладчик юзать.
170 Гений 1С
 
гуру
19.11.22
10:16
(163) а как там получить текст ошибки хотя бы? Окошко проскакивает и все
171 Гений 1С
 
гуру
19.11.22
10:17
(165) ну а че, 250к в месяц за неполный рабочий день это успех на фоне остальных 1сников.
172 NorthWind
 
19.11.22
10:19
(170) ну как-то так
        try:
            conn = pyodbc.connect(conn_string)
            logging.info('Соединение с базой произведено успешно')
        except pyodbc.Error as e:
            logging.error(f'Ошибка подключения к БД {e}')
            return vet_info
173 NorthWind
 
19.11.22
10:20
не претендую на правильность, но результат мне нравится
174 NorthWind
 
19.11.22
10:22
(171) по принципу той обезьяны, которая полощет в реке шкурки от банана и свою тридцатку в день имеет?
Тоже вариант, конечно, но не всем подходит. Есть еще такая штука самоуважение. Не, не слышал?
175 Гений 1С
 
гуру
19.11.22
10:32
(172) а куда она логгировать будет? хотя что говорить, она даже хелло ворлд не запускает. видимо до выполнения кода не доходит, надо попробовать простой алерт вывести
176 Гений 1С
 
гуру
19.11.22
10:33
(174) 2500 в час, на мой взгляд, достаточно для самоуважения. как говорили в СССР - любой труд почетен, особенно если он нравится исполнителю.
177 Guk
 
19.11.22
10:33
Осипов - программист!!!...
178 NorthWind
 
19.11.22
10:34
(175) куда скажешь, туда и будет. Например так
        logging.basicConfig(filename='D:/vetconduct.log', filemode='a', level=logging.INFO,
                           format='%(asctime)s: %(message)s')

        logging.info('Бот стартовал')
179 NorthWind
 
19.11.22
10:37
(176) не-а, недостаточно. Мне, например, для самоуважения желательно видеть, что моя работа приносит людям пользу. Для этого лучше работать в одном месте и заниматься чем-либо систематически, а не на поденщине.
180 Гений 1С
 
гуру
19.11.22
10:42
(178) боюсь, что скрипт даже не запускается, но это надо конечно поотлаживать.
например, написать скрит из одной строки:

logging.basicConfig(filename='D:/vetconduct.log', filemode='a', level=logging.INFO,
                           format='%(asctime)s: %(message)s')

Только это мак и видимо путь к файлу надо другой указывать. но это можно в IDLE Отладить а потом посмотреть, будет ли при запуске писаться
181 NorthWind
 
19.11.22
11:16
(180) мак это вроде как юниха, соответственно, для всех манипуляций правильно юзать текущую папку пользователя. Но я могу и ошибаться. Если бы мне пришлось делать подобное, я бы в VirtualBox поднял образ макоси и поразбирался бы, что там как. Поспрашивал бы на форумах маководов, может быть. Ну я уже повторяюсь, я об этом тут писал.
182 Гений 1С
 
гуру
19.11.22
15:07
(179) поденщина тоже приносит людям пользу. деньги - мерило твоей полезности.
(181) это долго и бюджет клиента не выдержит, проще экспериментировать на его маке через энидеск.
183 NorthWind
 
19.11.22
15:28
"деньги - мерило твоей полезности" идеалистическая чушь, даже спорить нет смысла. Если подумаешь, то увидишь массу примеров людей с деньгами, которые не то что не приносят пользу, а реально вредны для общества. И наоборот, есть масса людей, которые приносят существенно больше пользы, чем имеют денег.
184 NorthWind
 
19.11.22
15:31
ну если мак стоит и никому нафиг не нужен длительное время, то можно и так. Видев в жизни макось раза два с половиной, и то на расстоянии, я бы не рассчитывал, что это удастся сделать за часок. Скорее счет пойдет на часы.
185 Гений 1С
 
гуру
19.11.22
15:51
(183) тогда расслабься, детка, ибо ты не сможешь придумать объективных критериев пользы, все будет твоей иллюзией. Впрочем, это твоя иллюзия, что люди с деньгами вредны для общества. Деньги - самое объективное мерило пользы. Как бы тебе не нравился "эксплуататор", но то, что он преумножает деньги, говорит о том, что он кормит общество.
186 Гений 1С
 
гуру
19.11.22
15:52
(184) хотя казалось бы, банальная вещь запуска скрипта на питоне. ага. после этого кто-то крошит батоны на Винду.
187 NorthWind
 
19.11.22
16:16
(185) да какой эксплуататор. Посмотри сериал "Во все тяжкие", например. Там обычный школьный учитель с неплохими знаниями вроде приносил пользу. Но деньги у него появились, когда он начал варить и продавать метамфетамин
188 NorthWind
 
19.11.22
16:19
(186) да мне думается, что и там все несложно, проблема только в том, что надо знать, что делаешь. На то, чтобы овладеть вопросом, уходит время. Пользовательский опыт от макоси у людей обычно позитивный, но это не касается ситуаций, когда нужно пройтись вправо-влево от общепринятых действий.
189 Гений 1С
 
гуру
19.11.22
20:09
(187) значит, мало пользы приносил. Наркоманов тоже кто-то должен поддерживать был, видимо, ггг.
190 НафНаф
 
19.11.22
20:12
191 Гений 1С
 
гуру
19.11.22
20:40
(190) я и без прочтения этого документа запускал из терминала python3 first.py , смотри (139)
да, так работает. Но нужно, чтобы скрипт запускал пользователь. В этом вся закавыка, уважаемый КЭП
192 Гений 1С
 
гуру
19.11.22
20:41
Леонтьев меня отправил на стаковерфлоу, пожалуй, схожу туда.
193 vovastar
 
19.11.22
20:46
(192) О, вы уже друзья. Ролики будете вдвоем снимать?
194 NorthWind
 
19.11.22
22:12
(192) туда отправляет три четверти любой гуглежки по классическому программированию (тому, которое не на 1С).
195 NorthWind
 
19.11.22
22:13
и, надобно сказать, ответы там реально есть
196 Гений 1С
 
гуру
20.11.22
09:11
(194) (195) это да, я уже пользовался стаком в свое время, ответы там есть.
197 NorthWind
 
20.11.22
09:46
(191) как варик, можешь еще глянуть такую фишку у питона - к нему есть приблуды, которые исполняемые файлы делают. Может, так проще будет.
198 NorthWind
 
20.11.22
09:47
Я, правда, не пользовался, но читал про такое.
199 Гений 1С
 
гуру
20.11.22
11:19
(197) ну энто на худой конец, к тому же исполнимый файл должен быть под мак. гм.
200 NorthWind
 
20.11.22
13:16
гм. Ну я уже понял, что твоей работы с гуглом бюджет клиента не выдержит, нет... :) поэтому просто скажу, что исполняемые файлы генерятся и под мак тоже. Сюрприз, да?
201 Гений 1С
 
гуру
20.11.22
15:14
(200) спасибо кэп. Но может помогут на стаке, задал вопрос: https://stackoverflow.com/questions/74507979/dont-run-any-python-script-on-mac-os-work-only-in-idle
Все же это странно, что там скрипт не запускается, скорее всего решение банальное
202 vbus
 
20.11.22
15:44
Чтобы заработало нужно выполнить несколько условий:
1.Скрипт написанный в Windows, должен быть перекодирован, связано с концом строки.
2. Выполнять нужно в директории в которой пользователь может создавать и записывать файлы.
3. Скрипт который запускает питоний скрипт(как и сам питоний скрипт), должен быть исполняемый т.е. chmod a+x script.sh
4. Скрипт который запускает питоний скрипт должен быть ассоциирован с приложением которое его запускает, в данном случае нужно выбрать Терминал, т.е. как в Windows,
Изменение приложения для открытия файла

На Mac нажмите значок Finder  в Dock, чтобы открыть окно Finder.
Выберите файл, затем выберите «Файл» > «Свойства».
Можно также нажать файл, удерживая клавишу Control, а затем выбрать «Свойства».
В окне свойств нажмите стрелку  рядом с параметром «Открывать в приложении».
Нажмите всплывающее меню и выберите приложение Terminal.app .
Чтобы все файлы указанного типа открывались в этом приложении, нажмите кнопку «Настроить…».

Потом двойным кликом кликнуть по иконке, показать что получилось. В конце питонячего скрипта поставить input, чтобы прочитать, что там пишут.
203 Гений 1С
 
гуру
20.11.22
16:04
(202)
1. и как это сделать? вернее, в какую кодировку?
2. на рабочем столе пользователь прекрасно может создавать и записывать.
3. Что за скрипт для запуска скрипта? Это Терминал, Лаунчер? chmod делал. из Терминала то запускается.
4. Мне не дает для запуска PY назначить приложение Терминал.

я как раз и тестировал хелло ворлд с инпутом, он просто мелькает на экране и все.
204 vbus
 
20.11.22
16:52
Под linux есть прекрасная утилита dos2unix.С помощью нее можно сконвертировать концы строк как в Unix формат, так и обратно dos, или в mac формат. Может она и на маке есть.
В OS X символ окончания строки \n(LF). В Windows символ конца строки имеет два символа \r\n(CR+LF).
Соответственно ваша задача сводиться к замене символов \r\n на символ \n.
Можно написать на питоне. Можно руками переписать программу на mac в редакторе или IDLE.

|Что за скрипт для запуска скрипта? Это Терминал, Лаунчер? chmod делал. из Терминала то запускается.

Я предположил что вы кликаете по файлу типа run.sh в котором записано
shebang и
python3 myscript.py


|из Терминала то запускается.
Если из терминала запускается скрипт который вам нужен и нормально отрабатывает, то не нужно заморачиваться с окончанием строк.


|я как раз и тестировал хелло ворлд с инпутом, он просто мелькает на экране и все.
Значит нужно запустить теминал, и уже в терминале запускать hello world, input должен ожидать ввода, а не мелькать.
205 Гений 1С
 
гуру
20.11.22
17:43
(204) блин. я же объясняю, что в терминале все работает. и в IDLE работает. Значит строки кодировать не надо. Но пользователь то будет запускать не из терминала и не из IDLE.

Пользователю нужно просто кликнуть на PY файле и запустить.
206 Гений 1С
 
гуру
20.11.22
17:44
(204) кстати, когда я кликаю по SH файлу, он открывается в текстовом редакторе.
т.е. я делал SH файл с строкой: python3 first.py  
но не могу запустить SH файл
207 Кирпич
 
20.11.22
17:47
похоже, сервис на go всё решит
208 vbus
 
20.11.22
17:53
(206) я так и написал: Скрипт который запускает питоний скрипт должен быть ассоциирован с приложением которое его запускает, в данном случае нужно выбрать Терминал
209 Гений 1С
 
гуру
20.11.22
17:55
(208) что за скрипт, запускаютщий питоний скрипт?
210 Гений 1С
 
гуру
20.11.22
17:55
(208) конкретно запускает скрипт Python Launcher
211 NorthWind
 
20.11.22
18:11
Вот это не читали? https://stackoverflow.com/questions/3016337/mac-os-x-run-shell-script-from-the-desktop-gui
говорят, мало того что нужен x атрибут, еще для макосного гуя надо .command надо к имени файла приписать
212 NorthWind
 
20.11.22
18:15
вот что бывает, когда 1Сники решают попробовать UNIX(tm) way :)))
213 Гений 1С
 
гуру
20.11.22
18:32
(211) попробую.
(212) в UNIX даже не 1Сники не могут ничего конкретного сказать, хотя казалось бы - как создать SH-файл, ан нет.
214 Кирпич
 
20.11.22
18:43
не знаю. мне вот этого хватило https://docs.python.org/3/using/mac.html
215 Гений 1С
 
гуру
20.11.22
18:47
(214) замечательно, только питон лаунчер не запускает питон-скрипты, печалька
216 Кирпич
 
20.11.22
18:53
да вроде запускало
217 vbus
 
20.11.22
19:55
(209) себя слышишь? чьи слова:  "т.е. я делал SH файл с строкой: python3 first.py  " - это и есть скрипт, который должен быть ассоциирован с приложением которое его запускает, в данном случае нужно выбрать Терминал
218 Гений 1С
 
гуру
20.11.22
20:11
(216) тебе повезло. у меня не запускает. Вроде настроек каких не хватает.
(217) у меня нет мака под рукой, но вроде бы там нельзя выбрать Терминал в качестве запускателя скрипта, такая мысль приходила мне в голову, там в списке приложений нет терминала почему-то. Я даже отключал рекомендованные приложения, все равно нет.
219 Гений 1С
 
гуру
20.11.22
20:12
(217) завтра попробую еще раз выбрать терминал запускателем first.sh скрипта, приложу скрин
220 Garykom
 
гуру
20.11.22
21:12
(219) задолбал уже

вот сохрани в "Конвертер.html"

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title>Single Page Application</title>
</head>
<body>
  <input type="file">
  <script>
    const input = document.querySelector("input");
    let file, textIn, textOut;
    input.addEventListener("change", async e => {
      file = e.target.files[0];
      textIn = await file.text();
      document.getElementById("source").innerHTML = textIn;
      parser = new DOMParser();
      xmlDoc = parser.parseFromString(textIn, "text/xml");
      txt = ""
      dopSvedTovs = xmlDoc.getElementsByTagName("ДопСведТов");
      for (i = 0; i < dopSvedTovs.length; i++) {
        dopSvedTov = dopSvedTovs[i];
        codeTov = dopSvedTov.attributes.getNamedItem("КодТов");
        oldValue = codeTov.value
        newValue = oldValue.replace(/^0+/, '');
        txt += "" + oldValue + "->" + newValue + "<br>";
        codeTov.value = newValue;
      }
      document.getElementById("demo").innerHTML = txt;
      xmlSer = new XMLSerializer();
      textOut = xmlSer.serializeToString(xmlDoc);
      document.getElementById("target").innerHTML = textOut;
    });
  </script>
  <p id="source"></p>
  <p id="demo"></p>
  <p id="target"></p>
</body>
</html>

B открой в браузере, дальше сам догадешься
221 Garykom
 
гуру
20.11.22
21:24
222 Garykom
 
гуру
20.11.22
21:25
(221)+ т.е. когда юзер нажимает скачать в "Мой Склад" если стоит и активно расширение то XML ему свалится уже готовый
223 vbus
 
20.11.22
22:20
(219) |Нет терминала

Нужно чтобы запускатель был исполняемый, chmod +x запускатель
Чтобы иметь возможность выбрать терминал, нужно переключиться с «Рекомендуемые приложения» на «Все приложения». (Приложение Terminal.app можно найти в папке «Утилиты»)
224 Гений 1С
 
гуру
21.11.22
09:21
(220) в HTML я не смогу менять файл, пользователю придется скачивать файл, это не то. спасибо, конечно.
225 Гений 1С
 
гуру
21.11.22
09:23
(223) ну я переключался с рекомендуемых на все (не настолько тупой), но терминал не нашел, ладно поищу в папке утилиты, спасибо. Скорее всего через скрипт шелл сделаю, там таки отрабатывает в шелле же. Но странно, что питон лаунчен не запускает питон-скрипт.
226 Garykom
 
гуру
21.11.22
10:04
(224) Ты издеваешься что ли?
HTML прекрасно меняет файл, ты страничку то тестил?
Точнее создается новый файл, которым можно при скачке заменить старый
227 Garykom
 
гуру
21.11.22
10:08
Но я подразумевал ваяние плагина к браузеру
Который для
"В карточке отгрузки нажмите на кнопку ЭДО и выберите Экспортировать XML. На компьютер скачается XML-файл, который можно загрузить в СЭД."
https://support.moysklad.ru/hc/ru/articles/360000717487-Экспорт-документов-в-файлы-XML-ЭДО-

Сразу на лету подменит XML который качается
228 Garykom
 
гуру
21.11.22
10:08
(227)+ Без этой дурацкой возни с установкой питона и запуском скриптов с параметрами
229 Гений 1С
 
гуру
21.11.22
10:10
(226) вод видишь, вся проблема в "точнее" и "можно заменить". вот этого не надо
230 Гений 1С
 
гуру
21.11.22
10:10
(227) не в этом бюджете, спасибо. я не фикси, я фрил
231 Гений 1С
 
гуру
21.11.22
10:11
вот к чему приводит использования Мака - к извращениям. Т.к. не удается запустить банальный питон скрипт, начинаются извращения. ;-)
232 Garykom
 
гуру
21.11.22
10:12
(229) дурень
https://chrome.google.com/webstore/detail/download-master/dljdacfojgikogldjffnkdcielnklkce?hl=ru
изучи код и добавь к (220)
233 Garykom
 
гуру
21.11.22
10:16
234 Garykom
 
гуру
21.11.22
10:19
(230) У тебя проблема не в бюджете а в знаниях
Бюджет тут как раз минимальный, для спеца в теме это полчаса работы
235 Kassern
 
21.11.22
10:21
(234) Вы не понимаете, это для спеца в теме работы на пол часа, а для гени пошла уже третья неделя на удаление лидирующих нулей...
236 Garykom
 
гуру
21.11.22
10:25
237 Garykom
 
гуру
21.11.22
10:25
(235) гы
238 NorthWind
 
21.11.22
11:26
(231) Помнится, в "Двенадцати стульях" поэту Ляпису Трубецкому задавали вопрос - почему вы халтурите вместо того, чтобы учиться? :)) А ведь до сих пор жизненно.
239 NorthWind
 
21.11.22
11:27
когда не помнишь, да еще и не знаешь - все сложно. Но люди иногда учатся.
240 NorthWind
 
21.11.22
12:57
Хотя вообще ситуация интересная с точки зрения ведения дел... Вот если бы мне пришлось связываться с историей, в которой я ни ухо ни рыло - я либо сразу же отказался бы от такой работы, либо сидел бы долго и нудно разбирался. Если надо, днями и часами, забив на остальные занятия. В итоге получается, что я совершенно не годен для фриланса, потому что там все время разные люди и разные задачи, в том числе и до крайности странные. И как тратить себя на такое, чтобы при этом и чего-то заработать - совершенно непонятно. Возможно, Геня все делает правильно?..
241 Гений 1С
 
гуру
21.11.22
13:23
(234) "спец в теме" - это большой бюджет на освоение нюансов мака. Оно мне надо? Мне тупо надо скрипт запустить и все. Я как Шерлок Холмс, изучаю только то, что надо или пригодится.
242 Гений 1С
 
гуру
21.11.22
13:24
(240) это да, если бы ты так работал на фрилансе, ты бы не вывозил по доходам и получал сущие копейки, потому что за твою тягу к знаниям клиенты бы не захотели платить. Ну или находил бы богатых клиентов, хз. Но это не точно.
243 NorthWind
 
21.11.22
16:42
(242) да я и не вывозил. Когда я 15 лет назад после фриланса ушел на фикс, радости были полные штаны - наконец-то их всех стало можно послать лесом и не заниматься всякой дурью за копейки, это просто гора с плеч свалилась...
244 vovastar
 
21.11.22
16:44
(240) так поступают взрослые, адекватные люди, что в данном случае не применимо.
245 vovastar
 
21.11.22
16:46
(243) я тоже так хочу, но когда как подвернется какой нибудь "жирный", ечт сразу забывается...
246 Гений 1С
 
гуру
21.11.22
17:09
(243) зачем за копейки, если можно за рубли. За увесистые 2500 в час, например? ггг...
(244) люблю, когда обсуждают "нормальных" людей. Это мой конёк.
247 Сергиус
 
21.11.22
17:16
(240)Так может человеку главное не денег подзаработать, а чисто сам процесс?)
248 NorthWind
 
21.11.22
18:22
(246) ты текущей задачей уже очень много часов занимаешься с учетом переписок на форуме и попыток все это поднять. Думаю, часов десяток наберется. И ты хочешь сказать, клиент тебе 25 штук за это барахло заплатит? Очевидно же, что нет. Ну пусть 5 часов, так и половины тоже не заплатит. И фигли тогда свистеть?
249 Гений 1С
 
гуру
21.11.22
19:37
(248) 10 часов ты преувеличил. На форуме это как перекурить.
250 NorthWind
 
21.11.22
19:57
(249) окей, пусть не 10, пусть 5 или даже 3. Но вся проблема в том, что человек, который дружит с головой, десятку платить за софт, который убирает нулики в текстовом файле, не будет. Тем не менее работа сделана, надо ее сдать, так? А раз так, ни про какие 2500 в час речь не идет... Я и сам с этим сталкивался.
251 Гений 1С
 
гуру
21.11.22
20:51
(200) это уже было выше. и обкашливалось выше. резюме - надо сперва попробовать вещи попроще. я рассчитываю на выполнение SH файлов. Клиент сегодня не доступен, думаю, завтра потестирую
252 vovastar
 
21.11.22
21:50
(251) писец, уже и клиент сбежал)))
253 dmt
 
22.11.22
08:39
(0) так какой бюджет у задачи? Судя по этой теме, клиент машину должен будет продать, чтобы за нее рассчитаться
254 Кирпич
 
22.11.22
09:42
(253) Зачем машину продавать. Продать мак и купить ноут на винде. Разницу на оплату услуг гениального.
255 Кирпич
 
22.11.22
11:15
вот на go запилил. для mac, windows и linux
https://dropmefiles.com/wIwmW

на mac не проверял :))
256 NorthWind
 
22.11.22
11:28
(255) во Геня устроился... :) прям на форуме ему код пишут... Не жизнь - малина!
257 Кирпич
 
22.11.22
11:30
(256) он же на фрилансе. сдохнет ещё... кто на мисте флудить будет.
258 vovastar
 
22.11.22
11:33
(257) предлагаешь оплатить выпуск новых роликов на порнохабе?
259 Кирпич
 
22.11.22
11:35
(258) а его там не забанили езё?
260 Кирпич
 
22.11.22
11:36
щас он настрочит статью "как я изучил go за 5 минут"
261 vovastar
 
22.11.22
11:37
(259) да кто его знает. Может он уже и на онлифанс есть.
262 vovastar
 
22.11.22
11:39
(260) Не, он сейчас с сертификатами для выписки из сбера мучается. Обычный день одинесника же.
263 Garykom
 
гуру
22.11.22
11:45
(255) >вот на go запилил. для mac, windows и linux

Тоже понял в чем сила Go?
264 Garykom
 
гуру
22.11.22
11:46
(261) на мак зарабатывает?
265 NorthWind
 
22.11.22
11:52
(257) Так двестиписят тыщ в месяц же. И не меньше 2500 в час.
266 vovastar
 
22.11.22
11:55
(265) 4 часа в день и 15 дней в месяц.
267 Гений 1С
 
гуру
22.11.22
14:46
Когда запускал сегодня PY скипт, он запросил разрешения на запуск терминала, теперь при запуске пишет:

Last login: Tue Nov 22 14:42:17 on
cd '/Users/ivan/Desktop/' && '/usr/local/bin/pythonw' -i -t  '/Users/ivan/Desktop/upd_xml.py'  && echo Exit status: $? && exit 1
ivan@MacBook-Air ~ % cd '/Users/ivan/Desktop/' && '/usr/local/bin/pythonw' -i -t  '/Users/ivan/Desktop/upd_xml.py'  && echo Exit status: $? && exit 1
zsh: no such file or directory: /usr/local/bin/pythonw
ivan@MacBook-Air Desktop % python3 first.py
Hello World!
Press Enter to continue...
ivan@MacBook-Air Desktop %

Т.е. он использует подставновку от Python Launcher, там именно вот в таком виде в шелл подставляется имя файла.

Я для sh файла указал открывать в терминале, но он просто его открывает, не запуская, странно
268 Гений 1С
 
гуру
22.11.22
15:02
chmod a+x upd_xml.sh помогло, начало хоть запускать.

В общем сделал.
1. назначил для SH-скрипта обработчиком терминал.
2. прописал в SH-скрипте полный путь к рабочему столу (не знаю как это без юзернейма писать):
python3 /Users/ivan/Desktop/upd_xml.py
3. выполнил chmod a+x upd_xml.sh
4. терминал открывается, стартует скрипт, но не закрывается. иногда выдает ошибку segmentation fault, но в целом работает.
наверное надо в конце exit прописать?

Короче, и так сойдет, ибо овербюджет небольшой.
269 PLUT
 
22.11.22
15:06
(268) а статью про golang ждать?

вот (255)
270 Гений 1С
 
гуру
22.11.22
15:20
(269) (255)
звеняйте, голанг не нужен.
https://youtu.be/8F9dttRHBWM
271 Кирпич
 
22.11.22
15:23
Пробовал на mac. Установил питон. В свойствах файла поставил открывать в питонланчер и всё. Выбрал там в настройках Python GUI
никаких chmod sh и прочей лабуды не делал. Все работает. Двойной клик по файлу и все на ура. Гениального куда то понесло сразу не туда. Неделю носило и не туда вынесло.
272 Гений 1С
 
гуру
22.11.22
15:30
(271) тебе повезло. у меня питон лаунцер запускает как в (267) я расписал.
273 Kassern
 
22.11.22
15:32
(272) Что значит повезло? Вы думаете мак имеет ИИ, который решает, мол этому дать запустить, а тому не дать, какой-то он мутный тип?) Может просто вы делаете, что-то не так?
274 Кирпич
 
22.11.22
15:33
(272) Это тебе не повезло. Во всем мире же нормально работает.
275 Гений 1С
 
гуру
22.11.22
15:33
(273) может быть и не так. Но выяснять это у меня нет бюджета, звеняйте. Может надо было ковыряться в настройках PYLauncher, тоже вариант.
276 Гений 1С
 
гуру
22.11.22
15:33
(274) когда мне не везет, я ищу обходные пути и решаю проблему. Сила Гения 1С!
277 Гений 1С
 
гуру
22.11.22
15:34
если обобщить, то мой результат не зависит от везения. Он гарантирован. За это меня и любят клиенты.
278 Кирпич
 
22.11.22
15:46
(277) Так у тебя как раз от везения и зависит. Методом тыка и называется. Не туда тыкнул и две недели пролетело как один день.
279 PLUT
 
22.11.22
15:53
(278) ну так за один тык меньше денег дадут, чем за две недели упорных трудов и ожидания
280 Kassern
 
22.11.22
15:57
(279) Главное, чтобы клиент не понимал, что его дурят и задача плевая на пол часа)
281 crasler
 
22.11.22
15:57
Странно зачем такие сложности, достаточно команды:
sed -i -e 's/ КодТов="0*/ КодТов="/' file.xml
282 Kassern
 
22.11.22
16:00
(281) А как же питона по душить пару недель, заставить заказчика его установить и т.д. Без этого всего геня уже и не геня получается)
283 vovastar
 
22.11.22
16:06
(282) Геня мастер по удушению питона...
284 Гений 1С
 
гуру
22.11.22
16:14
(278) не, везет - это если сразу заработало, как у тебя. Ты же не столкнулся с проблемой запуска PY. А я столкнулся и решил.
(280) а задача реально плевая? не ври.
(281) эту команду пользователь будет вводить? Серьезно? ггг
285 Kassern
 
22.11.22
16:17
(284) "а задача реально плевая?" - судя по (281) - да.
"эту команду пользователь будет вводить? " - что мешает скрипт написать и его запускать?
286 Kassern
 
22.11.22
16:18
Вы сейчас тоже самое пытаетесь через питон сделать, только на кой он тут нужен, когда обычный метод и регулярка без проблем эту задачу решает?
287 Гений 1С
 
гуру
22.11.22
16:19
(285) задача плевая на бумаге, да забыли про овраги. Конкретно у этого пользователя не запускалась из-за нюансов настройки PY Launcher.

Так ничего не мешает скрипт написать. я и написал скрипт. Кросплатформенный. Дело в том, что на PC нет SED, это так, к слову.
288 Гений 1С
 
гуру
22.11.22
16:20
(286)
1. пользователь не будет набивать скрипт.
2. sedo - это метод для мака, а завтра на этот участок посадят буха на PC и че?

Думать надо немного вперед дальше, чем на 1 месяц
289 Kassern
 
22.11.22
16:22
(287) В смысле SED не работает на PC? https://developer.apple.com/library/archive/documentation/OpenSource/Conceptual/ShellScripting/AdvancedTechniques/AdvancedTechniques.html где тут сказано, что только для мобилок?
290 Garykom
 
гуру
22.11.22
16:23
(288) Геня ты идиот и олень.
291 Kassern
 
22.11.22
16:23
(288) Блин, что вы вкладываете в PC? Открою вам маленький секрет, Mac это тоже персональный компуктер)
292 Гений 1С
 
гуру
22.11.22
16:23
(289) вопросов больше не имею, в режиме демагогии мы не придем к конструктиву
(291) win
293 Kassern
 
22.11.22
16:23
(288) А послезавтра захочет на холодильнике запустить, почему вы не на джаве код написали?
294 Garykom
 
гуру
22.11.22
16:24
Прекрасно понятно что задачка легко решается обычным bat/bash скриптом
295 Kassern
 
22.11.22
16:24
При этом вы подсадили юзвера на определенную библиотеку стороннюю, которую ему кто-то должен будет поставить, чтобы на винде это дело запустилось и желательно без вашего вмешательства.
296 Гений 1С
 
гуру
22.11.22
16:26
(294) повторю для военных - как пользователь будет этот скрипт запускать? Это рас. И двас - мой скрипт можно запускать в винде и на маке. А баш-бат специфичен для каждой из оси. отож.
(295) вы подразумеваете пайтон под библиотекой? о да, подсажен... гггг
297 Kassern
 
22.11.22
16:26
Лет через 5 ему будет проблематично найти библиотеку нужной версии, чтобы код отработал как надо, скорее всего придется переписывать под новую библиотеку питона, так как некоторые методы могут быть изменены.
298 Garykom
 
гуру
22.11.22
16:26
(296) А как твой питон юзер запускает то а?
299 Garykom
 
гуру
22.11.22
16:27
(297) Это уже не его проблема же да?
300 Garykom
 
гуру
22.11.22
16:27
300
301 Гений 1С
 
гуру
22.11.22
16:28
(298) кликом по иконке и все, запускается скрипт
302 Kassern
 
22.11.22
16:28
(301) а sh файлы не так запускаются?
303 Kassern
 
22.11.22
16:30
(299) Походу я понял логику Гени, максимально подсадить клиента, чтобы он по каждому чиху ему звонил и за доп. плату дорабатывал. Мол новый комп поставили, ярлычок перенесли, а скрипт не работает, геня подключился, поставил питон со своей флешки-> выставил пару часов работы (профит!)
304 Гений 1С
 
гуру
22.11.22
16:30
(302) какой-такой sh в винде? алле?
(303) я не в ответе за твои галлюцинации.
305 vovastar
 
22.11.22
16:31
(300) в ветках Гени можно все посты так именовать, разницы не будет)
306 Kassern
 
22.11.22
16:32
(304) Приехали... "Скрипт по обработке XML из мой склад на Маке на чем писать?"->"какой-такой sh в винде? алле? " В этом весь Геня)
307 Garykom
 
гуру
22.11.22
16:33
(303) >поставил питон со своей флешки
ага питон не той системы - надо допиливать
308 Kassern
 
22.11.22
16:33
А вы у клиента уточнили нужно ли ему переплачивать за кросплатформенность и обязательная установка питона на все компы для работы этого скрипта?
309 Kassern
 
22.11.22
16:33
(307) Именно, я ж говорю - золотая жила)
310 Garykom
 
гуру
22.11.22
16:34
(304) >какой-такой sh в винде? алле?

можно и sh а можно и bat/cmd причем с командами linux или виндовыми
ну или powershell
311 PLUT
 
22.11.22
16:37
итого:

1) Г1С выучил питон
2) golang не нужен
3) а что, так можно было? (регулярка и как пользователь sh будет запускать?)
312 Garykom
 
гуру
22.11.22
16:40
(311) 4) ему пример на html/js не понравился, хотя все работает прекрасно в браузере
313 Kassern
 
22.11.22
16:50
Хотите универсально? Идете сюда https://dev.moysklad.ru/ Внимательно читаете API о чем я писал еще в самом начале и пишите свою выгрузку с корректными данными. Дальше можете уже за денюшку распространять свою поделку. Будет работать на всех системах работающих с Мой склад.
314 Гений 1С
 
гуру
22.11.22
16:54
(306) кури (288), я там писал, почему мне нужен кросплатформенный скрипт.
315 Гений 1С
 
гуру
22.11.22
16:55
(313) да, так можно, я обращался к МС по API, но явно не в этом бюджете. Писать выгрузку УПД это не 3 часа работы.
316 PLUT
 
22.11.22
17:03
(315) > Писать выгрузку УПД это не 3 часа работы.

т.е. за две недели (которые ты потратил на питон и скрипт) по времени не уложишься?
317 Гений 1С
 
гуру
22.11.22
17:49
(316) ты про срок или объем? я думаю, на запуск скрипта на питоне я потратил 3 часа всего (надо проверить по тогглу). Так что это норм бюджет. А выгрузку УПД по АПИ я думаю, надо 12 часов заряжать.
318 PLUT
 
22.11.22
17:52
(317) > на запуск скрипта на питоне я потратил 3 часа всего (надо проверить по тогглу)

джентельменам принято верить на слово

дата ветки 07.11.2022, сегодня 22.11.2022. итого 3 часа всего, но это неточно, надо проверить по тогглу
319 PLUT
 
22.11.22
17:55
(318) а если бы не помощь форума, то потратил бы по тогглу больше! и денег больше бы смог поднять за потраченное время. а не 3 часа
320 Гений 1С
 
гуру
22.11.22
17:56
(319) если бы да кабы, во рту росли грибы. Мастерство в том и заключается, чтобы уметь гуглить и здавать вопросы.
(318) ты путаешь объемы и сроки, для фикси и наемника это можно, для фри - смерти подобно.
321 Гений 1С
 
гуру
22.11.22
17:57
Если объем существенно превышает бюджет, я отказываюсь от задачи. Бывало пару раз такое. Ну или предлагаю доплатить. Тоже бывало
322 Kassern
 
22.11.22
17:57
(317) "А выгрузку УПД по АПИ я думаю, надо 12 часов заряжать." - так вы можете потом это расширение продавать и эту возможность заложить в стоимость. А так получается, что за деньги клиента вы написали решение и продаете его другим (что не очень-то красиво)
323 PLUT
 
22.11.22
17:58
(320) я всегда думал, что мастерство в том, чтобы мастерски продавать результаты своей работы, особенно тем, кто в ней не понимает

кого вообще волнует, что ты внутре написал и что загуглил. главное чтобы прочувствовали уровень проблемы и с радостью расстались с деньгами
324 Гений 1С
 
гуру
22.11.22
17:58
(322) Это иллюзия, что можно продавать. Можно предложить клиенту процент от продаж, покрывающий 50% его расходов, не вопрос. Если будут продажи, гггг. Но изначально платит клиент. Я не торгую воздушными замками. ЧТо там у вас получается в фантазиях и прожектах, я не ответственен
325 Гений 1С
 
гуру
22.11.22
17:59
(323) ты путаешь мастерство программиста (ваять) и менеджера (продавать). Опять путаешь, кашка в голове
326 PLUT
 
22.11.22
18:02
(325) это у тебя кашка в голове.

тыж не красивым кодом торгуешь, а протраченным временем
327 Гений 1С
 
гуру
22.11.22
18:04
(326) да, я торгую временем. и у меня Дт с Кт сходится. Обычно с небольшим профицитом. Я доволен своим фрилансом. Спасибо, КЭП
328 Гений 1С
 
гуру
22.11.22
18:05
А разработки я продаю, но пока немного. планирую увеличить их количество. Но пока не такой объем и регулярность продаж, чтобы предлагать клиенту скидку в счет будующих продаж.