Имя: Пароль:
1C
 
Внешняя печатная форма. Дополнительный реквизит
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
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший