|
|
|
|
|
06.06.2017, 08:56
|
#1
|
БАЗИС 10 - Скрипты
systland
VIP
Регистрация: 30.10.2007
Адрес: Москва
Сообщений: 565
Сказал(а) спасибо: 303
Поблагодарили 452 раз(а) в 189 сообщениях
06.06.2017, 08:56
Рейтинг:
()
Обмениваемся , задаем вопросы, отвечаем... Все, что касается скриптов в БМ 10 в этой теме.
Последний раз редактировалось systland; 26.12.2017 в 11:52..
|
Просмотров: 462712
|
26.06.2017, 10:48
|
#2
|
Пользователь
Регистрация: 21.08.2009
Адрес: Санкт-Петербург
Сообщений: 59
Сказал(а) спасибо: 73
Поблагодарили 15 раз(а) в 9 сообщениях
Вес репутации: 189
|
Здравствуйте!
Как можно перебрать все объекты?
В базис 9 данный код работал.Сейчас,я так понимаю, видит только внешние объекты,вложенные нет.Если есть слои в проекте,то останавливается на слоях.
Возможно нужно рекурсивно обходить,только как,пока не понимаю.
Скрытый текст
//Перебираем все объекты
Model.forEach (function(obj) {
alert(obj.Name);
if (obj.Name[0]=="#") {
StartEditing(obj);
obj.Selected = true;
if (obj.Name[1]=="M" || obj.Name[3]=="M") {
create_article_milan(obj);
obj.Name = name_block;
// Задаем артикул для серии Quadro
} else if (obj.Name[1]=="Q" || obj.Name[3]=="Q") {
create_article_Quadro(obj);
obj.Name = name_block;
// Задаем артикул для ателье
} else if (obj.Name[1]=="A") {
create_article_Atelie(obj);
obj.Name = name_block;
}
}
});
[свернуть]
|
|
|
26.06.2017, 11:44
|
#3
|
Пользователь
Регистрация: 21.08.2009
Адрес: Санкт-Петербург
Сообщений: 59
Сказал(а) спасибо: 73
Поблагодарили 15 раз(а) в 9 сообщениях
Вес репутации: 189
|
Получилось решить самостоятельно.Вот решение,как перебрать объекты
Решение через рекурсию:
Скрытый текст
Код:
Recurse(Model);
function Recurse(List) {
for (var i = 0; i < List.Count; i++) {
Obj = List[i];
if (Obj.List){
call_nameObj(Obj);
Recurse(Obj);
}
else {
call_nameObj(Obj);
}
}
}
[свернуть]
|
|
|
5 пользователя(ей) сказали cпасибо:
|
|
26.06.2017, 19:14
|
#4
|
Пользователь
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 112
|
Всем привет.
Возникла необходимость переноса скриптов на Базис 10.
1.node.js надо ставить или оно в комплекте? или оно надо только если использовать TypeScript ,debug и модули от node?
2. почему в комплекте поставке Базис 10 не работающие скрипты ?(здесь ведь есть представители Базиса?). в частности require же в node по другому работает.
3.Документация по скриптам актуализирована?(насколько я понял нет). Будет ли это сделано в ближайщее время?
Господа из Базиса Вы делаете хороший продукт. Но без документации это пипец просто ( да я слышал что "скрипты поставляются как есть"), но зачем тратить время людей - напишите документацию по человечески. Нашел аккаунт на GitHub - там тоже какие то обрывки информации. Хорошо хоть инструкцию как настроить debug выложили. Правда на этот GitHub ссылок как бы нигде особо нет. В Базис 9 свойства объектов по перебору вычислял , сейчас еще веселее видимо будет. Извините если что вообщем. Хочется просто работать, а не искать и догадываться как тут у Вас все устроено, и не "выковыривать" свойства объектов перебором.
|
|
|
6 пользователя(ей) сказали cпасибо:
|
|
28.06.2017, 11:42
|
#5
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,035 раз(а) в 367 сообщениях
Вес репутации: 348
|
Цитата:
Сообщение от IStiv
1.node.js надо ставить или оно в комплекте? или оно надо только если использовать TypeScript ,debug и модули от node?
|
Весь движок скриптов в библиотеке node.dll. Так что Node.js устанавливать не надо.
Цитата:
Сообщение от IStiv
2. почему в комплекте поставке Базис 10 не работающие скрипты ? в частности require же в node по другому работает.
|
Со слов разработчика, system.require был попыткой сымитировать стандартный require, попытка не удалась, но (непонятно почему) было написано несколько примеров с ним. Вместо него лучше использовать system.include, с обновлением system.require будет работать, но не будет в подсказке.
В самом Node.js require работает иначе и работает с т.н. "модулями", для которых нужен свой стиль написания (возможно, скоро на гитхабе это будет описано)
Цитата:
Сообщение от IStiv
3.Документация по скриптам актуализирована?
|
Нет, но надеюсь, в ближайшее время обновится.
|
|
|
5 пользователя(ей) сказали cпасибо:
|
|
29.06.2017, 19:02
|
#6
|
Пользователь
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 112
|
Цитата:
Сообщение от Letos
Весь движок скриптов в библиотеке node.dll. Так что Node.js устанавливать не надо.
|
Спасибо за ответы.По возможности прошу еще ответить на вопросы.
1.этот "весь движок" . к нему можно подключать модули от node ? npm и все такое? если "да" то как?
2. на гитхаб есть свежий пример использования модуля "fs" как он подключен? или часть модулей защиты в .dll? (хотелось бы толковый обзор что да как там у Вас реализовано..)
3. Так как же теперь использовать require? очень хотелось бы инструкцию. (в коде много строк только require и спасал..)
4. Как теперь организовывать работу с COM объектами? (пример (который старый в новом Базисе) конечно же работает криво). в node надо отдельный модуль подключать для COM . Или минимальный пример бы как записать даннные в ячейку Exel через COM (данные из Базиса).
Вопросов вообщем много,а примеров и документации нет. Спасибо если внесете какую то ясность.
|
|
|
30.06.2017, 12:05
|
#7
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,035 раз(а) в 367 сообщениях
Вес репутации: 348
|
Прежде всего: Давайте, чтобы не засорять тему, все вопросы по поводу "что нового и как этим пользоваться" задавать мне в личные сообщения или на почту, а я буду править вики на гитхабе.
Цитата:
Сообщение от IStiv
1.этот "весь движок" . к нему можно подключать модули от node ? npm и все такое? если "да" то как?
|
Этот "весь движок" основан целиком и полностью на Node.js (правда, относительно старой версии). Так что дополнительные модули подключать можно, надеюсь сегодня или в выходные напишу инфу на гитхабе (ибо объяснять тут, думаю, долго). Но чтобы устанавливать модули из npm, необходимо установить Node.js
Цитата:
Сообщение от IStiv
2. на гитхаб есть свежий пример использования модуля "fs" как он подключен? или часть модулей защиты в .dll? (хотелось бы толковый обзор что да как там у Вас реализовано..)
|
Все стандартные модули Node.js (fs, path, net и т.д.) зашиты внутри библиотеки. Внешние (из npm) придется устанавливать вручную.
Цитата:
Сообщение от IStiv
3. Так как же теперь использовать require? очень хотелось бы инструкцию. (в коде много строк только require и спасал..)
|
Стандартный require в ноде подключает модули (у модуля немного другая структура кода). Как я понял, речь идет о функции system.require - она работает так же, как system.include и просто выполняет подключаемый файл, добавляя из него все переменные и функции.
Цитата:
Сообщение от IStiv
4. Как теперь организовывать работу с COM объектами? (пример (который старый в новом Базисе) конечно же работает криво). в node надо отдельный модуль подключать для COM . Или минимальный пример бы как записать даннные в ячейку Exel через COM (данные из Базиса).
|
Не совсем понял вопроса. Из всех примеров нашел только работу с вордом - он вроде нормально работает. По поводу экселя - немного погуглил, нашел инфу как все сделать, но не получилось - похоже индексные свойства вызывать не хочет. Думаю, что средствами Базиса запись в эксель сделать пока не получится.
|
|
|
5 пользователя(ей) сказали cпасибо:
|
|
30.06.2017, 13:25
|
#8
|
Пользователь
Регистрация: 21.08.2009
Адрес: Санкт-Петербург
Сообщений: 59
Сказал(а) спасибо: 73
Поблагодарили 15 раз(а) в 9 сообщениях
Вес репутации: 189
|
Не знаю как у других,у меня одно большое КАК?Вышли новые инструменты,новые возможности.Что это такое,как настраивать,как устанавливать,как с этим работать и что это дает.Если есть возможность записать видео,то это было бы очень круто.
|
|
|
21.07.2017, 14:38
|
#9
|
Пользователь
Регистрация: 15.02.2010
Сообщений: 52
Сказал(а) спасибо: 13
Поблагодарили 30 раз(а) в 15 сообщениях
Вес репутации: 186
|
function ArrangePositions() {
if (Action.Control.Owner.Owner.dpModelTree.Visible == False) {
Action.Control.Owner.Owner.a3ModelTreeExecute();
}
if(confirm('Будет выполнена расстановка позиций. Продолжить?')) {
if (Action.Control.Owner.Owner.dpModelTree.Visible == True) {
Action.Hint = 'Расстановка позиций...';
Action.Control.Owner.Owner.dpModelTree.Controls[1].BtnArrangeClick();
return True;
}
else {
alert('Закрыт инструмент <Структура модели>!');
}
} else {
alert('Отменено пользователем!');
}
return False;
}
У меня тоже перестал работать скрипт, который постоянно использую.
Пишет ошибку:
TypeError: Cannot read property 'Visible' of undefined
(см. картинку).
Может есть тут гуру скриптов, которые смогут помочь "подкрутить скрипт".
__________________
Если бы Бог хотел, чтобы мы думали только головой, он бы сделал нас колобками.
|
|
|
Пользователь сказал cпасибо:
|
|
21.07.2017, 15:01
|
#10
|
Пользователь
Регистрация: 15.02.2010
Сообщений: 52
Сказал(а) спасибо: 13
Поблагодарили 30 раз(а) в 15 сообщениях
Вес репутации: 186
|
На самом деле немного странное решение с новым движком для скриптов. У многих, я знаю, почти вся работа завязана на скриптах.
Им теперь получается всё переписывать заново? Вроде бы никто не писал, что что-то не устраивает. Зачем были эти нововведения, когда ТП отвечает, мол мы возможность скриптов сделали - а дальше сами думайте как с этим работать.
Может есть какой-то шаблон по переводу скриптов на новый движок? Может переменный как-то по другому объявлять или синтаксис поменять....
__________________
Если бы Бог хотел, чтобы мы думали только головой, он бы сделал нас колобками.
|
|
|
2 пользователя(ей) сказали cпасибо:
|
|
|
|
|
Нижняя навигация
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 08:04. Часовой пояс GMT +3.
|