Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (3)

Лучшие ответы пользователя

Все ответы (10)
  • Не получается загрузить новые карточки товара в битрикс при помощи "csv"?

    omegastripes
    @omegastripes
    Может кому-то пригодится... Сам убил несколько часов, решая эту проблему.

    Сначала нужно настроить поля, которые должны отображаться при экспорте и импорте CSV:
    Меню - Настройки - Настройки модулей - Торговый каталог, Закладка "Экспорт/Импорт", Раздел "Экспорт / импорт из CSV", Ctrl + левым кликом выделить в списках поля, которые должны отображаться при экспорте / импорте, сохранить.

    Далее у меня так и не заработало, пока не сделал следующее:
    Меню - Контент - Инфоблоки - Типы инфоблоков - Каталог товаров - Каталог, Закладки "Поля" и "Поля разделов", Блок "Символьный код", снять галку "Использовать внешний сервис для перевода" (остальные галки в блоке стоят), сохранить.

    Следует заметить, что импорт CSV, в общем случае, может осуществляться по разному:

    Меню - Магазин - Настройки - Импорт данных, профиль "Import CSV (new)", кликнуть профиль "по умолчанию".
    Меню - Контент - Инфоблоки - Импорт - CSV.

    При этом, в первом случае проблемное поле обозначается как IE_CODE - Символьный код (B_IBLOCK_ELEMENT.CODE), а во втором IE_CODE - Мнемонический код (B_IBLOCK_ELEMENT.CODE). То есть имя поля в файле CSV всегда неизменно - "IE_CODE", а имя поля в БД - различно. Что интересно во втором случае половины полей не отображается, в частности у меня нет цены.

    При импорте поставить галки "Первая строка содержит имена полей", "Использовать настройки инфоблока для транслитерации символьных кодов". Ну и, естественно, при сохранении файла CSV из Excel необходимо перед загрузкой открыть его, например, в Notepad++, в меню Кодировка преобразовать в UTF-8, сохранить.

    Вообще, я для себя сделал табличку соответствия полей.
    5bc22c7550752565077560.png
    Ответ написан
    Комментировать
  • Не запускается vbs в реестре, как исправить?

    omegastripes
    @omegastripes
    Файлы .vbs не являются исполнимыми, для их запуска используются wscript.exe и cscript.exe. В вашем случае Cmdline должен быть вроде этого (вероятно, потребуется указать полный путь к wscript.exe):
    wscript.exe C:\test\ScanInvis.vbs C:\test\ScanInvis.bat /StiDevice:%1 /StiEvent:%2

    Касательно конвертированных в .exe скриптов замечу, что они палятся антивирусами со страшной силой. Единственные программы, которые позволили мне в свое время получить "чистый" .exe из VB - PrimalScript и Portable VB6.0.
    Ответ написан
    Комментировать
  • Как удалить свойства файла скриптом (bat, vbs)?

    omegastripes
    @omegastripes
    Например, для удаления свойств и личной информации из Excel файлов, можно сохранить приведенный ниже код в виде файла .vbs, и для удаления свойств - просто перетащить нужные файлы Excel на файл скрипта.

    Option Explicit
    Dim sSrc, oWB, oProp
    With CreateObject("Excel.Application")
    	.Visible = False
    	.DisplayAlerts = False
    	For Each sSrc in WScript.Arguments
    		On Error Resume Next
    		Set oWB = .Workbooks.Open(sSrc)
    		On Error Goto 0
    		If .Workbooks.Count > 0 Then
    			For Each oProp In oWB.BuiltinDocumentProperties
    				oProp.Value = Empty
    			Next
    			.UserName = " "
    			oWB.Save
    			oWB.Close
    		End If
    	Next
    	.Quit
    End With
    CreateObject("WScript.Shell").PopUp "Completed", 1, , 64
    Ответ написан
    1 комментарий
  • Через что можно сделать ввод большого текста с переходами на новые строки в VBS?

    omegastripes
    @omegastripes
    dim completed
    
    msgbox inputboxml("Enter text:", "Multiline inputbox via HTA", "default" & vbcrlf & vbtab & "multiline" & vbcrlf & "text")
    
    function inputboxml(prompt, title, defval)
    	set window = createwindow()
    	completed = 0
    	defval = replace(replace(replace(defval, "&", "&amp;"), "<", "&lt;"), ">", "&gt;")
    	with window
    		with .document
    			.title = title
    			.body.style.background = "buttonface"
    			.body.style.fontfamily = "consolas, courier new"
    			.body.style.fontsize = "8pt"
    			.body.innerhtml = "<div><center><nobr>" & prompt & "</nobr><br><br></center><textarea id='hta_textarea' style='font-family: consolas, courier new; width: 100%; height: 580px;'>" & defval & "</textarea><br><button id='hta_cancel' style='font-family: consolas, courier new; width: 85px; margin: 10px; padding: 3px; float: right;'>Cancel</button><button id='hta_ok' style='font-family: consolas, courier new; width: 85px; margin: 10px; padding: 3px; float: right;'>OK</button></div>"
    		end with
    		.resizeto 700, 700
    		.moveto 100, 100
    	end with
    	window.hta_textarea.focus
    	set window.hta_cancel.onclick = getref("hta_cancel")
    	set window.hta_ok.onclick = getref("hta_ok")
    	set window.document.body.onunload = getref("hta_onunload")
    	do until completed > 0
    		wscript.sleep 10
    	loop
    	select case completed
    	case 1
    		inputboxml = ""
    	case 2
    		inputboxml = ""
    		window.close
    	case 3
    		inputboxml = window.hta_textarea.value
    		window.close
    	end select
    end function
    
    function createwindow()
        rem source http://forum.script-coding.com/viewtopic.php?pid=75356#p75356
        dim signature, shellwnd, proc
        on error resume next
        signature = left(createobject("Scriptlet.TypeLib").guid, 38)
        do
    		set proc = createobject("WScript.Shell").exec("mshta ""about:<head><script>moveTo(-32000,-32000);</script><hta:application id=app border=dialog minimizebutton=no maximizebutton=no scroll=no showintaskbar=yes contextmenu=no selection=yes innerborder=no icon=""%windir%\system32\notepad.exe""/><object id='shellwindow' classid='clsid:8856F961-340A-11D0-A96B-00C04FD705A2'><param name=RegisterAsBrowser value=1></object><script>shellwindow.putproperty('" & signature & "',document.parentWindow);</script></head>""")
    		do
    			if proc.status > 0 then exit do
    			for each shellwnd in createobject("Shell.Application").windows
    				set createwindow = shellwnd.getproperty(signature)
    				if err.number = 0 then exit function
    				err.clear
    			next
    		loop
    	loop
    end function
    
    sub hta_onunload
    	completed = 1
    end sub
    
    sub hta_cancel
    	completed = 2
    end sub
    
    sub hta_ok
    	completed = 3
    end sub


    UPD: убрал ненужный тэг "html" в строке "set proc = ..."
    Ответ написан
    Комментировать