Снегопат
https://snegopat.ru/forum/

Как определить и открыть основную форму обработки?
https://snegopat.ru/forum/viewtopic.php?f=3&t=219
Страница 1 из 3

Автор:  vladnet [ 09 июл 2012, 11:22 ]
Заголовок сообщения:  Как определить и открыть основную форму обработки?

Открыта внешняя обработка (ну или просто форма обработки, отчета, внешнего отчета) как определить основную форму и открыть ее?

Автор:  orefkov [ 09 июл 2012, 11:47 ]
Заголовок сообщения:  Re: Как определить и открыть основную форму обработки?

Код:
$addin stdlib
...
var mdObj = windows.mdiView.enumChilds().item(0).mdObj
var mainForm = mdObj.container.findByUUID(stdlib.getUuidFomMDRef(mdObj.property("ОсновнаяФорма")))
mainForm.editProperty("Форма")

Это если открыта сама внешняя обработка. Если же одна из форм, то еще надо у mdObj взять parent.
Проверить тип объекта можно по mdObj.mdclass.name(1)

Автор:  orefkov [ 09 июл 2012, 11:53 ]
Заголовок сообщения:  Re: Как определить и открыть основную форму обработки?

Хотя лучше заменить:
Код:
var mdObj = windows.getActiveView().mdObj

Автор:  vladnet [ 09 июл 2012, 12:30 ]
Заголовок сообщения:  Re: Как определить и открыть основную форму обработки?

Код:
function macrosОткрытьОсновнуюФорму()
{
    try
    {
      var mdObj = windows.getActiveView().mdObj
      var mainForm = mdObj.container.findByUUID(stdlib.getUuidFomMDRef(mdObj.property("ОсновнаяФорма")))
      mainForm.editProperty("Форма")
        return true
    }catch(e){}
    return false
}


Такой код у меня выносит 1с наглушняк.

1С:Предприятие 8.2 (8.2.13.205)
Версия снегопата последняя

Автор:  orefkov [ 09 июл 2012, 12:44 ]
Заголовок сообщения:  Re: Как определить и открыть основную форму обработки?

Интересно. На 8.2.13.205 erf - открывает, а epf - валит.
Разберусь чутка попозжа, из 8.3 вылезу слегка.

Автор:  artbear [ 09 июл 2012, 14:55 ]
Заголовок сообщения:  Re: Как определить и открыть основную форму обработки?

Народ, а нельзя ли для скрипта "Немедленное выполнение кода" добавить фичу - добавление собственных макросов на лету.
например, хочется потестить вышеприведенный код, для этого сейчас нужно выполнить кучу действий:
- создать новый скрипт
- закинуть в него код
- сохранить скрипт
- загрузить скрипт в Снегопат
- открыть нужное окно (не автоматизируется)
- запустить полученный макрос (его еще нужно найти в списке)
Нельзя ли этот процесс как-то автоматизировать, необязательно в этот скрипте?
есть какие-то подсказки?

Автор:  kuntashov [ 09 июл 2012, 15:50 ]
Заголовок сообщения:  Re: Как определить и открыть основную форму обработки?

Артур, это же JavaScript!

Такие макросы ты можешь создавать налету прямо в окне немедленного выполнения кода:

Код:
macrosСозданДинамически = function () {
   Message("Привет, я Дино Макросус!");
}


После выполнения этого участка в макросы скрипта Immediate.js будет добавлен макрос "СозданДинамически".

Автор:  artbear [ 09 июл 2012, 15:54 ]
Заголовок сообщения:  Re: Как определить и открыть основную форму обработки?

kuntashov писал(а):
Артур, это же JavaScript!

Такие макросы ты можешь создавать налету прямо в окне немедленного выполнения кода:

Код:
macrosСозданДинамически = function () {
   Message("Привет, я Дино Макросус!");
}


После выполнения этого участка в макросы скрипта Immediate.js будет добавлен макрос "СозданДинамически".

Ага, я вот как раз про это и говорил.
Периодически плаваю я с такими "хитрыми" фичами JS :)

Автор:  artbear [ 09 июл 2012, 15:56 ]
Заголовок сообщения:  Re: Как определить и открыть основную форму обработки?

Сделал, но макрос в окне макросов для этого скрипта все равно не появился :(
что не так?

Автор:  artbear [ 09 июл 2012, 16:04 ]
Заголовок сообщения:  Re: Как определить и открыть основную форму обработки?

artbear писал(а):
Сделал, но макрос в окне макросов для этого скрипта все равно не появился :(
что не так?

Возможно, что Снегопат просто не умеет перечитывать скрипты для обновления списка макросов.
как бы его программно заставить перечитать список макросов определенного скрипта?

Саши (мн.число), ау :) !

Страница 1 из 3 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/