Имя: Пароль:
1C
1С v8
Недостаточно фактических параметров
,
0 sjavar
 
01.08.12
04:13
Здравствуйте!
Мне нужно "прикрутить" печатную форму ОС-1 к документу "Поступление ОС (забаланс)". Выдается ошибка:

{Документ.ОС_Аренда_Поступление.МодульОбъекта(325)}: Недостаточно фактических параметров
       ТабДокумент = ФормированиеПечатныхФорм.ПечатьОС_1_Передача(Ссылка);

Функция печати прописана так:

Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь, НепосредственнаяПечать = Ложь) Экспорт
   
   // Получить экземпляр документа на печать
   Если ИмяМакета = "ПриходныйОрдерМ4" Тогда
       // Унифицированная форма М-4 (приходный ордер)
       ТабДокумент = ПечатьМ4();
   ИначеЕсли ИмяМакета = "Справка0504833" Тогда
       // Унифицированная форма бухгалтерской справки (ф.0504833)
       ТабДокумент = ФормированиеПечатныхФорм.ПечатьСправки0540833(Ссылка);
   ИначеЕсли ИмяМакета = "ОС_1" Тогда
       // Унифицированная форма ОС-1 (акт приемки-передачи основных средств)
       //ТабДокумент = ФормированиеПечатныхФорм.ПечатьОС_1_Передача(Ссылка);
       ТабДокумент = ФормированиеПечатныхФорм.ПечатьОС_1_Передача(Ссылка);
   КонецЕсли;
   
   Если ТипЗнч(ТабДокумент) = Тип("ТабличныйДокумент") Тогда
       УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект,"Поступление материальных запасов на забалансовый учет"), НепосредственнаяПечать);
   КонецЕсли;    
   
КонецПроцедуры // Печать

Имя макета в Общих макетах: ОС_1
И функция ПолучитьСтруктуруПечатныхФорм прописана следующе:

Функция ПолучитьСтруктуруПечатныхФорм() Экспорт
   СтруктураПечатныхФорм = Новый Структура;
   СтруктураПечатныхФорм.Вставить("Справка0504833","Бухгалтерская справка");
   СтруктураПечатныхФорм.Вставить("ПриходныйОрдерМ4","Приходный ордер М4");
   СтруктураПечатныхФорм.Вставить("ОС_1","Форма ОС-1");
   Возврат СтруктураПечатныхФорм;

КонецФункции // ПолучитьСтруктуруПечатныхФорм()

Помогите, пожалуйста, разобраться. Может нужна обработка печати формы ОС-1? Или что-то еще дописать в Печать()?
1 izekia
 
01.08.12
04:16
(0) сам как считаешь глядя на строку в которой возникла ошибка?
2 ДенисЧ
 
01.08.12
04:16
А что написано в ФормированиеПечатныхФорм.ПечатьОС_1_Передача() ?
Там сколько параметров?
3 izekia
 
01.08.12
04:17
(2) не надо уже так откровенно)
4 sjavar
 
01.08.12
04:27
(1) Вообще как-то странно выходит: Макет называется "ОС-1", однако вот здесь ПечатьОС_1_Передача(Ссылка) он назван "ОС_1_Передача" (получилось с помощью Ctrl+пробел). Думаю, что что-то нужно добавить в Печать( [вот сюда] )
(2) 4
5 ДенисЧ
 
01.08.12
04:27
о. май. год.
6 sjavar
 
01.08.12
04:28
(2) там параметр ссылка
7 sjavar
 
01.08.12
04:30
(5) what?)
8 ДенисЧ
 
01.08.12
04:32
(8) you where pointed to error place, but do not want to understand
9 izekia
 
01.08.12
04:33
where же уже не можно?
10 izekia
 
01.08.12
04:34
(7) ФормированиеПечатныхФорм.ПечатьОС_1_Передача()
покажи объявление этого метода с параметрами
11 sjavar
 
01.08.12
04:37
(7) oops, нет его. но печать бухсправки тоже нет в модуле, однако она выводится
12 izekia
 
01.08.12
04:43
Ни Че Го себе
13 izekia
 
01.08.12
04:43
(11) выдели и F12 нажми
14 sjavar
 
01.08.12
04:46
(13) what & and...?
15 izekia
 
01.08.12
04:52
(14) - (10)
16 sjavar
 
01.08.12
04:54
Функция  ПечатьОС_1_Передача()
   ТабДокумент   = Новый ТабличныйДокумент();
   ТабДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ОС1";
   
   Запрос = Новый Запрос();
   Запрос.УстановитьПараметр("Ссылка", Ссылка);
   Запрос.Текст =
17 izekia
 
01.08.12
04:56
а откуда в Запрос.УстановитьПараметр("Ссылка", Ссылка); Ссылка берется?
и почему в ПечатьОС_1_Передача() пусто, а в вызове есть параметр?
18 sjavar
 
01.08.12
05:03
(17) 1. да.    
       |ИЗ
   |    Документ.ОС_Аренда_Поступление КАК ОС_Аренда_Поступление
   |ГДЕ
   |    ОС_Аренда_Поступление.Ссылка = &Ссылка";
2. не знаю. мне нужна нормальная обработка печати формы ОС-1, та что сейчас я делаю, меня не устраивает.
19 izekia
 
01.08.12
05:25
обратитесь к специалисту
как вариант можно попробовать написать вот так:
Функция  ПечатьОС_1_Передача(Ссылка)
20 sjavar
 
01.08.12
05:33
(19) специалист говорит: гугли, разбирайся сам. я новичок в 1с программировании.
пробовал, без толку. та же ошибка.
21 izekia
 
01.08.12
05:37
зря он так
22 sjavar
 
02.08.12
06:31
Вобщем, ничего у меня пока не получается.(( Ошибка всё та же: "Недостаточно фактических параметров" в строке:

ТабДокумент = ФормированиеПечатныхФорм.ПечатьОС_1_Передача(Ссылка);

Кто-нибудь делал обработку для формы ОС-1 " Акт приемки-передачи основных средств"? Нигде не могу  найти в инете, скачал обработку на infostart.ru, но она не подходит. Помогите, пожалуйста.
23 Рэйв
 
02.08.12
06:34
(22)Усвой как аксиому.  Количество параметров(в скобках заголовка функции) должно равняться числу параметров при вызове. Иначе возникает твоя ошибка.

Есть еще значения по умолчанию, но тебе лучше не забивать голову, с этим бы разобраться
24 sjavar
 
02.08.12
06:55
(23) Рэйв, спасибо за "разжеванный" материал.) Именно это мне как раз и нужно! А то в инете, да и в книгах тоже, порой так пишут, что нет желания в это вникать.
Однако, и здесь:
Функция ПечатьОС_1_Передача(Ссылка)
у меня стоит то же самое, что и в процедуре, но всё равно та же ошибка вылазит.
25 Рэйв
 
02.08.12
07:01
(24)Функция ПечатьОС_1_Передача(Ссылка)

Это где у тебя? В каком модуле ты смотришь?
26 sjavar
 
02.08.12
07:03
(25) В модуле объекта, естественно)
27 Рэйв
 
02.08.12
07:05
(26)И естественно это неправильно.
Не там она у тебя вызывается.

Смотри такую функцию в общем модуле "ФормированиеПечатныхФорм"
Если ты заметил вызов идет оттуда:

ТабДокумент = ФормированиеПечатныхФорм.ПечатьОС_1_Передача(Ссылка);
28 Рэйв
 
02.08.12
07:06
А функция модуля объекта, просто одноименная в другой локальной области видимости
29 Рэйв
 
02.08.12
07:07
...хотя я бы руки писателям всетаки оторвал за такое.
30 sjavar
 
02.08.12
07:16
(27) O_O Вижу эту процедурку печати в общих модулях!! Спасибо, и дальше как? Скопировать её в модуль объекта?
31 Рэйв
 
02.08.12
07:19
Дальше сравнивай количество параметров и делай так чтобы было правильно.
32 Рэйв
 
02.08.12
07:20
А вообще советую убрать "ФормированиеПечатныхФорм." и посмотреть что получится.
Сделай так:

ТабДокумент = ПечатьОС_1_Передача(Ссылка);
33 Рэйв
 
02.08.12
07:21
не спроста же они ее перенесли в модуль объекта.
34 Рэйв
 
02.08.12
07:21
только вызов забыли переделать видимо.
35 Мимохожий Однако
 
02.08.12
07:37
Копи пасто подвело
36 sjavar
 
02.08.12
08:31
Всем спасибо за участие, вопрос закрыт.) Отдельное спасибо Рэйву за науку!
37 sjavar
 
02.08.12
08:53
Нашел в базе документ, в котором форма ОС-1 уже "прикручена". Скопировал код, открываю документ в базе, кнопка есть, но когда посылаю на печать, открывает пустой документ. Теперь вот разбираюсь с обработкой печати. Но это уже я сам)