Имя: Пароль:
1C
1С v8
Слишком много фактических параметров
,
0 tolok_d
 
27.09.12
16:43
код:


Функция Печать() Экспорт
   
   Перем ПутьКШаблону;
   // СсылкаНаОбъект = СсылкаНаОбъект.РеализацияТоваровУслуг;
   ПутьКШаблону = "d:\1с_bases\УТП 20.08.2012\Договор.dotx";

   
   Попытка
       Форма = ПолучитьФорму("ФормаЗначОб");
       Форма.ОткрытьМодально();
       
   Исключение
       Форма = ПолучитьФорму("ФормаЗначений", );
       Форма.ОткрытьМодально();
       
   КонецПопытки;
   
   
   ДанныеШаблона = Новый Структура;
   ДанныеШаблона.Вставить("ДоговорДата", ? (СсылкаНаОбъект.ДоговорКонтрагента.Дата = '00010101000000', "«__»  ________ 201_ року", Формат(СсылкаНаОбъект.ДоговорКонтрагента.Дата, "ДЛФ=ДД")));
   ДанныеШаблона.Вставить("ДоговорНомер", ? (СсылкаНаОбъект.ДоговорКонтрагента.Номер = Неопределено, "", СсылкаНаОбъект.ДоговорКонтрагента.Номер));
     ДанныеШаблона.Вставить("ДатаНачалаИспользованияОборудования", ? (ЭтотОбъект.ДатаНачалаИспользованияОборудования = "", "«__»  ________ 201_ року", Формат(ЭтотОбъект.ДатаНачалаИспользованияОборудования, "ДЛФ=ДД")));
   //ДанныеШаблона.Вставить("ПериодИспользованияОборудования", ЭтотОбъект.ПериодИспользованияОборудования);
   ДанныеШаблона.Вставить("НастройкаОборудованияС", ? (ЭтотОбъект.НастройкаОборудованияС = "", "«__»  ________ 201_ року", Формат(ЭтотОбъект.НастройкаОборудованияС, "ДЛФ=ДД")));
   ДанныеШаблона.Вставить("НастройкаОборудованияПО", ? (ЭтотОбъект.НастройкаОборудованияПО = "", "«__»  ________ 201_ року", Формат(ЭтотОбъект.НастройкаОборудованияПО, "ДЛФ=ДД")));
   ДанныеШаблона.Вставить("ДоговорДействителенДо", ? (ЭтотОбъект.ДоговорДействителенДо = "", "«__»  ________ 201_ року", Формат(ЭтотОбъект.ДоговорДействителенДо, "ДЛФ=ДД")));
   ДанныеШаблона.Вставить("АдресУстановкиОборудования", ЭтотОбъект.АдресУстановкиОборудования, ? (ЭтотОбъект.АдресУстановкиОборудования = "", "_____________________________________________________________________________________________________", ЭтотОбъект.АдресУстановкиОборудования));
   
   
   //ответственные лица Контрагента
   КонтрОтвЛ = ОбщегоНазначения.ОтветственныеЛицаКонтрагента(СсылкаНаОбъект.Контрагент, СсылкаНаОбъект.Дата);
   Для каждого Элем Из КонтрОтвЛ Цикл
       ДанныеШаблона.Вставить(Элем.Ключ, Элем.Значение);
   КонецЦикла;
   //Инфа о контрагенте    
   Контр = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(СсылкаНаОбъект.Контрагент, СсылкаНаОбъект.Дата, Истина, , "ua");
   Для каждого Элем Из Контр Цикл
       ДанныеШаблона.Вставить(Элем.Ключ, Элем.Значение);
   КонецЦикла;
   СуммаБезНДС = УчетНДС.ПолучитьСуммуДокументаСНДС(СсылкаНаОбъект, "Товары")+УчетНДС.ПолучитьСуммуДокументаСНДС(СсылкаНаОбъект, "Услуги");
   прСуммаБезНДС = ЧислоПрописью(СуммаБезНДС, "L=uk_UA", "гривня, гривні, гривень, ж, копійка, копійки, копійок, ж, 2");
   ДанныеШаблона.Вставить("СуммаБезНДС", СуммаБезНДС);
   ДанныеШаблона.Вставить("прСуммаБезНДС", прСуммаБезНДС);
   НДС = СсылкаНаОбъект.Товары.Итог("СуммаНДС")+СсылкаНаОбъект.Услуги.Итог("СуммаНДС");
   прНДС = ЧислоПрописью(НДС, "L=uk_UA", "гривня, гривні, гривень, ж, копійка, копійки, копійок, ж, 2");
   ДанныеШаблона.Вставить("НДС", НДС);
   ДанныеШаблона.Вставить("прНДС", прНДС);
   СуммаСНДС = СуммаБезНДС+НДС;
   прСуммаСНДС = ЧислоПрописью(СуммаСНДС, "Л=uk_UA", "гривня, гривні, гривень, ж, копійка, копійки, копійок, ж, 2");
   ДанныеШаблона.Вставить("СуммаСНДС", СуммаСНДС);
   ДанныеШаблона.Вставить("прСуммаСНДС", прСуммаСНДС);
   
   ///////////////////////////////////////////////////////
   
   //!!!Сообщить(Вне);
   
   //Создаем новый объекта типа Word.Application
   WordApplication = Новый COMОбъект("WORD.Application");
   
    //Выключаем отрисовку экрана
   WordApplication.ScreenUpdating = Ложь;
   
   //Создаем новый документ на основе шаблона
   //В переменной ПутьКШаблону указываем полный путь к созданному
   //нами шаблону (файл с расширешением dot)
   
   НовыйДокумент = WordApplication .Documents.Add(ПутьКШаблону);
   
   //Готовимся к поиску
   ЗаменаКонтента = НовыйДокумент.content.Find;
   
   //Заменяем текст
   //В первый параметр метода Execute передаем строку которую требуется заменить
   //В девятый - строку, на которую будет производится заменя
   //т.е. в ЧтоЗаменяем мы будем передавать имя переменной (например, [ИмяПользователя])
   //а в последний - ее значение
   Для каждого Элемент Из ДанныеШаблона Цикл
       
       ЗаменаКонтента = НовыйДокумент.content.Find; //попробовать вынести из цикла
       ЗаменаКонтента.Execute("&"+ Строка(Элемент.Ключ) ,Истина,Истина,Ложь,,,Истина,,Ложь,Строка(Элемент.Значение));
       
   КонецЦикла;
   
   
   //Дальше все зависит от наших хотелок
   //Сохранение документа
   WordApplication.Visible = Истина;
   НовыйДокумент.SaveAs("d:\Договор.docx");
   
   //Печать документа
   НовыйДокумент.PrintOut();
   
   //По окончанию работы требуется закрыть документ и сам Winword. Делается это так
   //Для метода Quit я передаю значение Ложь. Это говорит о том, что нам не требуется сохранять заполненный документ.
   WordApplication.application.Quit(Ложь);
   WordApplication = 0;
   
   WordApplication.ScreenUpdating = Истина;
   WordApplication.Application.Visible = Истина;
   WordApplication = 0;
   //=================
   
   
КонецФункции


пишет "Не удалось сформировать внешнюю печатную форму!
Слишком много фактических параметров"
Уважаемые эксперты, подскажите где моя ошибка.
1 Elf_80_lvl
 
27.09.12
16:45
(0) Целиком текст ошибки пожалуйста раз уж отладчиком пользоваться не научили
2 Лефмихалыч
 
27.09.12
16:45
Ну, параметров у тебя где-то дохрена, попробуй указать поменьше
3 mikecool
 
27.09.12
16:45
(0) снова ты простыни постишь?
4 vmv
 
27.09.12
16:46
лень и бред детектед
5 rs_trade
 
27.09.12
16:46
(0) в ДНК твоя ошибка
6 vmv
 
27.09.12
16:49
по анализу кода можно сделать вывод, что автору нужно было поступать на литературный факультет по специальности "Басни и сказки".

Там, в коде, практически романы со смакованием мельчайших деталей в стиле О. Генри
7 Trier
 
27.09.12
16:50
Слишком много фактических параметров"
Уважаемые эксперты, подскажите где моя ошибка.


Ты не поверишь...
8 tolok_d
 
27.09.12
16:51
(1) я целиком написал
(2) меньше никак. Сейчас буду по другому делать
(3) почему?
(4) пожалуйста поподробнее
(5) не у меня одного;)
9 pessok
 
27.09.12
16:51
//Готовимся к поиску

это прелестно, прелестно!
10 Лефмихалыч
 
27.09.12
16:52
(8) > меньше ни как
это тебе к китайцам надо - они, говорят, даже сервер пентагона уговорить могут
11 tolok_d
 
27.09.12
16:53
ОГРОМНАЯ ПРОСЬБА! Если можете подсказать, то прошу, если нет, то не надо постить фигню. Унижения и без вас хватает.
12 pessok
 
27.09.12
16:56
(11) подсказываю:
Будь мужиком, используй отладку, блеать!
13 Steel_Wheel
 
27.09.12
16:57
(11) Лишний параметр в вызываемой функции
14 ICWiner
 
27.09.12
16:57
Бро, когда пишется ошиба много параметров, то нажав отладчик можно посмотреть где много параметров. Или ты думаешь, ч о все понят вот это, напрмер   ЗаменаКонтента.Execute("&"+ Строка(Элемент.Ключ) ,Истина,Истина,Ложь,,,Истина,,Ложь,Строка(Элемент.Значение))
15 tolok_d
 
27.09.12
16:58
(12) уже использую. Ладно, всем адекватным людям спасибо. Буду сам колупать
(13)спасибо. понял
16 pessok
 
27.09.12
16:58
(15) ну и в какой строке у тебя ошибка, если ты используешь отладчик?
17 ICWiner
 
27.09.12
16:58
Find функцией пользовался и не раз, но скоко у нее параметров - без понятия. И такая она тут не одна. Отладчик сразу подскажет где много параметров.
18 Steelvan
 
27.09.12
23:11
Вот 100% что WORD официально куплен :)
19 kilcode
 
27.09.12
23:16
(0)
       ЗаменаКонтента.Execute("&"+ Строка(Элемент.Ключ) ,Истина,Истина,Ложь,,,Истина,,Ложь,Строка(Элемент.Значение));

Это бомба!