|
v7: Как при программном создании документа достучаться до процедур создаваемого документа? | ☑ | ||
---|---|---|---|---|
0
Масянька
12.12.17
✎
11:58
|
День добрый!
Из одного док-та создается другой: программно, без открытия и пр. Как бы добраться до процедур, которые есть в модуле создаваемого? Спасибо. |
|||
1
Рэйв
12.12.17
✎
12:00
|
Через точку от переменной объекта, но процедуры должны быть экспортными
|
|||
2
Umga2002
12.12.17
✎
12:01
|
Всегда делал
Приоткрытии Параметры Закрыть |
|||
3
Масянька
12.12.17
✎
12:05
|
(1) В создаваемом сделала - Функция ПробитьЧекНаККМ() Экспорт
В другом: ДокЧек.ПробитьЧекНаККМ(); Выдало: ДокЧек.ПробитьЧекНаККМ(); {Документ.ТоварныйЧек.Форма.Модуль(357)}: Поле агрегатного объекта не обнаружено (ПробитьЧекНаККМ) ЧЯДНТ? |
|||
4
Масянька
12.12.17
✎
12:06
|
(2) Как обходной вариант - знаю. Но хочется по-человечески...
|
|||
5
Остап Сулейманович
12.12.17
✎
12:10
|
(4) По-человечески - код нужно вынести в глобальный модуль. И потом уже вызывать и из формы документа и из дополнительных обработок.
|
|||
6
silent person
12.12.17
✎
12:15
|
(3) в 7.7 ? там оно так не работает.
штатно, функции и процедуры доступны только в контексте открытой формы. |
|||
7
Масянька
12.12.17
✎
12:18
|
А как можно эмулировать нажатие кнопки? Не открывая форму и пр.
|
|||
8
Остап Сулейманович
12.12.17
✎
12:18
|
(6) Экспортные процедуры глобального модуля доступны в любом контексте.
|
|||
9
silent person
12.12.17
✎
12:21
|
(8) так это понятно, но
в (0) Как бы добраться до процедур, которые есть в модуле создаваемого? (7) ну или через formex можно попробовать, но там тоже надо форму открывать. ВыполнитьПроцедуру / CallAsProcedure Синтаксис: ВыполнитьПроцедуру(Контекст, ИмяПроцедуры, СписокАргументов) Параметры: • Контекст - тип: ГрупповойКонтекст. Контекст, в котором необходимо выполнить процедуру. Необязательный. По умолчанию - текущий контекст. • ИмяПроцедуры - тип: Строка. Имя процедуры. • СписокАргументов - тип: СписокЗначений. Список значений, содержащий аргументы процедуры. Если размер списка меньше, чем количество аргументов процедуры, то в оставшиеся аргументы передаются пустые значения. Лишние значения игнорируются. Значения по умолчанию игнорируются. Необязательный. По умолчанию - пустой список. Возвращает: результат выполнения метода в виде числа: 1 в случае успеха, 0 в противном случае. Описание: Метод предназначен для выполнения процедуры в заданном контексте. Пример: Перем Конт; Сервис = СоздатьОбъект("Сервис"); Если ОткрытьФорму("Обработка.Демо", Конт) = 1 Тогда Список = СоздатьОбъект("СписокЗначений"); Список.ДобавитьЗначение("Первый параметр"); Список.ДобавитьЗначение("Второй параметр"); Список.ДобавитьЗначение("Третий параметр"); Сервис.ВыполнитьПроцедуру(Конт, "Выполнить", Список); КонецЕсли; |
|||
10
Остап Сулейманович
12.12.17
✎
12:21
|
(7) Непонятно чего вы хотите. Поместить код нажатой клавиши в буфер очереди клавиатуры можно при помощи vbscript. Точнее - wshell. Вызвать обработчик без собственно нажатия - просто вызвать соответствующую процедуру из кода.
|
|||
11
Ёпрст
12.12.17
✎
12:31
|
(0) исли включишь turbobl в настройках 1cpp, то просто, через Конт.ИмяПроцы
|
|||
12
Масянька
12.12.17
✎
12:32
|
(11) А как? Включить.
|
|||
13
MadDAD
12.12.17
✎
12:41
|
(11) Для этого все равно нужен контекст. А через Документ.Новый() мы просто получим запись в БД. Надо по любому открывать форму.
Примерно так: Конт = 0; ОткрытьФорму(Док, Конт); Конт.ПроцедураМодуляФормы(); Конт.Форма.Закрыть(); |
|||
14
MadDAD
12.12.17
✎
12:42
|
(12)
УН=СоздатьОбъект("УправлениеНастройками"); УН.Включить("TurboBL"); |
|||
15
MadDAD
12.12.17
✎
12:44
|
(12) Ну и собственно через Контекст открытой формы можно все и заполнить.
|
|||
16
Масянька
12.12.17
✎
12:44
|
Блин... Как же не хотелось...
Спасибо. |
|||
17
MadDAD
12.12.17
✎
12:47
|
(7)
Сервис - объект 1С++ Сервис = СоздатьОбъект("Сервис"); Сервис.ЭмулироватьКлавиатуру("{ESC}"); |
|||
18
Ёпрст
12.12.17
✎
12:49
|
(16) не хотелось чего ?
|
|||
19
Fragster
гуру
12.12.17
✎
12:50
|
есть "слайдшоу", может поможет
http://catalog.mista.ru/public/16514/ |
|||
20
Ёпрст
12.12.17
✎
12:51
|
форму открывать ? Или что ?
Для этого процы, которые заполняют документ помещают в глобальник, и пользуют их. Типа глЗаполнитьШапку() |
|||
21
Масянька
12.12.17
✎
12:53
|
(18) Чтобы форма мелькала. Которая на фиг не нужна.
|
|||
22
Масянька
12.12.17
✎
12:54
|
(19) Ты меня совсем за дуру держишь? Шоу и я могу устроить...
А вот без шоу... |
|||
23
MadDAD
12.12.17
✎
12:55
|
(22) А без шоу сделать класс - наследник от документа. И в нем описать все что должно делаться без открытия формы.
|
|||
24
Масянька
12.12.17
✎
13:04
|
(23) Блондинка не потянет :(
|
|||
25
Масянька
12.12.17
✎
13:04
|
А с минимизацией окна стоит поиграться или нет? Чтобы не мелькало.
|
|||
26
MadDAD
12.12.17
✎
13:07
|
(25) Мне кажется тогда все окна начнут мелькать.
|
|||
27
Масянька
12.12.17
✎
13:08
|
(26) Мне тоже так кажется. Вот и спрашиваю.
|
|||
28
MadDAD
12.12.17
✎
13:12
|
(27) А вот сделать прозрачным можно попробовать.
|
|||
29
Ёпрст
12.12.17
✎
13:12
|
(27) нужно как-то себя заставиь перестать страдать х--ней, и переписать процы заполнения доков к себе в обработку. Или поместить их в глобальник
|
|||
30
MadDAD
12.12.17
✎
13:22
|
(29) Ну это же самый очевидный и простой вариант. Пионеры не ходят по прямой.
|
|||
31
Табуретко
12.12.17
✎
13:33
|
(25) Если все правильно прописать в ПриОткрытии() то и мелькать ничего не должно...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |