Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Выполнение процедуры из другого документа          
ZhenyaYa Подменю пользователя
сообщение 19.11.12, 15:51
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 105
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Здравствуйте еще раз)
Подскажите как можно выполнить процедуру с документа1, которая находится в модуле документа2. Смотрю у формекс есть

Перем Конт;
Сервис = СоздатьОбъект("Сервис");
Если ОткрытьФорму("Обработка.Демо", Конт) = 1 Тогда
        Список = СоздатьОбъект("СписокЗначений");
        Список.ДобавитьЗначение("Первый параметр");
        Список.ДобавитьЗначение("Второй параметр");
        Список.ДобавитьЗначение("Третий параметр");
        Сервис.ВыполнитьПроцедуру(Конт, "Выполнить", Список);
КонецЕсли;


но здесь контекст передается через открыть форму...можно ли как то без открытия формы?

MATEVI Подменю пользователя
сообщение 19.11.12, 16:27
Сообщение #2

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 961 раз
Рейтинг: 0

Вызов процедур/функций документов/справочников/обработок/отчетов извне
// Вызов процедуры на примере документа.
// модуль формы документа
Процедура ПриОткрытии()
     Если ТипЗначенияСтр(Форма.Параметр)="СписокЗначений" тогда
          СЗ=Форма.Параметр;                        
          Команда=СЗ.Получить("Команда");
          Если "Печать"=Команда тогда  
               Печать();  
               СтатусВозврата(0);
               Возврат;
          КонецЕсли;    
     КонецЕсли;    
КонецПроцедуры
// Сам вызов (из любого места конфигурации):
СЗ=СоздатьОбъект("СписокЗначений");
СЗ.ДобавитьЗначение("Печать","Команда");
ОткрытьФормуМодально(Док.ТекущийДокумент(),СЗ);


По материалам интернета

Сообщение отредактировал MATEVI - 19.11.12, 16:27

Спасибо сказали: ZhenyaYa,

ZhenyaYa Подменю пользователя
сообщение 19.11.12, 16:50
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 105
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

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

Kutuzov Подменю пользователя
сообщение 19.11.12, 16:56
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 328
Из: Одесса
Спасибо сказали: 144 раз
Рейтинг: 0

Цитата(ZhenyaYa @ 19.11.12, 16:50) *
а без открытия формы?
просто делал вчера через открыть форму, думал открыть форму, выполнить процедуру с открытого документа ( которая вызывается "приОткрытии"), закрыть форму, открыть следующую...и так порядка 500 раз. вот только они закрываться не успевают...в результате открывается некоторое количество доков и зависает...


Я делал заход в форму документа в процедуру через "ПриОткрытии". От туда вызывал нужную мне процедуру и потом сбрасывал продолжение открытия, тем самым форма даже не появляеться и сама закрываеться.

Процедура Печать2011(Парам=0,ТекПринтер="", Количество=1,  ТолькоСвою = 0, ТолькоКлиента =0 ) Далее
//============================
Процедура ПриОткрытии()  
    
    Параметры = Форма.Параметр;
    Если ПустоеЗначение(Параметры)=0 Тогда
        Печать = Параметры.ПолучитьЗначение(1,Печать);
        ТекПринтер = Параметры.ПолучитьЗначение(2,ТекПринтер);  
        Количество = Параметры.ПолучитьЗначение(3,Количество);
        ТолькоСвою = Параметры.ПолучитьЗначение(4,ТолькоСвою);
        ТолькоКлиента = Параметры.ПолучитьЗначение(5,ТолькоКлиента);
        Если Печать = 1 Тогда                                        
            Печать2011(Печать,ТекПринтер,Количество,ТолькоСвою,ТолькоКлиента);
            СтатусВозврата(0); // Соответственно вот и отмена открытия
        Конецесли;                
    КонецЕсли;


Сообщение отредактировал Kutuzov - 19.11.12, 16:57


Signature
Вы станете богаче, лишь став умнее...
Чем дальше в лес, тем толще партизаны.
Нельзя недооценивать, не предсказуемость тупизны...

Спасибо сказали: ZhenyaYa,

ZhenyaYa Подменю пользователя
сообщение 19.11.12, 17:05
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 105
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

спасибо, чьот я сразу не подумал про статус возврата...спасибо, попробую)
matevi, сорри

mister-x Подменю пользователя
сообщение 19.11.12, 17:09
Сообщение #6

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1419 раз
Рейтинг: 0

[необходимо зарегистрироваться для просмотра ссылки]
див. тестову базу (пост 13), можна і без передачі параметрів обійтись

Сообщение отредактировал mister-x - 19.11.12, 17:18

Спасибо сказали: ZhenyaYa,

ZhenyaYa Подменю пользователя
сообщение 19.11.12, 18:11
Сообщение #7

Завсегдатай
****
Группа: Пользователи
Сообщений: 105
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Спасибо все работает:) я вам уже должен как земля колгоспу smile.gif

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

Vofka Подменю пользователя
сообщение 19.11.12, 19:35
Сообщение #8

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13988
Из: Киев
Спасибо сказали: 4564 раз
Рейтинг: 3693.4

Цитата(ZhenyaYa @ 19.11.12, 18:11) *
и еще вопрос на будущее

Правила, пункт 6! 05040.gif

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Тема закрыта Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 10.11.24, 20:02
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!