8.х По нажатию на кнопку открыть Общую форму 1С 8.2

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем rockedit, 27 мар 2012.

  1. TopicStarter Overlay
    rockedit
    Offline

    rockedit Опытный в 1С

    Регистрация:
    6 дек 2010
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте!
    Не могу понять в чем проблема.
    У Справочника на форму элемента добавил кнопку, в обработке ее нажатия пишу такой код
    Код:
    &НаКлиенте
    Процедура ПечатьДоговора(Команда)
    Фм  = ПолучитьФорму("ОбщаяФорма.ДиалогВопрос");
    Фм.Открыть();
    КонецПроцедуры
    
    Может проблема в этом -&НаКлиенте

    При нажатии на кнопку выдает ошибку -
    Форма действительно есть, при вводе ОбщаяФорма. конфигуратор сам предлогает список доступных форма и она в этом списке есть.



    Если пишу так - &НаСервере то говорит что вообще не знает такой процедуры - ПолучитьФорму
  2. leemuar
    Offline

    leemuar Опытный в 1С

    Регистрация:
    21 окт 2010
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26
    Используйте процедуру ОткрытьФорму()

    Код:
    ОткрытьФорму("ОбщаяФорма.ДиалогВопрос")
  3. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    ОткрытьФорму() нужно использовать в 8.2
  4. TopicStarter Overlay
    rockedit
    Offline

    rockedit Опытный в 1С

    Регистрация:
    6 дек 2010
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    Та же самая ошибка

  5. leemuar
    Offline

    leemuar Опытный в 1С

    Регистрация:
    21 окт 2010
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26
    Проверьте в конфигураторе точное имя открываемой формы. Возможно там есть ошибка.
  6. TopicStarter Overlay
    rockedit
    Offline

    rockedit Опытный в 1С

    Регистрация:
    6 дек 2010
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    Как я писал в первом посте, ошибки в наименовании формы нет, т.к. я не в ручную его ввожу а ставлю ковычку и конфигуратор сам предлогает выбрать форму.
  7. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Код 100 % рабочий.
    Такое может быть, если Вы, например, создали форму, а конфигурацию не сохранили и не обновили конфигурацию БД.
    Проверьте, может, в этом дело...
  8. TopicStarter Overlay
    rockedit
    Offline

    rockedit Опытный в 1С

    Регистрация:
    6 дек 2010
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    Форма уже была. Меня бы устроил вариант вместо общей формы получить форму обработки. Но тоже безрезультатно. Это точно не может быть из за того что стоит параметр &НаКлиенте?
  9. TopicStarter Overlay
    rockedit
    Offline

    rockedit Опытный в 1С

    Регистрация:
    6 дек 2010
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    Короче создал новую форму для обработки, назначил ее формой по умолчанию, форма открылась. Появилось еще 2 проблемы
    1) В модуле объекта этой обработки определена экспортная функция Печать(). На форме я разместил кнопку, и при обработке ее нажатия должен вызвать эту экспортную функцию - печать(). Ругается на то, что не определена функция.
    Код:
    Процедура ПечатьДоговора(Команда)
    Печать();
    КонецПроцедуры
    
    Хотя этот код у меня взят с другого места, где он успешно работает
    2) Как при открытии формы обработки передать в нее ссылку на элемент справочника, который ее открыл.
  10. leemuar
    Offline

    leemuar Опытный в 1С

    Регистрация:
    21 окт 2010
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26
    Используйте для этого второй параметр метода глоб.контекст ОткрытьФорму() - "Параметры":

    ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>)
  11. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Нет, именно так и должно стоять.

    Если эта обработка не внешняя, тогда так:
    Код:
    Обработки.ИмяОбработки.Печать();
    Можно либо в параметры формы передавать, либо в реквизит открываемой формы.

    А вообще речь идет об управляемом приложении или об обычном?
  12. TopicStarter Overlay
    rockedit
    Offline

    rockedit Опытный в 1С

    Регистрация:
    6 дек 2010
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    Об управляемом. А можно подробнее, про передачу в реквизит открываемой формы?
  13. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Надо в форме обработки, которую открываете, создать реквизит с соответствующим типом (ссылка на справочник).
    И в коде при открытии формы его заполнять:
    Код:
    Форма = ПолучитьФорму("КакоеТоИмяФормыОбработки");
    Форма.ИмяСозданногоРеквизита = Объект.Ссылка;
    Форма.Открыть();
    Код писал на коленке...
    Ну, в общем, как-то так...

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