• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

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

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

Roman

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

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

Darlock

Код:
Функция Печать(.....)
<...>

ОбщФорма = ПолучитьОбщуюФорму(ИмяФормы);
ДопПараметры = ОбщФорма.ОткрытьМодально();

<...>
КонецФункции

МодульФормы

Процедура ПриЗакрытии()

ДопПараметры = Новый Структура();

ДопПараметры.Вставить(ИмяРеквизита, ЗначениеРеквизита);
...

Закрыть(ДопПараметры);
КонецПроцедуры


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

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

Это не 7.7 и в макет вызов процедуры/функции не впишешь.
 
G

Guest

Код:
Функция Печать(.....)
<...>

ОбщФорма = ПолучитьОбщуюФорму(ИмяФормы);
ДопПараметры = ОбщФорма.ОткрытьМодально();

<...>
КонецФункции

МодульФормы

Процедура ПриЗакрытии()

ДопПараметры = Новый Структура();

ДопПараметры.Вставить(ИмяРеквизита, ЗначениеРеквизита);
...

Закрыть(ДопПараметры);
КонецПроцедуры


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

Добавлено:

Это не 7.7 и в макет вызов процедуры/функции не впишешь.


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

KiR

как дополнительные данные из общей формы передать в макет....
на форме есть переменные, и им уже присвоенно значение. соотвественно в макете есть тоже переменные (параметры). вот и нужно сделать переприсвоение типа:
макет.параметр.названиепараметра = форма.реквизит
 
G

Guest

на форме есть переменные, и им уже присвоенно значение. соотвественно в макете есть тоже переменные (параметры). вот и нужно сделать переприсвоение типа:
макет.параметр.названиепараметра = форма.реквизит

Это в процедуре печати макета документа... ?
 
D

Darlock

Да. Вызов делается в процедуре печати.

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

А это пишется в форме которую открывали:
Код:
Закрыть(ТекстОбработки);

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

Добавлено:
на форме есть переменные, и им уже присвоенно значение. соотвественно в макете есть тоже переменные (параметры). вот и нужно сделать переприсвоение типа:
макет.параметр.названиепараметра = форма.реквизит

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

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

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

Модуль формы:

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

Печать();

КонецПроцедуры;


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

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

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

Модуль формы:

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

Печать(ЭтаФорма);

КонецПроцедуры;

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

Guest

Да. Вызов делается в процедуре печати.

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

А это пишется в форме которую открывали:
Код:
Закрыть(ТекстОбработки);

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

Добавлено:

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

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

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

Модуль формы:

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

Печать();

КонецПроцедуры;


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

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

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

Модуль формы:

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

Печать(ЭтаФорма);

КонецПроцедуры;

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


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

Darlock

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

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

vitfil

"Не рекомендуется" не значит запрещено.
В конкретном данном случае - да. А в общих случаях (особенно, при общении с государственными органами) именно так и следует расценивать "не рекомендуется".
 
D

Darlock

В конкретном данном случае - да. А в общих случаях (особенно, при общении с государственными органами) именно так и следует расценивать "не рекомендуется".

В данном случае происходит получение формы из модуля объекта, а не передача формы в модуль объекта как параметра. Первое - вполне нормально и допустимо, второе - не рекомендуется делать.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!