8.х Видимость переменных

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Muggsy, 2 июн 2010.

  1. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    Есть документ А, в его модуле объявлены две экспортные переменные Руководитель и ГлБух
    из этого модуля вызывается вспомогательная форма документа в которой :
    Код:
    Процедура ОсновныеДействияФормыДействие(Кнопка)
    
    ГлБух = ЭлементыФормы.ГлавныйБухгалтер.Значение;
    Руководитель = ЭлементыФормы.Руководитель.Значение;
    этаформа.Закрыть();
    конецпроцедуры
    
    
    вроде бы экспортные переменные должны поменяться, а они остаются прежними в модуле самого документа.
    Почему?
    и как можно по-другому передать в модуль документа значения из вспомогательной формы? :unsure:
  2. shurikvz
    Online

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не должны.
    Так как вы написали Руководитель и ГлБух - обычные локальные переменные процедуры "ОсновныеДействияФормыДействие()" вспомогательной формы.
    Вы опишите подробнее что вы хотите сделать. В основной форме, там где у вас объявлены эти переменные - с ними что дальше происходить должно? Вы записываете их далее в реквизит документа или что?
  3. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    далее эти ГлБух и руководитель используются при заполнении печатной формы(которая заполняется в моделе документа) и больше они не нужны
    то есть мне как-то надо вытащить значения из вспомогательной формы
    реквизиты в документ добавлять нельзя
  4. shurikvz
    Online

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Как пример: во вспомогательной форме добавьте реквизит (не в сам документ!, а в форму), назовем его скажем "ДокументОбъект" с типом таким же какой у вас тип документа. Далее при вызове этой вашей вспомогательной формы пишем:
    Код:
    Процедура ВызватьВспомогательнуюФорму()
    ВспомогательнаяФорма = ПолучитьФорму("ИмяМоейВспомогательнойФормы");
    ВспомогательнаяФорма.ДокументОбъект = ДокументОбъект;
    ВспомогательнаяФорма.ОткрытьМодально();
    КонецПроцедуры
    
    
    
    В самой вспомогательной форме уже пишите допустим:
    Код:
    Процедура ОсновныеДействияФормыДействие(Кнопка)
    ДокументОбъект.ГлБух = ЭлементыФормы.ГлавныйБухгалтер.Значение;
    ДокументОбъект.Руководитель = ЭлементыФормы.Руководитель.Значение;
    этаформа.Закрыть();
    конецпроцедуры
    
    
    
    как то так.

    Хотя нет, так не получится. Так можно увидеть только гл. переменные модуля объекта.
  5. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    не вар!
    Поле объекта не обнаружено (ГлБух)
    СсылкаНаОбъект.ГлБух = ЭлементыФормы.ГлавныйБухгалтер.Значение;



    хотя ссылкаНаОбъект - это сам документ (этотОбъект) ....
  6. shurikvz
    Online

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Чет туплю. Передайте в параметре закрыть() и все.
    Код:
    Процедура ОсновныеДействияФормыДействие(Кнопка)
    // Заполним структуру возвращаемых параметров
    СтруктураВозвращаемыхЗначений = Новый Структура();
    СтруктураВозвращаемыхЗначений.Вставить("ГлБух", ЭлементыФормы.ГлавныйБухгалтер.Значение);
    СтруктураВозвращаемыхЗначений.Вставить("Руководитель",      ЭлементыФормы.Руководитель.Значение);
    
    // Все сделали, можно закрывать форму
    Закрыть(СтруктураВозвращаемыхЗначений);
    конецпроцедуры
    
    
    
    
    
    а, там в основной форме:
    Код:
    Процедура ВызватьВспомогательнуюФорму()
    ВспомогательнаяФорма = ПолучитьФорму("ИмяМоейВспомогательнойФормы");
    Значения =  ВспомогательнаяФорма.ОткрытьМодально();
    Если Значения <> Неопределено Тогда
    Руководитель = Значения.Руководитель;
    ГлБух = Значения.ГлБух;
    КонецЕсли;
    КонецПроцедуры
    
    
    
    
    
    Да, я подправил предыдущее сообщение, написал, что не получится.
  7. shurikvz
    Online

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Muggsy первый вариант был правильный. Должно работать. "СсылкаНаОбъект" - это точно ДокументОбъект? Так и пишите "ВспомогательнаяФорма.ДокументОбъект = ДокументОбъект;". У вас в самой основной форме должен уже быть реквизит ДокументОбъект.
  8. shurikvz
    Online

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    И еще подумал: вот сейчас вы получаете ваши переменные Руководитель, ГлБух из формы документа. А как у вас будет выглядеть печать если вы захотите распечатать документ не из формы? Откуда значения то возьмутся?
  9. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    правильно, без этой вспомогательной формы, переменные и не возьмутся :) но я ведь насьлбно вызываю вспомогательную форму в процедуре печати, а кто не ввел в ней значения - я не виновата!, ручками вписывать будут :))


    со структурой все получилось! спасибо огромное! вы мне очень помогли :)
  10. shurikvz
    Online

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Ммм... интересно.. :) А если кто-то запустит групповую печать документов? :) 100 документов - сидеть 100 раз выбирать? :)
    У вас типовая? Если да - предлагаю посмотреть в сторону "Свойств объектов": реквизиты дописывать в документ не надо будет, а вот распечатывать будет удобнее.
  11. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    У нас самописная :) и групповой печати не предусмотрено :)
    но все равно спасибо большое за совет!

Поделиться этой страницей