Страница 1 из 2
Импорт из XML + запрет на объединение ячеек

Добавлено:
Пт янв 26, 2024 3:06 pm
Pierburg
Здравствуйте.
Дмитрий, работаем с маркетплейсами и объемы постоянно увеличиваются.
На данный момент на каждый день формируем одну расходную накладную на 1 маркетплейс, в поле серийного номера пишем номер задания. После этого по номеру очень удобно отслеживать возвраты
Проблема в том, что у разных заданий может быть одинаковая позиция с разной ценой, и при проведении накладной они объединяются, и цены соответственно по каждой позиции усредняются.
Хотелось бы иметь такую настройку, чтобы программа НЕ объединяла строки, а также делала загрузку серийного номера (номера задания для нас) через XML
Re: Импорт из XML + запрет на объединение ячеек

Добавлено:
Сб янв 27, 2024 9:46 am
dmitry
Накладную заполняете вручную, самостоятельно? Потому что вроде бы автоматически импортом из маркетплейса по API загрузится каждый заказ отдельно.
Или если вы пишите "загрузку серийного номера (номера задания для нас) через XML", то на сайте какой-то скрипт создает один файл за день?
Каким вариантом в Сервис / Интернет-магазин вы пользуетесь?
Может быть такое неожиданное решение: заполнять сначала счет (при его сохранении одинаковый товар не будет объединяться). По нему одним щелчком мыши можно создать накладную на продажу, двойной работы не будет.
Но в накладной для более сложных задач они должны объединяться, это не для красоты, а необходимость.
Re: Импорт из XML + запрет на объединение ячеек

Добавлено:
Сб янв 27, 2024 12:05 pm
Pierburg
Попробую поподробнее описать ам процесс
Речь сейчас идет о маркетплейсах Озон, вайлдбериз, сберегамаркет и тд.
Допустим 20 января падают заказы, 21 января мы их должны отгрузить. За сутки может упасть до 100 заданий на маркетплейс. Утром 21 числа мы формируем расходную накладную на каждый маркетплейс. Скачиваем файл заданий в экселе, макросом выгружаем в XML и загружаем в расходную накладную
Для примера:
Товар1 - 2шт - 150р - 300р - Задание1 (в поле серийного номера)
Товар1 - 3шт - 200р - 600р - Задание2
Товар1 - 1шт - 300р - 300р - Задание3
После проведения получаем
Товар1 - 6шт - 150р - 1200р (Задание1/задание2/задание3)
Все 100шт номеров заданий приходиться заполнять вручную, возникают ошибки.
Серьезные трудности возникают тогда, когда некоторые товары возвращаются назад (до 30%)
Вернулось задание1. В итоге роемся в архивах маркетплейса, тратим на это уйму времени, находим цены и количество, считаем все это с копейками, редактируем расходную накладную. Получаем
Товар1 - 4шт - ____ - 900р
Даже если делать через Возврат покупателя, все равно тратится ну очень много времени на вбивание цен и количества. Согласен с вами, можно искать и в счете все править, а на основании него делать расходку, но тут при большом количестве возвратов опять возникает куча повторных действий и возможны ошибки
Пример №2
Товар1 - 1шт - 100р - 100р - Задание1
Товар1 - 1шт - 200р - 200р - Задание2
Товар1 - 1шт - 300р - 300р - Задание3
Получаем
Товар1 - 3шт - 200р - 600р - (Задание1/задание2/задание3)
Вернули назад задание1
Товар1 - 2шт - 250р - 500р - (задание1/задание2) - и пропадает номер последнего задания
Поэтому считаю что импорт серийников из XML явно необходим, без вариантов
Насчет построчного проведения расходной накладной (без объединения строк, как в счете) - я понимаю, что это займет больший размер БД и снизит скорость вычислений, но это не идет ни в какое сравнение с экономией времени и удобством работы. Так что иметь такую возможность очень бы хотелось.
Re: Импорт из XML + запрет на объединение ячеек

Добавлено:
Вс янв 28, 2024 8:21 am
dmitry
1.
"Насчет построчного проведения расходной накладной (без объединения строк, как в счете) - я понимаю, что это займет больший размер БД и снизит скорость вычислений..."Нет, не поэтому. Для более сложных задач - учета по партиям закупки. Но я подумаю, может быть какое-то индивидуальное решение...
2.
"импорт серийников из XML явно необходим"Вы используете вот это?

- 0.png (47.45 КБ) Просмотров: 6506
Могу добавить там импорт серийника и примечания по строке.
3.
"макросом выгружаем в XML "Это очень интересно. Выложите здесь его текст или пришлите на
pr-4@ukr.net
Re: Импорт из XML + запрет на объединение ячеек

Добавлено:
Пн янв 29, 2024 12:15 pm
Pierburg
1. Будем признательны если получится
2. Да, именно это и используем
3. Пожалуйста, макрос для WB
Sub Wildberries(control As IRibbonControl)
myTXT = ""
Err.Clear
Application.ScreenUpdating = False
'On Error Resume Next
Start1 = "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "windows-1251" & Chr(34) & "?><DOC> <TYPE_ID>2</TYPE_ID> <TABLE> <TRANS>" & vbCrLf
End1 = "</TRANS> </TABLE> </DOC>"
myE = ActiveWorkbook.Sheets(1).Range("N" & ActiveWorkbook.Sheets(1).Rows.Count).End(xlUp).Row
For J = 2 To myE
'If ActiveWorkbook.Sheets(1).Range("A" & J) <> "" Then'
myTXT = myTXT & "<ROW> </ROW> <Article> <BarCode></BarCode> <Code>" & ActiveWorkbook.Sheets(1).Range("N" & J) & "</Code> <TextName> </TextName> <TypeID>1</TypeID> <FullFolderText>-</FullFolderText> </Article> <Person><Code>7721546864</Code> <TextName>Частное лицо (Wildberries)</TextName> <TypeID>1</TypeID> <FullFolderText> - </FullFolderText> <Adr> </Adr> <Tel> </Tel> <Memo> </Memo> </Person> <Sum> <Qnt>1</Qnt> <CurrID>0</CurrID> <Price>" & ActiveWorkbook.Sheets(1).Range("K" & J) & "</Price> </Sum>" & vbCrLf
'End If'
Next
myTXT = Start1 & myTXT & End1
Set fso = CreateObject("scripting.filesystemobject")
Set ts = fso.CreateTextFile("Z:\Wildberries\WB_" & Date & ".xml", True)
ts.Write myTXT: ts.Close
Set ts = Nothing: Set fso = Nothing
Application.ScreenUpdating = True
If Err > 0 Then MsgBox "Во время выполнения макроса были ошибки!": Exit Sub
On Error GoTo 0
' MsgBox "Макрос завершил свою работу!"
End Sub
Re: Импорт из XML + запрет на объединение ячеек

Добавлено:
Вт янв 30, 2024 3:29 pm
dmitry
Будет импортировать серийный номер (и примечание по строке на всякий случай).
Замените программу:
загрузить новую в архиве:
https://pr4.com.ua/install/Predpr4.2.134.5.rar ,
закрыть запущенную,
извлечь файл в папку программы с заменой.
(в Справка / О программе будет 4.2.134.5)
В макросе после </Price> </Sum> добавить <SerialNum>" & ActiveWorkbook.Sheets(1).Range("буква столбца" & J) & "</SerialNum>
Будет: </Price> </Sum> <SerialNum>" & ActiveWorkbook.Sheets(1).Range("буква столбца" & J) & "</SerialNum> & vbCrLf
(если действительно цена не нужна).
Re: Импорт из XML + запрет на объединение ячеек

Добавлено:
Ср авг 13, 2025 11:47 am
Pierburg
Дмитрий, можно ли выложить повторно.
Слетел весь сервер, восстановили из бэкапа,но прошлую версию. Спасибо.
Re: Импорт из XML + запрет на объединение ячеек

Добавлено:
Чт авг 14, 2025 4:57 am
dmitry
Выложить ссылку на новую версию программы? Тогда, в 2024 году новая была 4.2.134, сейчас 4.2.145.
В самой программе - Сервис / Обслуживание / Загрузить_обновление.
Если почему-то невозможно (блокируется), то загрузить с
https://pr4.com.ua/obnov_ru.htm, закрыть программу, установить в папку программы.
Re: Импорт из XML + запрет на объединение ячеек

Добавлено:
Чт авг 14, 2025 5:35 pm
Pierburg
благодарю
Re: Импорт из XML + запрет на объединение ячеек

Добавлено:
Вт авг 19, 2025 9:34 am
Pierburg
Дмитрий подскажите, как изменить каталог по умолчанию, который открывается при импорте XML файла?
Re: Импорт из XML + запрет на объединение ячеек

Добавлено:
Вт авг 19, 2025 1:23 pm
Ватсон
Присоединяюсь к вопросу. В одной из прошлых версий программа запоминала выбор пользователя. Сейчас принудительно перебрасывает в папку
Исходящие. Вот бы вернуть как было

Re: Импорт из XML + запрет на объединение ячеек

Добавлено:
Ср авг 20, 2025 4:59 am
dmitry
Это потому что в абсолютном большинстве случаев передают документы из одной БД в другую на одном компьютере. Заранее известно, что они будут находиться в папке Predprinim4\Исходящие.
Хорошо, со следующим обновлением будет запоминать последнюю указанную папку.
Re: Импорт из XML + запрет на объединение ячеек

Добавлено:
Пт окт 31, 2025 11:14 am
Pierburg
1.Дмитрий подскажите, как сделать добавление нового расходного документа (а также добавить позиции в существующий документ) сторонним скриптом непосредственно в саму базу данных.
При попытке самостоятельно разобрать структуры таблицы DocumentRows просто взорвалась голова.
2. Как сделать так, чтобы подпрограмма выполнялась при сохранении документа?
/////
выкладываю текст подпрограммы для перенумерации ВСЕХ документов в связке по номеру первого созданного документа
Dim ID1=Op.ID 'получаем ID текущего документа
If ID1>0 Then
Dim NMixt = Predpr.DataMain.DBmain.OpenRecordset("SELECT RELATID FROM DocLinks WHERE ItemID=" & ID1) 'получаем номер связи
'Microsoft.VisualBasic.MsgBox("Номер микстуры " & NMixt(0))
If Nmixt.RecordCount > 0 Then ' если есть связи
Dim MinID = Predpr.DataMain.DBmain.OpenRecordset("SELECT Min(ITEMID) FROM DocLinks WHERE RELATID=" & NMixt(0)) ' Минимальный ID документа - первый созданный документ
DIM NMin = Predpr.DataMain.DBmain.OpenRecordset("SELECT Num FROM Documents WHERE ID=" & MinID(0)) ' получаем номер первого созданнго документа
Dim SpisokID = Predpr.DataMain.DBmain.OpenRecordset("SELECT ITEMID FROM DocLinks WHERE RELATID=" & NMixt(0)) ' Получаем ID документов в связи
Do Until SpisokID.EOF = True
Predpr.DataMain.DBmain.Execute("UPDATE Documents SET Num=" & NMin(0) & " WHERE ID=" & SpisokID(0))
'Microsoft.VisualBasic.MsgBox("123")
SpisokID.MoveNext
loop
Op.Num=NMin(0)
Op.Form.SetBoxText ("BoxNum", Op.Num)
end if
end if
Re: Импорт из XML + запрет на объединение ячеек

Добавлено:
Сб ноя 01, 2025 6:11 am
dmitry
Пока быстро про "
2. Как сделать так, чтобы подпрограмма выполнялась при сохранении документа?".
Допустим, по накладной или счету создается оплата.
Тогда в Документы/Касса/Приход (и Банк/Поступление) в шаблон операции "Оплата нам" вставить программу.

- 1.png (81.58 КБ) Просмотров: 6041
If Op.ID > 0 Then Exit Sub
If Op.RelatDocID= 0 Then Exit Sub
Dim ParentOp as Predpr.Doc = Predpr.Datamain.Appdata.DocsCollection.Item(Op.RelatDocID)
Op.Num=ParentOp.Num
Dim BoxNum as Predpr.TextBoxEx = Predpr.GlobalFunction.GetControl(Op.Form, "BoxNum")
BoxNum.Text = Op.Num
(Она будет выполняться только перед первым сохранением при проведении связанного документа).
Если неизвестно, какой документ будет исходным, а какой созданный на основании его, то вставить и в счет, и в накладную, и в оплату.
P.S. И удобней будет продолжить в
(099) 213 89 85 Viber
(068) 220 21 52 Telegram
Маякните туда, я не спеша напишу перенумерацию уже существующих документов.
Re: Импорт из XML + запрет на объединение ячеек

Добавлено:
Вс ноя 02, 2025 6:14 am
dmitry
Выкладываю здесь перенумерацию всех связанных документов по номеру первого.
1. Скопировать текст ниже.
2. В программе нажать клавиши Ctrl+F10.
3. Вставить текст, нажать ОК.
Dim Tmin As Predpr.TableSQL = DB.OpenRecordset("SELECT RelatID, Min(ItemID) AS [MinID] FROM DocLinks GROUP BY RelatID")
Dim Tdoc As Predpr.TableSQL = DB.OpenRecordset("SELECT ID, Num FROM Documents")
Dim RelID As Integer, Num As Integer
Do While Not Tmin.EOF
Tdoc.FindFirst("ID=" & Tmin("MinID"))
Num = Predpr.GlobalFunction.Nz(Tdoc("Num"), 0)
RelID = Tmin("RelatID")
DB.Execute("UPDATE Documents SET Num = " & Num & " WHERE ID In (SELECT ItemID FROM DocLinks WHERE RelatID=" & RelID & ")")
Tmin.MoveNext()
Loop
Tmin.Close()
Tdoc.Close()