Skip to content

Commit

Permalink
Merge branch 'master' of github.com:infostart-hub/snegopat_modul
Browse files Browse the repository at this point in the history
  • Loading branch information
orefkov committed Sep 29, 2021
2 parents 95e3582 + 5a11823 commit 43ace84
Show file tree
Hide file tree
Showing 11 changed files with 210 additions and 7 deletions.
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/---------------------------------.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: Добавление новой функциональности
about: предложение новой идеи или функциональности к разработке
title: "[НОВОЕ] "
labels: enhancement
assignees: ''

---

**Существует проблема**
<!-- Описание существующей проблемы [...] -->

**Хотелось бы иметь следующую функциональность**
<!-- Вариант реализации [...] -->

**Дополнительный контекст**
<!-- Любая дополнительная информация -->
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Ошибка
about: Опишите возникающую ошибку и свои действия, приводящие к ней
title: "[BUG] 8.3.XX.YYYY - "
labels: bug
assignees: ''

---

**Платформа 1С, тип (32 или 64), окружение**
- Платформа 1С: 8.3.XX.YYYY
<!-- Платформа 1С: 8.3.15.1778
- Операционная система: Windows 10 (64)
- Локализация: ru -->

**Описание ошибки**
<!-- что конкретно происходит -->

**Сценарий воспроизведения**
<!-- Шаги по воспроизведению:
1. Открыть '...'
2. Нажать '....'
3. Запустить '....'
4. Где ошибка -->

**Ожидаемое поведение, если бы ошибки не было**
<!-- '....' -->

<!-- **Скриншоты**
если применимо, приложите скриншоты -->

<!-- **Дополнительный контекст** -->
4 changes: 2 additions & 2 deletions addins/DebugInstruments.js
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,7 @@ DebugInstruments = ScriptForm.extend({
if (this.form.useEpf){
var f = v8New('File', getAbsolutePath(this.form.pathToEpf));
if (f.IsFile() && f.Exist()){
expText = 'ВнешниеОбработки.Создать("' +f.FullName +'").'
expText = 'ВнешниеОбработки.Создать("' +f.FullName +'", Ложь).'
}
}
return expText + text;
Expand Down Expand Up @@ -779,4 +779,4 @@ function GetDebugInstruments() {


//var cht = GetFormatModule();
events.connect(Designer, "beforeExitApp", GetDebugInstruments());
events.connect(Designer, "beforeExitApp", GetDebugInstruments());
128 changes: 128 additions & 0 deletions addins/configCaption.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
//engine: JScript
//uname: configCaption
//dname: Заголовок окна Конфигуратора
//descr: Изменение заголовка окна Конфигуратора на более полезное
//author: orefkov, artbear
//help: inplace
//www: https://snegopat.ru/scripts/wiki?name=configCaption.js
//addin: global
exports.__esModule = true;
/// <reference path="./snegopat.d.ts"/>
/// <reference path="./v8.d.ts"/>
/*@
Это скрипт, позволящий заменять заголовок окна Конфигуратора на более информативный.
После подключения скрипта вы сможете настроить заголовок на свой вкус, выводя в нём информацию
о редактируемой базе данных, релизе 1С и т.п.
@*/
global.connectGlobals(SelfScript);
var stdlib = require("./std/std");
var captionExprPath = "ConfigCaption/Expression";
profileRoot.createValue(captionExprPath, 'ibName() + $(metaDataVersion(), " (", ")") + " / " + cnnString() + " / " + mainTitleShort + $(additionalTitle, " - [", "]")', pflSnegopat);
var captionExpr = profileRoot.getValue(captionExprPath);
var form;
var sVersion = env.sVersion;
var v8Version = env.v8Version;
var arch = env.arch;
var debugTitle = "*** ОТЛАДКА Снегопат *** ";

events.connect(windows, "onChangeTitles", SelfScript.self);
function setCaption(mainTitle, additionalTitle) {
var mainTitleShort = mainTitle.replace(/^Конфигуратор - /, "");
windows.caption = eval(captionExpr);

// Временное решение, после одобрения PR и пересборки в новый релиз snegopat_modul/src/ts/std/std.ts нужно переписать на
// if (stdlib.isDebug) или Александр добавит env.isDebug в api.h в класс as_env после чего можно будет
// переписать на if (env.isDebug) и убрать не нужный код проверяющий coreas-tracefunctions в modul/src/ts/std/std.ts если был одобрен его PR
if (profileRoot.getValue("CmdLine/OriginalCmdLine").toLowerCase().indexOf("-coreas-tracefunctions 1") > 0)
{
windows.caption = debugTitle + eval(captionExpr);
}
}
function ibName() {
return stdlib.ibName();
}
function metaDataVersion() {
return metadata.current.rootObject.property("Версия");
}
function cnnString() {
return НСтр(СтрокаСоединенияИнформационнойБазы(), "File") || НСтр(СтрокаСоединенияИнформационнойБазы(), "Srvr") + ":" + НСтр(СтрокаСоединенияИнформационнойБазы(), "Ref");
}
function $(str, prefix, suffix, repl) {
if (arguments.length < 4)
repl = '';
if (arguments.length < 3)
suffix = '';
if (arguments.length < 2)
prefix = '';
return str.length ? prefix + str + suffix : repl;
}
function onChangeTitles(param) {
setCaption(param.mainTitle, param.additionalTitle);
param.cancel = true;
}
setCaption(windows.mainTitle, windows.additionalTitle);
function macrosПоказатьНаименованиеБазы() {
Message("имя текущей базы = <" + ПолучитьНаименованиеБазы() + ">");
}
function ПолучитьНаименованиеБазы() {
return profileRoot.getValue("CmdLine/IBName").replace(/^\s*|\s*$/g, '');
}
function macrosПоказатьНаименованиеБазыПоПутиКНей() {
var baseName = stdlib.ПолучитьНаименованиеБазы1CИзФайлаЗапуска(СтрокаСоединенияИнформационнойБазы());
Message("имя текущей базы = <" + baseName + ">");
}
function macrosПоказатьСтрокуСоединенияИБ() {
Message(НСтр(СтрокаСоединенияИнформационнойБазы(), "File") || НСтр(СтрокаСоединенияИнформационнойБазы(), "Srvr") + ":" + НСтр(СтрокаСоединенияИнформационнойБазы(), "Ref"));
}
/*@
## Макрос Настройка
Макрос вызывает диалог для настройки состава отображаемой в заголовке Конфигуратора информации.
Настройка заключается в вводе выражения на языке JavaScript, которое будет вычислятся при изменениях
заголовка Конфигуратора. Результат вычисления этого выражения и будет отображён как заголовок основного окна.
В выражении можно использовать следующие переменные и функции:
- mainTitle - штатный основной заголовок
- mainTitleShort - штатный основной заголовок без слова Конфигуратор
- additionalTitle - дополнительный заголовок
- ibName() - имя базы данных
- metaDataVersion() - свойство "Версия" метаданных
- cnnString() - данные из строки соединения
- sVersion - версия Снегопата
- v8Version - релиз 1С
- arch - разрядность платформы x32\x64
- Функция $(Строка, Префикс, Суффикс, ВместоПустой) - вывести Префикс + Строка + Суффикс если Строка не пустая, иначе вывести ВместоПустой
@*/
function macrosНастройка() {
form = loadFormForScript(SelfScript);
form.Выражение = captionExpr;
form.ЭлементыФормы.Помощь.Заголовок = "Можно использовать:\n" +
"mainTitle - основной заголовок\n" +
"mainTitleShort - основной заголовок без слова Конфигуратор\n" +
"additionalTitle - дополнительный заголовок\n" +
"ibName() - имя базы данных\n" +
"metaDataVersion() - свойство \"Версия\" метаданных\n" +
"cnnString() - данные из строки соединения\n" +
"sVersion - версия Снегопата\n" +
"v8Version - релиз 1С\n" +
"arch - разрядность платформы x32\\x64\n" +
"Функция $(Строка, Префикс, Суффикс, ВместоПустой) - вывести Префикс + Строка + Суффикс если Строка не пустая, иначе вывести ВместоПустой\n";
if (form.ОткрытьМодально()) {
captionExpr = form.Выражение;
profileRoot.setValue(captionExprPath, captionExpr);
setCaption(windows.mainTitle, windows.additionalTitle);
}
form = null;
}
/* Возвращает название макроса по умолчанию - вызывается, когда пользователь
дважды щелкает мышью по названию скрипта в окне Снегопата. */
function getDefaultMacros() {
return 'Настройка';
}
function КоманднаяПанель1Проверить(Кнопка) {
var mainTitle = windows.mainTitle, additionalTitle = windows.additionalTitle;
var mainTitleShort = mainTitle.replace(/^Конфигуратор - /, "");
MessageBox(eval(form.Выражение));
}
function КоманднаяПанель1ОК(Кнопка) {
form.Закрыть(true);
}
2 changes: 1 addition & 1 deletion addins/debugHelpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ function onDoModal(dlgInfo) {
if (!exprCtrl.value.match(/^\s*$/))
{
if (!params.commandCheck) {
exprCtrl.value = 'ВнешниеОбработки.Создать("' + params.path + '").Отладить(' + exprCtrl.value + ', ' + (params.doModal ? 'Истина' : 'Ложь') + ')';
exprCtrl.value = 'ВнешниеОбработки.Создать("' + params.path + '", Ложь).Отладить(' + exprCtrl.value + ', ' + (params.doModal ? 'Истина' : 'Ложь') + ')';
} else {
exprCtrl.value = ''+ params.command + '(' + exprCtrl.value + ', ' + (params.doModal ? 'Истина' : 'Ложь') + ')';
}
Expand Down
21 changes: 18 additions & 3 deletions addins/extSearchReplace.js
Original file line number Diff line number Diff line change
Expand Up @@ -678,13 +678,23 @@ ExtSearch = ScriptForm.extend({
}
},

getTextObject : function (obj, title) {

if (obj && toV8Value(obj).typeName(0) == 'TextDocument')
return new TextDocObject(obj, title);

if (obj) Message('Неподдерживаемый тип объекта для поиска: ' + toV8Value(obj).typeName(0));

return null;
},

getWindowObject : function (view) {
try {
if (!view || !view.isAlive())
return null;
} catch(e){}

if (view.mdObj && view.mdProp)
if (view.mdProp && view.mdObj)
return new MdObject(view.mdObj, view.mdProp, view.title);

var obj = view.getObject();
Expand Down Expand Up @@ -745,8 +755,13 @@ ExtSearch = ScriptForm.extend({
this.re = this.buildSearchRegExpObject();
if (!this.re) return;

var obj = this.getWindowObject(activeWindow.GetView());
if (!obj) return;
var aView = activeWindow.GetView();
var obj = this.getWindowObject(aView);
if (!obj) {
obj = this.getTextObject(activeWindow.textWindow.textDocument, aView.title);
if (!obj)
return;
}

var docRow = this.search(obj, this.re);

Expand Down
1 change: 1 addition & 0 deletions engine/controls.as
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,7 @@ class IV8Form {
return false;
}
IV8Control&& get_activeControl() {
if(form is null) {return null;}
uint ai = form.getActiveControlId();
if (ai != uint(-1))
return _getControl(ai);
Expand Down
2 changes: 1 addition & 1 deletion engine/intellisite.as
Original file line number Diff line number Diff line change
Expand Up @@ -602,7 +602,7 @@ mixin class MethodInsertable {
if (!isFunction)
text += ";";
if (d.key == "нстр")
text.replace("¦", "\"ru='¦';\"");
text.replace("¦", "\"ru='¦'\"");
}

#if ver >= 8.3.4
Expand Down
1 change: 1 addition & 0 deletions src/ts/std/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,7 @@ export var Frntend = {
ConfigEditLang: new Command(15, "Язык редактирования конфигурации"),
FindRefsFrom: new Command(82, "Поиск ссылок в объекте"),
GoToDefinition: new Command(83, "Перейти к определению"),
AllRoles: new Command(84, "Все роли"),
QueryWizard: new Command(63, "Конструктор запроса"),
QueryWizardParam: new Command(217, "Конструктор запроса с обработкой результата"),
TextBlockEscapeNewline: new Command(106, "Добавить перенос строки"),
Expand Down
7 changes: 7 additions & 0 deletions src/ts/std/std.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,13 @@
import * as stdcommands from "./commands";
import {AddinsList} from "./build";

// Определение режима отладки
var isDebug = false;
if (profileRoot.getValue("CmdLine/OriginalCmdLine").toLowerCase().indexOf("-coreas-tracefunctions 1") >= 0)
{
isDebug = true;
}

global.connectGlobals(SelfScript);
/**
* Guid'ы различных типов документов
Expand Down
2 changes: 2 additions & 0 deletions v8api/metadata.v
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,8 @@
63
#elif ver < 8.3.10
41
#elif ver > 8.3.19
45
#else
42
#endif
Expand Down

0 comments on commit 43ace84

Please sign in to comment.