1. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Общаят форма и макет документа

Тема в разделе "1C и всё что с ней связано", создана пользователем -, 26 май 2010.

Статус темы:
Закрыта.
  1. Гость

    Репутация:
    0
    Здравствуйте...
    Типовая конфигурация Бухгалтерия 8
    Создан дополнительный макет АктПриемаПередачиПрав в документе РеализацияТоваровУслуг,
    сейчас необходимо чтобы при выборе этой печатной формы, открывалась сначала форма из Общих форм, на которой будут дополнительные данные для этой печатной формы, которых нет в этом документе. И после введения данных, уже выводилась печатная форма с всеми данными... то есть данными из Макета и из Общей формы.

    Вопрос в чем... общая форма открывается,
    а вот как из общей формы вывести макет документа не знаю... да и так чтоб еще и подцепил дополнительные данные из это формы. Подскажите пожалуйста =)
     
  2. Roman

    Roman Гость

    Репутация:
    0
    А по чему бы не попробовать в сами ячейки макета, там где надо чтоб значение подставлялось, написать процедуру или ссылку на необходимый объект.
     
  3. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    Код:
    Функция Печать(.....)
    <...>
    
    ОбщФорма = ПолучитьОбщуюФорму(ИмяФормы);
    ДопПараметры = ОбщФорма.ОткрытьМодально();
    
    <...>
    КонецФункции
    
    МодульФормы
    
    Процедура ПриЗакрытии()
    
    ДопПараметры = Новый Структура();
    
    ДопПараметры.Вставить(ИмяРеквизита, ЗначениеРеквизита);
    ...
    
    Закрыть(ДопПараметры);
    КонецПроцедуры

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

    Добавлено:
    Это не 7.7 и в макет вызов процедуры/функции не впишешь.
     
  4. Гость

    Репутация:
    0

    А можно еще чуть разжевать... для особо одаренных) меня то есть. С открытием всё замечательно выходит.Спасибо.
    А вот хотелось бы чуть по точнее о том как дополнительные данные из общей формы передать в макет....
     
  5. KiR

    KiR НЕ шибка опытный програмер)

    Репутация:
    0
    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    на форме есть переменные, и им уже присвоенно значение. соотвественно в макете есть тоже переменные (параметры). вот и нужно сделать переприсвоение типа:
    макет.параметр.названиепараметра = форма.реквизит
     
  6. Гость

    Репутация:
    0
    Это в процедуре печати макета документа... ?
     
  7. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    Да. Вызов делается в процедуре печати.

    Добавлено: Я делал так (обработчик не "ПриЗакрытии", просто кнопка на форме):

    А это пишется в форме которую открывали:
    Код:
    		
    
    Закрыть(ТекстОбработки);
    Добавлено: А ТекстОбработки - просто строка, которая возвращалась в переменную открывающую модальную форму "ДопПараметры = Форма.ОткрытьМодально();"

    Добавлено:
    Если вызов печати из модуля формы, то у вас будет возможность получить значения реквизитов формы. Если же печать из модуля объекта, то варианта 2:
    1) никак, там доступны только реквизиты объекта - без вызова печати из модуля формы и передачи параметра "ЭтаФорма";

    Модуль объекта:

    Код:
    Функция Печать() Экспорт
    <...>
    КонецФункции
    Модуль формы:

    Код:
    Процедура КнопкаПечатьНажатие(Элемент)
    
    Печать();
    
    КонецПроцедуры;

    2) В функцию печати передать параметр "ЭтаФорма" и тогда реквизиты формы будут доступны в модуле объекта (не рекомендуется делать!)

    Модуль объекта:

    Код:
    Функция Печать(Форма) Экспорт
    <...>
    КонецФункции
    Модуль формы:

    Код:
    Процедура КнопкаПечатьНажатие(Элемент)
    
    Печать(ЭтаФорма);
    
    КонецПроцедуры;
    P.S. не рекомендуется делать потому, что передача формы как параметра - тяжеловато отражается на производительности системы.
    P.P.S. Количество параметров функции "Печать()" взял равное 0 для наглядности примера.
     
  8. Гость

    Репутация:
    0

    То есть? Если процедура печать из модуля объекта... то два варианта: никак и не рекомендуется...
    Получается надо делать процедуру печать из общей формы, в которой дполнительные данные?
     
  9. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    "Не рекомендуется" не значит запрещено. Общую форму можно вызывать откуда угодно, в вашем случае из модуля объекта (вы же ее вызываете, а не передаете). В функции печати обращаетесь к общей форме, в которой все необходимые вам реквизиты есть. Заполняете структуру, как я предлагал, можно в цикле обойти все реквизиты, можно по именам заполнить - не суть важно. потом закрываете форму программно "Закрыть(ДопПараметры)". При закрытии формы ваши ДопПараметры передадутся обратно в фунцию печати (при условии, что вы открывали форму модально ("ДопПараметры = ОбщаяФорма.ОткрытьМодально()"); и работаете уже с переменной ДопПараметры в функции печати, как со структурой.

    Можно использовать не структуру, а таблицу значений, массив, соответствие, все что угодно.
     
  10. vitfil

    vitfil IT-интегратор

    Репутация:
    0
    Регистрация:
    2 апр 2004
    Сообщения:
    2.062
    Симпатии:
    0
    В конкретном данном случае - да. А в общих случаях (особенно, при общении с государственными органами) именно так и следует расценивать "не рекомендуется".
     
  11. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    В данном случае происходит получение формы из модуля объекта, а не передача формы в модуль объекта как параметра. Первое - вполне нормально и допустимо, второе - не рекомендуется делать.
     
Загрузка...
Похожие Темы - Общаят форма макет
  1. Victor Sidnev
    Ответов:
    10
    Просмотров:
    244
  2. OBLIVIONNN
    Ответов:
    3
    Просмотров:
    197
  3. Code Market
    Ответов:
    0
    Просмотров:
    23
  4. Code Market
    Ответов:
    0
    Просмотров:
    26
  5. sharikk
    Ответов:
    12
    Просмотров:
    473
Статус темы:
Закрыта.

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