|
Внешняя печатная форма. Дополнительный реквизит | ☑ | ||
|---|---|---|---|---|
|
0
zaika7777
07.08.08
✎
11:18
|
Есть внешняя печатная форма счета. Как сделать, чтобы перед печатью появлялась форма, в которой можно выбирать дополнительные реквизиты. По типу ТТН. Я так понимаю это в Процедуре КнопкаВыполнитьНажатие?
Можно пример? |
|||
|
1
Господин ПЖ
07.08.08
✎
11:19
|
Процедуре КнопкаВыполнитьНажатие()
/// КонецПроцедуры |
|||
|
2
Salvador Limones
07.08.08
✎
11:21
|
Пример в ТТН - не то?
|
|||
|
3
zaika7777
07.08.08
✎
11:23
|
Не пойму(
|
|||
|
4
Mario
07.08.08
✎
11:24
|
ФормаРедактирования = ПолучитьФорму("РедактированиеВыражения");
ФормаРедактирования.РеквизитВыражение = Элемент; ФормаРедактирования.ВладелецФормы = ЭтаФорма; ФормаРедактирования.ОткрытьМодально(); //ФормаРедактирования.Открыть(); |
|||
|
5
Mario
07.08.08
✎
11:29
|
В открываемой форме делай то нужно...
При зкрытии в реквизит (в примере РеквизитВыражение) открываемой формы возвращаешь массив или структуру (согласно выбранного типа этого реквизита) по результату работы "дочки" и дальше с ней работаешь. |
|||
|
6
zaika7777
07.08.08
✎
11:33
|
Спасибо. Но для меня это сложно.
Мне нужно на форму добавить реквизит Булево. При Истине печатается одно, при Ложь другое |
|||
|
7
Mario
07.08.08
✎
11:36
|
Не понял темы????
" Как сделать, чтобы перед печатью появлялась форма, в которой можно выбирать дополнительные реквизиты" |
|||
|
8
zaika7777
07.08.08
✎
11:38
|
Процедура печати должна быть в модуле формы обязательно. Или в модуле документа?
|
|||
|
9
wertyu
07.08.08
✎
11:38
|
(6) вопрос задай...
|
|||
|
10
zaika7777
07.08.08
✎
11:38
|
то есть объекта
|
|||
|
11
zaika7777
07.08.08
✎
11:49
|
Как сделать, чтобы при нажатии на кнопку печать внешней печатной формы сначала появилась форма, где можно заполнить доп.реквизиты
|
|||
|
12
Serg_1960
07.08.08
✎
11:53
|
А? Что? Я не понял :(
Внешняя обработка печатной формы. Модуль Объекта: Функция Печать() ПолучитьФорму("ИмяФормыИзЭтойОбработки").Открыть(); ФормаИзДокумента = СсылкаНаОбъект.ПолучитьФорму("ИмяФормыИзДокумента") формаИзДокумента.Открыть(); Сообщить("Ученье свет? а не ученых - тьма. Serg_1960 :о)"); |
|||
|
13
Mitriy
07.08.08
✎
11:56
|
(12)*
Форма = ПолучитьФорму("ИмяФормыИзЭтойОбработки"); Форма.ОткрытьМодально(); |
|||
|
14
Serg_1960
07.08.08
✎
12:02
|
(12) + Зайка, Вы не обидились? Ну извините меня, пожалуйста!
(13) У меня на "Модально" аллергия. А у Вас? В смысле, зачем? |
|||
|
15
zaika7777
07.08.08
✎
12:08
|
нет, всем спасибо. просто инет бархлит
|
|||
|
16
zaika7777
07.08.08
✎
12:09
|
как мне теперь обратиться к реквизиту на форме?
|
|||
|
17
Mario
07.08.08
✎
12:21
|
(14) Если не отрыть ее модально, то процедура печати продолжит выполнение. А нужно дождаться закрытия формы...
Или условие ставить, но это больше кода. |
|||
|
18
zaika7777
07.08.08
✎
12:25
|
(17)Пишет: Невозможно открыть форму в модальном режиме, так как она уже открыта! И выводит мне печатную форму до открытия формы
|
|||
|
19
Mitriy
07.08.08
✎
12:27
|
(18) о как...
|
|||
|
20
Mario
07.08.08
✎
12:27
|
(16) = либо по (5), через реквизит.
Либо: ЭтаФорма.ВладелецФормы |
|||
|
21
zaika7777
07.08.08
✎
12:30
|
(12) ПолучитьФорму("ИмяФормыИзЭтойОбработки").Открыть(); убрала открыть. в процедуру КнопкаВыполнитьНажатие(Кнопка) добавляю ТабДокумент = Печать();
Ругается на открытьМодально |
|||
|
22
zaika7777
07.08.08
✎
12:31
|
Спасибо (20)
|
|||
|
23
zaika7777
07.08.08
✎
12:38
|
к реквизиту вроде кк получается обратиться. но как с открытием форм ыбыть. Что не так?
|
|||
|
24
Serg_1960
07.08.08
✎
13:30
|
Меня видит кто-нибудь? :) У Вас "..инет барахлит..." а у меня, так просто, - отлетает...
МояФорма = ПолучитьФорму("ИмяФормыИзЭтойОбработки"); МояФорма.РеквизитФормы = НужноеЗначение; Если Не МояФорма.Открыта() Тогда МояФорма.Открыть(); КонецЕсли; |
|||
|
25
Serg_1960
07.08.08
✎
13:33
|
Напоминаю: ПолучитьФорму() возвращает форму. Если форма открыта - возвращается она. И потому перед открытием рекомендуется проверять "не открыта ли форма уже?".
|
|||
|
26
zaika7777
07.08.08
✎
13:35
|
я вижу))
|
|||
|
27
Serg_1960
07.08.08
✎
13:36
|
Ура она заговорила!
|
|||
|
28
Serg_1960
07.08.08
✎
13:36
|
Слушаю Ваши вопросы дальше...
|
|||
|
29
zaika7777
07.08.08
✎
13:39
|
Получилось!!! Большое спасибо! Только окно свернутое, но уж это я сама наверное смогу поправить)
|
|||
|
30
zaika7777
07.08.08
✎
13:40
|
Serg_1960, вы мне очень помогли. А можно в аську писать? Если будут вопросы. Я не наглая?
|
|||
|
31
zaika7777
07.08.08
✎
13:42
|
как сделать, чтобы форма после нажатия на кнопку закрывалась. И при закрытии еще раз формирует печатную форму(
|
|||
|
32
zaika7777
07.08.08
✎
13:45
|
Если в модуле формы ЭтаФорма.Закрыть() то сворачивается программа
|
|||
|
33
Serg_1960
07.08.08
✎
13:48
|
Не аську не дам :о) Принципиально в аське не сижу. Мне скандалов с женой и так хватает. До сих пор пристает: "Оторвись от компа, в инет ушел с головой, вынеси елку наконец-то..."
Не стесняйся :(здесь тоже можно флиртовать:). Не я, так добрые люди помогут. Ты только КРИЧИ ПОГРОМЧЕ. Пример настойчивости смотри тут: v8: Проверка в запросе на наличие субконто |
|||
|
34
zaika7777
07.08.08
✎
13:53
|
Да, ветку развернули)) Я не стесняюсь, понимаю, что знаний не хватает. Я же бух, а не программист. Просто легче самой один раз разобраться, а потом это применять во многих местах, чем сидеть и ждать, когда твой программист из фирмы из отпуска вернется и найдет на тебя время
|
|||
|
35
Serg_1960
07.08.08
✎
13:59
|
Программисты тоже люди. У них тоже свои проблемы :) А вопросы можно даже не задавать, - достаточно "породниться" с кнопочкой Поиск на сайте. Все вопросы уже до нас заданы были...
|
|||
|
36
D_E_S_131
07.08.08
✎
14:03
|
Есть внешняя печатная форма ТТН для УТ 10.3. Как раз сделал там заполнение реквизитов (которые 1С предоставила на заполнение руками каждый раз пользователям) и дальнейшее использование этих реквизитов при печати. Скиньте "мыло" если нужна...
|
|||
|
37
zaika7777
07.08.08
✎
14:07
|
(35) поиском я пользуюсь часто. на мою тему может не верно формулировала вопрос, не нашла подобного.
(36)ТТН есть и в БП как обработка, но я не смогла разобраться. |
|||
|
38
Serg_1960
07.08.08
✎
14:15
|
Задавай вопросы в новой теме и начинай со слов: "Я блондинка - бух! Хочу знать как..." От желающих общаться - отбоя не будет :о)
По поводу (34) - у всех свои недостатки: ты бух, а я программист :) На сайте расовой дискриминации к бухам нет :) |
|||
|
39
zaika7777
07.08.08
✎
14:17
|
я не блондинка, в любом случае разберусь. спасибо за помощь
|
|||
|
40
Serg_1960
07.08.08
✎
14:19
|
Досвидание!
|
|||
|
41
zaika7777
07.08.08
✎
14:24
|
ну вот((
|
|||
|
42
zaika7777
07.08.08
✎
14:24
|
так как же мне форму закрыть
|
|||
|
43
D_E_S_131
07.08.08
✎
14:38
|
с получением самой формы внешней обработки печати вы вроде выше разобрались.
МояФорма.РеквизитФлаг = Истина; ФлагЗакрытия = МояФорма.ОткрытьМодально(); Если НЕ ФлагЗакрытия = Истина Тогда Возврат; КонецЕсли; Если МояФорма.РеквизитФлаг = Истина Тогда ТекМакет = ПолучитьМакет("МакетИстина"); Иначе ТекМакет = ПолучитьМакет("МакетЛожь"); КонецЕсли; \\далее код вывода данных в табличный документ. В самой форме, у которой уже "нарисован" реквизит "РеквизитФлаг" оставляете только кнопки "ОК" и "Закрыть". На кнопку "Закрыть" вешается действие "Закрыть". На кнопку "ОК" вешается процедура с единственной командой "ЗакрытьФорму(Истина);". |
|||
|
44
zaika7777
07.08.08
✎
14:41
|
(43) спасибо, сейчас попробую
|
|||
|
45
zaika7777
07.08.08
✎
14:53
|
(43) что значит макетложь? макет истина-это мой макет?
|
|||
|
46
D_E_S_131
07.08.08
✎
14:58
|
А что вообще в открываемой форме нужно установить и что потом "с этим установленным" надо делать после закрытия формы?
|
|||
|
47
zaika7777
07.08.08
✎
15:05
|
дополнительный реквизит. с этим я разобралась. например бывает плательщик филиал, а бывает ГП. отгрузка в любом случае на филиал. при выписке счета выбираю галочку. у мен явсе получилось по методу (12). форма закрывается. Единственное печатная форма формируется теперь 2 раза.
|
|||
|
48
zaika7777
07.08.08
✎
15:07
|
как убрать одно окно
|
|||
|
49
D_E_S_131
07.08.08
✎
15:07
|
Можешь выложить весь код из "Функция Печать() Экспорт"?
|
|||
|
50
zaika7777
07.08.08
✎
15:10
|
Функция Печать() Экспорт
// ПолучитьФорму("ФормаРедактирования").Открыть(); ПолучитьФорму("ФормаРедактирования"); // ФормаИзДокумента = СсылкаНаОбъект.ПолучитьФорму("ФормаРедактирования"); ФормаИзДокумента = ПолучитьФорму("ФормаРедактирования"); Если Не ФормаИзДокумента.Открыта() Тогда формаИзДокумента.ОткрытьМодально(); КонецЕсли; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка); Запрос.Текст =" |ВЫБРАТЬ | Номер, | Дата, | ДоговорКонтрагента, | Организация, | Контрагент КАК Получатель, | Организация КАК Руководители, | Организация КАК Поставщик, | Ответственный, //| Ответственный как должность, | СуммаДокумента, | ВалютаДокумента, | УчитыватьНДС, | СуммаВключаетНДС | |ИЗ | Документ.СчетНаОплатуПокупателю КАК ЗаказПокупателя | |ГДЕ | ЗаказПокупателя.Ссылка = &ТекущийДокумент"; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); //Форма = ЭтотОбъект.ПолучитьФорму("ПечФорма"); ТабДокумент = Новый ТабличныйДокумент; //ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ"; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка); ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("ЗаказПокупателя"); Запрос.Текст = "ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК Товар, | ВложенныйЗапрос.Номенклатура.Код КАК Код, | ВложенныйЗапрос.Количество КАК Количество, | ВложенныйЗапрос.ЕдиницаИзмерения, | ВложенныйЗапрос.Цена КАК Цена, | ВложенныйЗапрос.Сумма КАК Сумма, | ВложенныйЗапрос.СуммаНДС КАК СуммаНДС, | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки, | 1 КАК ID, | ВложенныйЗапрос.Цвет, | ВложенныйЗапрос.Размер, | ВложенныйЗапрос.ДопЭл, | ВложенныйЗапрос.СтавкаНДС |ИЗ | (ВЫБРАТЬ | ЗаказПокупателя.Номенклатура КАК Номенклатура, | ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения, | ЗаказПокупателя.Цена КАК Цена, | ЗаказПокупателя.Количество КАК Количество, | ЗаказПокупателя.Сумма КАК Сумма, | ЗаказПокупателя.СуммаНДС КАК СуммаНДС, | ЗаказПокупателя.НомерСтроки КАК НомерСтроки, | ЗаказПокупателя.Цвет КАК Цвет, | ЗаказПокупателя.Размер КАК Размер, | ЗаказПокупателя.ДопЭл КАК ДопЭл, | ЗаказПокупателя.СтавкаНДС КАК СтавкаНДС | ИЗ | Документ.СчетНаОплатуПокупателю.Товары КАК ЗаказПокупателя | ГДЕ | ЗаказПокупателя.Ссылка = &ТекущийДокумент) КАК ВложенныйЗапрос | | УПОРЯДОЧИТЬ ПО | Номенклатура, | Цвет, | Размер, | ДопЭл | Автоупорядочивание | " ; //|ОБЪЕДИНИТЬ ВСЕ //| //|ВЫБРАТЬ //| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ", //| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ", //| NULL, //| ЗаказПокупателя.Количество, //| ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование, //| ЗаказПокупателя.Цена, //| ЗаказПокупателя.Сумма, //| ЗаказПокупателя.СуммаНДС, //| ЗаказПокупателя.СтавкаНДС, //| ЗаказПокупателя.НомерСтроки, //| 2 //|ИЗ //| Документ.СчетНаОплатуПокупателю.Услуги КАК ЗаказПокупателя //| //|ГДЕ //| ЗаказПокупателя.Ссылка = &ТекущийДокумент //| //|УПОРЯДОЧИТЬ ПО //| ID, //| НомерСтроки"; ЗапросТовары = Запрос.Выполнить().Выбрать(); Макет = ПолучитьМакет("СчетЗаказ"); // Выводим сведения об организации СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.Дата); ОбластьМакета = Макет.ПолучитьОбласть("Поставщик"); ОбластьМакета.Параметры.Организация = СведенияОПоставщике.ПолноеНаименование; ОбластьМакета.Параметры.Адрес = СведенияОПоставщике.ЮридическийАдрес; //ОбластьМакета.Параметры.Телефон = СведенияОПоставщике.Телефоны; ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокСчета"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.ИНН = СведенияОПоставщике.ИНН; ОбластьМакета.Параметры.Банк = СведенияОПоставщике.Банк; ОбластьМакета.Параметры.Получатель = СведенияОПоставщике.ПолноеНаименование; ОбластьМакета.Параметры.КПП = СведенияОПоставщике.КПП; ОбластьМакета.Параметры.БИК = СведенияОПоставщике.БИК; ОбластьМакета.Параметры.СчетБанка = СведенияОПоставщике.КоррСчет; ОбластьМакета.Параметры.СчетПолучателя = СведенияОПоставщике.НомерСчета; ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.ТекстЗаголовка = РаботаСДиалогами.СформироватьЗаголовокДокумента(Шапка, "СЧЕТ"); ТабДокумент.Вывести(ОбластьМакета); СведенияОПолучателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата); ОбластьМакета = Макет.ПолучитьОбласть("Покупатель"); ОбластьМакета.Параметры.Заполнить(Шапка); //ОбластьМакета.Параметры.ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата), "ИНН,КПП,ПолноеНаименование,ЮридическийАдрес,Телефоны,"); Отбор = Новый Структура; Отбор.Вставить("Объект",Шапка.Получатель); Отбор.Вставить("Тип", Перечисления.ТипыКонтактнойИнформации.Другое); Отбор.Вставить("Вид",Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00033").Ссылка); /// //Если СокрЛП(Шапка.АдресДоставки) <> "" Тогда // ПредставлениеПолучателяДоАдреса = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПолучателе, "ПолноеНаименование,ИНН,"); // ПредставлениеПолучателяПослеАдреса = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПолучателе, "Телефоны,НомерСчета,Банк,БИК,КоррСчет,"); // ОбластьМакета.Параметры.ПредставлениеПолучателя = ?(СокрЛП(ПредставлениепОЛУЧАТЕЛЯДоАдреса) = "", "", ПредставлениеПолучателяДоАдреса+", ") + ?(СокрЛП(ПредставлениеПолучателяПослеАдреса)="", "", ", "+ПредставлениепОЛУЧАТЕЛЯПослеАдреса); //Иначе Если не РегистрыСведений.КонтактнаяИнформация.Получить(Отбор).Представление = "" Тогда Отбор.Очистить(); Отбор.Вставить("Объект",Шапка.Получатель); Отбор.Вставить("Тип", Перечисления.ТипыКонтактнойИнформации.Адрес); Отбор.Вставить("Вид",Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00008").Ссылка); СведенияОПолучателе1 = РегистрыСведений.КонтактнаяИнформация.Получить(Отбор).Представление; СведенияОПол=Лев(СведенияОполучателе1,Найти(СведенияОполучателе1,",")-1); ОбластьМакета.Параметры.ПредставлениеПолучателя=СокрЛП(СведенияОПол)+", "+ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПолучателе,"Телефоны"); Иначе ОбластьМакета.Параметры.ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПолучателе,"ПолноеНаименование,Телефоны"); КонецЕсли; // ОбластьМакета.Параметры.ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата), "ПолноеНаименование,Телефоны"); ТабДокумент.Вывести(ОбластьМакета); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ТабДокумент.Вывести(ОбластьШапкаТаблицы); ОбластьКолонкаТовар = Макет.Область("Товар"); ОбластьСтроки = Макет.ПолучитьОбласть("Строка"); ИтогоПоХарактеристикам = Макет.ПолучитьОбласть("ИтогоПоХарактеристикам"); Сумма = 0; СуммаНДС = 0; ВсегоСкидок = 0; ВсегоБезСкидок = 0; // ТабДокумент.НачатьАвтогруппировкуСтрок(); счетчик = 0; СтароеНаименование = ""; КоличествоСтарого = 0; Количество = 0; Наименование = ""; СтавкаНДС = ""; ЕдиницаИзмерения = ""; Сумма = 0; СуммаИтог = 0; СуммаНДС = 0; Пока ЗапросТовары.Следующий() Цикл Если (СтароеНаименование <> СокрЛП(ЗапросТовары.Товар)) Тогда Если (КоличествоСтарого > 1) Тогда ИтогоПоХарактеристикам.Параметры.Товар = Наименование; ИтогоПоХарактеристикам.Параметры.Количество = Количество; ИтогоПоХарактеристикам.Параметры.СтавкаНДС = СтавкаНДС; ИтогоПоХарактеристикам.Параметры.ЕдиницаИзмерения = ЕдиницаИзмерения; ИтогоПоХарактеристикам.Параметры.Сумма = Сумма; Сумма = 0; Количество = 0; КоличествоСтарого = 0; ТабДокумент.Вывести(ИтогоПоХарактеристикам); Иначе КоличествоСтарого = 0; Сумма = 0; Количество = 0; КонецЕсли; КонецЕсли; Отбор = Новый Структура; Отбор.Вставить("Контрагент",СсылкаНаОбъект.Контрагент); Отбор.Вставить("Договор",СсылкаНаОбъект.ДоговорКонтрагента); Отбор.Вставить("Номенклатура",ЗапросТовары.Номенклатура); Отбор.Вставить("Размер",ЗапросТовары.Размер); Отбор.Вставить("Цвет",ЗапросТовары.Цвет); Отбор.Вставить("ДопЭл",ЗапросТовары.ДопЭл); Если РегистрыСведений.НаименованиеДляКонтрагента.Получить(Отбор).Количество() > 0 Тогда Если РегистрыСведений.НаименованиеДляКонтрагента.Получить(Отбор).Наименование <> "" Тогда Наименование = РегистрыСведений.НаименованиеДляКонтрагента.Получить(Отбор).Наименование; Иначе Наименование = СокрЛП(ЗапросТовары.Товар)+" "+СокрЛП(ЗапросТовары.Цвет)+" "+СокрЛП(ЗапросТовары.ДопЭл); КонецЕсли; КонецЕсли; ОбластьСтроки.Параметры.НомерСтроки = счетчик + 1; ОбластьСтроки.Параметры.Товар = Наименование; ОбластьСтроки.Параметры.Код = ЗапросТовары.Код; ОбластьСтроки.Параметры.Количество = ЗапросТовары.Количество; ОбластьСтроки.Параметры.СтавкаНДС = ЗапросТовары.СтавкаНДС; ОбластьСтроки.Параметры.ЕдиницаИзмерения = ЗапросТовары.ЕдиницаИзмерения; ОбластьСтроки.Параметры.ЦенабезНДС =(ЗапросТовары.Сумма-ЗапросТовары.СуммаНДС)/?(ЗапросТОвары.Количество = 0, 1, ЗапросТовары.Количество); ОбластьСтроки.Параметры.Сумма = ЗапросТовары.Сумма; ОбластьСтроки.Параметры.Цена = ЗапросТовары.Цена; ОбластьСтроки.Параметры.Размер = ЗапросТовары.Размер; // ОбластьСтроки.Параметры.Цвет = ЗапросТовары.Цвет; // ОбластьСтроки.Параметры.ДопЭл = ЗапросТовары.ДопЭл; Наименование = СокрЛП(ЗапросТовары.Товар); Количество = Количество + ЗапросТовары.Количество; СтавкаНДС = ЗапросТовары.СтавкаНДС; Сумма = Сумма + ОбластьСтроки.Параметры.Сумма; СуммаИтог = СуммаИтог + ОбластьСтроки.Параметры.Сумма; ЕдиницаИзмерения = ЗапросТовары.ЕдиницаИзмерения; СуммаНДС = СуммаНДС + ЗапросТовары.СуммаНДС; КоличествоСтарого = КоличествоСтарого + 1; СтароеНаименование = Наименование; ТабДокумент.Вывести(ОбластьСтроки); счетчик = счетчик + 1; КонецЦикла; Если (КоличествоСтарого > 1) Тогда ИтогоПоХарактеристикам.Параметры.Товар = Наименование; ИтогоПоХарактеристикам.Параметры.Количество = Количество; ИтогоПоХарактеристикам.Параметры.СтавкаНДС = СтавкаНДС; ИтогоПоХарактеристикам.Параметры.ЕдиницаИзмерения = ЕдиницаИзмерения; ИтогоПоХарактеристикам.Параметры.Сумма = Сумма; Сумма = 0; Количество = 0; ТабДокумент.Вывести(ИтогоПоХарактеристикам); КонецЕсли; // ТабДокумент.ЗакончитьАвтогруппировкуСтрок(); // Вывести Итого ОбластьИтого = Макет.ПолучитьОбласть("Итого"); ОбластьИтого.Параметры.Всего =СуммаИтог; ТабДокумент.Вывести(ОбластьИтого); // Вывести ИтогоНДС ОбластьИтогоНДС = Макет.ПолучитьОбласть("ИтогоНДС"); Если СуммаНДС <> 0 Тогда ОбластьИтогоНДС.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:"); ОбластьИтогоНДС.Параметры.ВсегоНДС = СуммаНДС; Иначе ОбластьИтогоНДС.Параметры.НДС = "Без налога (НДС)"; ОбластьИтогоНДС.Параметры.ВсегоНДС = "-"; КонецЕсли; ТабДокумент.Вывести(ОбластьИтогоНДС); // Вывести Сумму прописью ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью"); СуммаКПрописи = СуммаИтог;// + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС); ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего наименований " + счетчик + ", на сумму " + ФормированиеПечатныхФорм.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента); ОбластьМакета.Параметры.СуммаПрописью = РаботаСДиалогами.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента); ТабДокумент.Вывести(ОбластьМакета); // Вывести подписи //Если Тип = "Счет" Тогда ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчета"); ОбластьМакета.Параметры.Заполнить(Шапка); //ОбластьМакета.Параметры.ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата), "ИНН,КПП,ПолноеНаименование,ЮридическийАдрес,Телефоны,"); Отбор = Новый Структура; Отбор.Вставить("Объект",Шапка.Получатель); Отбор.Вставить("Тип", Перечисления.ТипыКонтактнойИнформации.Другое); Отбор.Вставить("Вид",Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00033").Ссылка); /// //Если СокрЛП(Шапка.АдресДоставки) <> "" Тогда // ПредставлениеПолучателяДоАдреса = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПолучателе, "ПолноеНаименование,ИНН,"); // ПредставлениеПолучателяПослеАдреса = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПолучателе, "Телефоны,НомерСчета,Банк,БИК,КоррСчет,"); // ОбластьМакета.Параметры.ПредставлениеПолучателя = ?(СокрЛП(ПредставлениепОЛУЧАТЕЛЯДоАдреса) = "", "", ПредставлениеПолучателяДоАдреса+", ") + ?(СокрЛП(ПредставлениеПолучателяПослеАдреса)="", "", ", "+ПредставлениепОЛУЧАТЕЛЯПослеАдреса); //Иначе Если не РегистрыСведений.КонтактнаяИнформация.Получить(Отбор).Представление = "" Тогда Отбор.Очистить(); Отбор.Вставить("Объект",Шапка.Получатель); Отбор.Вставить("Тип", Перечисления.ТипыКонтактнойИнформации.Адрес); Отбор.Вставить("Вид",Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00008").Ссылка); СведенияОПолучателе3 = РегистрыСведений.КонтактнаяИнформация.Получить(Отбор).Представление; // СведенияОПол1=Лев(СведенияОполучателе1,Найти(СведенияОполучателе3,",")-1); ПредставлениеГрузополучателя=СокрЛП(СведенияОПолучателе3); Иначе ПредставлениеГрузополучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПолучателе,"ПолноеНаименование,ФактическийАдрес"); КонецЕсли; ПредставлениеПолучателя2 = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПолучателе,"ПолноеНаименование"); Адрес=ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПолучателе,"ЮридическийАдрес"); ИНН=ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПолучателе,"ИНН")+"/"+ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПолучателе,"КПП"); ОбластьМакета.Параметры.Адрес =Адрес; ОбластьМакета.Параметры.ПредставлениеГрузополучателя =ПредставлениеГрузополучателя; ОбластьМакета.Параметры.ИНН =ИНН; ОбластьМакета.Параметры.ПредставлениеПолучателя2 =ПредставлениеПолучателя2; Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(Шапка.Руководители, Шапка.Дата,); Руководитель = Руководители.Руководитель; Бухгалтер = Руководители.ГлавныйБухгалтер; ОбластьМакета.Параметры.Ответственный = Шапка.Ответственный; //Дожность=Ответственный.Должность; //ОбластьМакета.Параметры.Должность=Шапка.Должность; ОбластьМакета.Параметры.Плательщик=Плательщик; ТабДокумент.Вывести(ОбластьМакета); //ОбластьМакета.Параметры.ФИОРуководителя = Руководитель; //ОбластьМакета.Параметры.ФИОБухгалтера = Бухгалтер; // сли Тип = "Счет" Тогда // ОбластьМакета = Макет.ПолучитьОбласть("Ответственный"); // Ответственный = ПараметрыСеанса.ТекущийПользователь; //ОбластьМакета.Параметры.СОтветственный = Ответственный; //Иначе // ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа"); //КонецЕсли; //ОбластьМакета.Параметры.Заполнить(Шапка); //ТабДокумент.Вывести(ОбластьМакета); Если ФормаИзДокумента.Открыта() Тогда формаИзДокумента.Закрыть(); КонецЕсли; Возврат ТабДокумент; КонецФункции // ПечатьСчетаЗаказа() |
|||
|
51
zaika7777
07.08.08
✎
15:10
|
с реквизитом на форме я пока просто попробовала его выводить
|
|||
|
52
zaika7777
07.08.08
✎
15:13
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
ТабДокумент = Печать(); УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, 1, Ложь, "Счет"); КонецПроцедуры на форме |
|||
|
53
D_E_S_131
07.08.08
✎
15:14
|
ПолучитьФорму("ФормаРедактирования"); <-- ЭТО ЛИШНЕЕ
// ФормаИзДокумента = СсылкаНаОбъект.ПолучитьФорму("ФормаРедактирования"); ФормаИзДокумента = ПолучитьФорму("ФормаРедактирования"); |
|||
|
54
D_E_S_131
07.08.08
✎
15:15
|
(52) Так это внешняя печ. форма или своя процедура?
|
|||
|
55
D_E_S_131
07.08.08
✎
15:17
|
"ФормаРедактирования" - ее Вы к документу "прилепили"?
|
|||
|
56
zaika7777
07.08.08
✎
15:20
|
Это внешняя печатная форма. К ней создала форму, на которую добавиила дополнительный реквизит
|
|||
|
57
Serg_1960
07.08.08
✎
15:21
|
(47) После открытия формы алгорит продолжает выполняться... и ждет пока не закроют форму...
Функция Печать() Экспорт ФормаИзДокумента = ПолучитьФорму("ФормаРедактирования"); Если Не ФормаИзДокумента.Открыта() Тогда ФормаИзДокумента.Открыть(); КонецЕсли; Пока ФормаИзДокумента.Открыта() Цикл // не бейте меня за тупой алгоритм :о) я торможжжжууу КонецЦикла; Сообщить("Осторожно! Двери... тьфу! алгоритм продолжается..."); Запрос = Новый Запрос; |
|||
|
58
Serg_1960
07.08.08
✎
15:24
|
(50) Хм... Вы не блондинка... (52) и не бух... Ыыыы!!! Вы меня обманули %(((
|
|||
|
59
zaika7777
07.08.08
✎
15:25
|
(57) издеваешься?
|
|||
|
60
D_E_S_131
07.08.08
✎
15:25
|
Меня пугают такие имена переменных как "ФормаИзДокумента". "ФормаИзМоейПФ" было бы логичнее...
|
|||
|
61
D_E_S_131
07.08.08
✎
15:27
|
Заика, просто переделайте начало Вашей процедуры (уберите лишнее "ПолучитьФорму").
|
|||
|
62
zaika7777
07.08.08
✎
15:27
|
(61) и все?
|
|||
|
63
Serg_1960
07.08.08
✎
15:29
|
(59) Как можно, мадам? Как Вы такое подумали? В (57) - Ваше решение. Ну может быть в первых строках тока :о)
|
|||
|
64
zaika7777
07.08.08
✎
15:29
|
(61) ну и что, ничего не меняется. у мня сейчас единственная проблема: открывается 2 окна с печатной формой
|
|||
|
65
zaika7777
07.08.08
✎
15:30
|
(59) я м-зель) что у меня так. можно просто объяснить
|
|||
|
66
D_E_S_131
07.08.08
✎
15:34
|
Я понял. Вы еще на своей открываемой форме печать запускаете. Правильно? Как в (52) написано...
|
|||
|
67
D_E_S_131
07.08.08
✎
15:35
|
2 Serg_1960:
Чем плохо модальное открытие формы в этом случае? |
|||
|
68
zaika7777
07.08.08
✎
15:35
|
да (52)
|
|||
|
69
zaika7777
07.08.08
✎
15:36
|
то есть убрать вообще это?
|
|||
|
70
D_E_S_131
07.08.08
✎
15:37
|
Именно по этому я и написал, что по кнопке "Ок" только "Закрыть(Истина);" нужно ставить.
|
|||
|
71
zaika7777
07.08.08
✎
15:39
|
спасибо, попробую
|
|||
|
72
D_E_S_131
07.08.08
✎
15:40
|
Если что пишите в аську (есть в ЛС). А я пока пойду возьму номер аськи у Эльфа_Война из соседней темы.
|
|||
|
73
zaika7777
07.08.08
✎
15:41
|
с чего начала к тому и пришла((
спасибо всем |
|||
|
74
D_E_S_131
07.08.08
✎
15:42
|
За то поговорили...
|
|||
|
75
zaika7777
07.08.08
✎
15:45
|
ага
|
|||
|
76
zaika7777
07.08.08
✎
15:59
|
Все получилось! спасибо DES 131
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |