|   |   | 
| 
 | v7: Насчет Сервис.ВыполнитьПроцедуру() | ☑ | ||
|---|---|---|---|---|
| 0
    
        DES 02.02.13✎ 20:11 | 
        Такая тема:
  Есть Документ Док1 с табличной частью 2 поля. "Сотрудник" и "Сумма" Сотрудник заполняется от руки из справочника, а Сумма вычисляется при запуске процедуры Расчет() по кнопке. И документе есть Процедура РасчетСуммы() Сумма = 0; Если Сотрудник.Хитрый=Да Тогда Сумма = 100; КонецЕсли КонецПроцедуры Которая выполняется в Процедура Расчет() ВыбратьСтроки(); Пока ПолучитьСтроку()=1 Цикл РасчетСуммы(); КонецЦикла КонецПроцедуры Все работает, теперь нужно их другого документа получать расчетную Сумму для Сотрудника из этого документа. Делаю Если ОткрытьФорму("Документ.Док1", Конт)=1 Тогда Список = СоздатьОбъект("СписокЗначений"); Конт.Сотрудник = Сотрудник; // тут ха-ха Сервис.ВыполнитьПроцедуру(Конт, "Расчет", Список); КонецЕсли; Сотрудник не передается. Как сделать правильно ? | |||
| 1
    
        DES 04.02.13✎ 17:50 | 
        Апну ?     | |||
| 2
    
        Ёпрст гуру 04.02.13✎ 17:56 | 
        Ну и нафига там твой список, у тя Расчет() без параметров.
  Мог бы и так написать: Конт.Расчет(); | |||
| 3
    
        monsterZE 04.02.13✎ 20:53 | 
        не понял.. если у тебя есть документ с уже рассчитанной суммой - зачем ее еще раз рассчитывать? найди док, выгрузи тч и отфильтруй по сотруднику.. или по списку.
  тем более, судя по тому, что ты привел, "расчет" у тебя обрабатывает тч документа, в котором сидит. что ты ему собрался передавать? скопировать процедуру в глобальник или в новый документ не предлагать? =) | |||
| 4
    
        DES 04.02.13✎ 22:58 | 
        Мне нужно понять механизм возможности использования алгоритма процедуры без параметров.
  Процедура оперирует с табличной частью документа. Как мне подсунуть этой процедуре данные чтобы она отработала с ними также как с табличной частью. Мне нужен результат изменения данных. Ничего не нужно переписывать и переделывать и перемещать в глобальник или еще куда. Нужно из своего документа вызвать процедуру из другого документа подставить свои данные и получить результат изменения данных. | |||
| 5
    
        DES 04.02.13✎ 23:00 | 
        (2) поясни     | |||
| 6
    
        DES 05.02.13✎ 17:26 | 
        апну ?     | |||
| 7
    
        Ёпрст гуру 05.02.13✎ 17:32 | 
        (5) чего пояснять ?     | |||
| 8
    
        DES 05.02.13✎ 17:44 | 
        можно ли конт. изменить чтобы передать нужные данные или нужно заполнять вновь созданный Документ ?     | |||
| 9
    
        Ёпрст гуру 05.02.13✎ 17:45 | 
        изменяй, что мешает     | |||
| 10
    
        DES 05.02.13✎ 17:46 | 
        меняю, проверяю на воде процедуры - а там пусто.     | |||
| 11
    
        Ёпрст гуру 05.02.13✎ 17:48 | 
        чего где меняешь, что где не получаешь?     | |||
| 12
    
        DES 05.02.13✎ 17:53 | 
        Конт.Сотрудник = Сотрудник
  на входе Процедуры смотрю Сорудник = | |||
| 13
    
        Ёпрст гуру 05.02.13✎ 17:54 | 
        На входе какой процедуры ?     | |||
| 14
    
        Ёпрст гуру 05.02.13✎ 17:54 | 
        в какой момент ?     | |||
| 15
    
        DES 05.02.13✎ 18:00 | 
        Процедура РасчетСуммы()
  брекпоинт => Сумма = 0; | |||
| 16
    
        Ёпрст гуру 05.02.13✎ 18:07 | ||||
| 17
    
        DES 05.02.13✎ 18:20 | 
        а если форма документа,
  а Федя это элемент табличной части Пойдет ? | |||
| 18
    
        ADirks 05.02.13✎ 18:53 | 
        (12) а перед этим сказать
  Конт.НоваяСтрока(); нельзя? а так то извращение конечно | |||
| 19
    
        DES 05.02.13✎ 19:20 | 
        спс.     | |||
| 20
    
        DES 05.02.13✎ 19:40 | 
        а как бы сделать чтобы форма Документа не открывалась на экране?     | |||
| 21
    
        ADirks 05.02.13✎ 19:44 | 
        создать документ
  записать его в базу открыть форму сделать свои чёрные дела закрыть форму (Конт.Форма.Закрыть();) и всё это в транзакции (форма конечно откроется, но это хоть минимальное зло) | |||
| 22
    
        ADirks 05.02.13✎ 19:46 | 
        когда говоришь
  ОткрытьФорму("Документ.Док1", Конт); и у пользователя уже открыта форма нового документа, то именно она и активизируется, и туда ты и зафигачишь все свои данные. И пользователь обрадуется, ага. | |||
| 23
    
        DES 12.02.13✎ 23:46 | 
        так это заработало, спасибо.
  вот на другое наткнулся. Как бы так сделать: Создать документ, заполнить пару атрибутов, выполнить процедуру документа ПриОткрытии() записать и закрыть документ. и чтобы не моргало. Застрял на Записи документа без вопроса. Или не сохраняет или спрашивает Конт = 0; ОткрытьФорму("Документ." + _ТипДок,Конт,0); Конт.ДатаДок = _ДтДок; Конт.НомерДок = _НомДок; FormEx.ВыполнитьПроцедуру(Конт,"ПриОткрытии",); //Конт.Форма.Записать(); // не работает Конт.Форма.Закрыть(0); | |||
| 24
    
        Ёпрст гуру 13.02.13✎ 11:04 | 
        (23) какой-то х..й занимаешься.
  ПриОткрытии и так всегда выполняется при ОткрытьФорму, вызывать его спецом не надо. А в твоём случае, надо делать Док.Новый() и не открывать форму. Это в разы быстрее и правильнее. | |||
| 25
    
        DES 14.02.13✎ 00:42 | 
        так если Новый() - то не выполнится ПриОткрытии(), а там инициализируется некоторые атрибуты     | |||
| 26
    
        Zhuravlik 14.02.13✎ 00:56 | 
        (25) ВводНового()?     | |||
| 27
    
        DES 14.02.13✎ 01:37 | 
        (26) что вводнового ?     | |||
| 28
    
        Ёпрст гуру 14.02.13✎ 09:49 | 
        (25) прописать их в поделке в разы быстрее, чем открывать форму для этого.     | |||
| 29
    
        Ёпрст гуру 14.02.13✎ 09:50 | 
        если что, ежели код универсальный (как в типовых), достаточно вызвать пару процедур глобальничка и привет, типа глПриИзмененииФирмы/Клиентоса и т.д     | |||
| 30
    
        DES 14.02.13✎ 14:17 | 
        (28) да это понятно
  но создается куча разных документов, при том что в последствии могут изменить код ПриОткрытии() в любом из них. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |