|
v8: Ошибка при формировании внешней печатной формы... | ☑ | ||
|---|---|---|---|---|
|
0
KSG-RIB
06.02.13
✎
16:20
|
Цель сделать внешнею печатную форму КарточкаДепонента для документа Депонирование Организации. Внешнею печатную форму создал , макет скопировал ,Реквизиты указал (СсылкаНаОбъект) ,Функции перенс , ссылки прописал, на проверку ошибок пишет (нет ошибок), подключаю ее к документу пытаюсь сформировть пишет (Не удалось сформировать внешнюю печатную форму!Недостаточно фактических параметров. Короче что-то намудрил . Скорее всего в Функции (Печать)
Признаю что намудрил тут лишнего. #Если Клиент Тогда Функция ДепонируемыеСуммыДляПечати() Запрос = Новый Запрос; // Установим параметры запроса Запрос.УстановитьПараметр("ДокументСсылка", СсылкаНаОбъект); Запрос.Текст = "ВЫБРАТЬ | ЗарплатаКВыплатеОрганизацииЗарплата.Физлицо КАК Физлицо, | ДепонированиеОрганизацийДепонированиеЗаработнойПлаты.Ведомость КАК Ведомость, | СУММА(ЗарплатаКВыплатеОрганизацииЗарплата.Сумма + ЗарплатаКВыплатеОрганизацииЗарплата.КомпенсацияЗаЗадержкуЗарплаты) КАК Сумма |ИЗ | Документ.ДепонированиеОрганизаций.ДепонированиеЗаработнойПлаты КАК ДепонированиеОрганизацийДепонированиеЗаработнойПлаты | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацииЗарплата | ПО ДепонированиеОрганизацийДепонированиеЗаработнойПлаты.Ведомость = ЗарплатаКВыплатеОрганизацииЗарплата.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОВыплатахРаботникамОрганизацийПоПлатежнымВедомостям КАК РанееВыплаченныеСуммы | ПО ДепонированиеОрганизацийДепонированиеЗаработнойПлаты.Ведомость = РанееВыплаченныеСуммы.Ведомость | И (ЗарплатаКВыплатеОрганизацииЗарплата.Физлицо = РанееВыплаченныеСуммы.Физлицо) | И (РанееВыплаченныеСуммы.Регистратор <> &ДокументСсылка) |ГДЕ | ДепонированиеОрганизацийДепонированиеЗаработнойПлаты.Ссылка = &ДокументСсылка | И ЗарплатаКВыплатеОрганизацииЗарплата.ВыплаченностьЗарплаты = ЗНАЧЕНИЕ(Перечисление.ВыплаченностьЗарплаты.Задепонировано) | И РанееВыплаченныеСуммы.Физлицо ЕСТЬ NULL | |СГРУППИРОВАТЬ ПО | ДепонированиеОрганизацийДепонированиеЗаработнойПлаты.Ведомость, | ЗарплатаКВыплатеОрганизацииЗарплата.Физлицо"; Возврат Запрос.Выполнить().Выгрузить(); КонецФункции Функция ПечатьКарточкиДепонента(Документ, ДепонируемыеСуммы = Неопределено) Экспорт ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ПолеСлева = 0; ТабДокумент.ПолеСправа = 0; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ДепонированиеОрганизаций_КарточкиДепонента"; Макет = ПолучитьМакет("КарточкаДепонента"); // получаем данные для печати Шапка = Новый Структура; Шапка.Вставить("Номер", Документ.Номер); Шапка.Вставить("ДатаДок", Документ.Дата); Шапка.Вставить("НазваниеОрганизации", СокрЛП(Документ.Организация.НаименованиеПолное)); Депоненты = ДепонентыПоДокументу(Документ, ДепонируемыеСуммы); ОбластьМакета = Макет.ПолучитьОбласть("Карточка"); // выводим общие данные ОбластьМакета.Параметры.Заполнить(Шапка); // Шапка документа. ВыведеноСтрок = 0; ВалютаРасчетов = Константы.ВалютаРегламентированногоУчета.Получить(); // выводим данные по строкам документа. Для Каждого Депонент Из Депоненты Цикл ВыведеноСтрок = ВыведеноСтрок + 1; ОбластьМакета.Параметры.Заполнить(Депонент); ОбластьМакета.Параметры.НомерКарточки = "" + Шапка.Номер + "/" + ВыведеноСтрок; ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(Депонент.Сумма, ВалютаРасчетов); ТабДокумент.Вывести(ОбластьМакета); // разбиение на страницы Если ВыведеноСтрок % 2 Тогда ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; КонецЦикла; Возврат ТабДокумент КонецФункции Функция ДепонентыПоДокументу(Документ, ДепонируемыеСуммы = Неопределено) Запрос = Новый Запрос; // Установим параметры запроса Запрос.УстановитьПараметр("ДатаДепонирования", Документ.Дата); Запрос.УстановитьПараметр("Организация", ОбщегоНазначения.ГоловнаяОрганизация(Документ.Организация)); Если ДепонируемыеСуммы = Неопределено Тогда Запрос.УстановитьПараметр("Регистратор", Документ.СсылкаНаОбъект); ТекстЗапросаДепонируемыхСумм = "ВЫБРАТЬ | ВзаиморасчетыСДепонентамиОрганизаций.Физлицо, | ВзаиморасчетыСДепонентамиОрганизаций.Ведомость, | ВзаиморасчетыСДепонентамиОрганизаций.Сумма |ПОМЕСТИТЬ ВТДепонированныеСуммы |ИЗ | РегистрНакопления.ВзаиморасчетыСДепонентамиОрганизаций КАК ВзаиморасчетыСДепонентамиОрганизаций |ГДЕ | ВзаиморасчетыСДепонентамиОрганизаций.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | И ВзаиморасчетыСДепонентамиОрганизаций.Регистратор = &Регистратор" Иначе Запрос.УстановитьПараметр("ДепонируемыеСуммы", ДепонируемыеСуммы); ТекстЗапросаДепонируемыхСумм = "ВЫБРАТЬ | ДепонируемыеСуммы.Физлицо, | ДепонируемыеСуммы.Ведомость, | ДепонируемыеСуммы.Сумма |ПОМЕСТИТЬ ВТДепонированныеСуммы |ИЗ | &ДепонируемыеСуммы КАК ДепонируемыеСуммы" КонецЕсли; Запрос.Текст = ТекстЗапросаДепонируемыхСумм + Символы.ПС + "; | |////////////////////////////////////////////////////////////////////////////////" + Символы.ПС + "ВЫБРАТЬ | ДепонированныеСуммы.Ведомость.Номер КАК НомерВедомости, | ДепонированныеСуммы.Ведомость.Дата КАК ДатаВедомости, | ДепонированныеСуммы.Сумма, | ЕСТЬNULL(ФИОФизЛицСрезПоследних.Фамилия + ВЫБОР | КОГДА ПОДСТРОКА(ФИОФизЛицСрезПоследних.Имя, 1, 1) <> """" | ТОГДА "" "" + ПОДСТРОКА(ФИОФизЛицСрезПоследних.Имя, 1, 1) + ""."" | ИНАЧЕ """" | КОНЕЦ + ВЫБОР | КОГДА ПОДСТРОКА(ФИОФизЛицСрезПоследних.Отчество, 1, 1) <> """" | ТОГДА "" "" + ПОДСТРОКА(ФИОФизЛицСрезПоследних.Отчество, 1, 1) + ""."" | ИНАЧЕ """" | КОНЕЦ, ДепонированныеСуммы.Физлицо.Наименование) КАК ФИОРаботника, | РаботникиОрганизаций.Сотрудник.Код КАК ТабельныйНомер |ИЗ | ВТДепонированныеСуммы КАК ДепонированныеСуммы | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних( | &ДатаДепонирования, | Физлицо В | (ВЫБРАТЬ | ДепонированныеСуммы.Физлицо | ИЗ | ВТДепонированныеСуммы КАК ДепонированныеСуммы)) КАК ФИОФизЛицСрезПоследних | ПО ДепонированныеСуммы.Физлицо = ФИОФизЛицСрезПоследних.ФизЛицо | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних( | &ДатаДепонирования, | Сотрудник.Физлицо В | (ВЫБРАТЬ | ДепонированныеСуммы.Физлицо | ИЗ | ВТДепонированныеСуммы КАК ДепонированныеСуммы) | И Сотрудник.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство) | И Организация = &Организация) КАК РаботникиОрганизаций | ПО (РаботникиОрганизаций.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)) | И ДепонированныеСуммы.Физлицо = РаботникиОрганизаций.Сотрудник.Физлицо | |УПОРЯДОЧИТЬ ПО | ФИОРаботника"; Возврат Запрос.Выполнить().Выгрузить(); КонецФункции Функция Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт // Получить экземпляр документа на печать Если ИмяМакета = "КарточкаДепонента" тогда ТабДокумент = Документы.ДепонированиеОрганизаций.ПечатьКарточкиДепонента(ЭтотОбъект, ДепонируемыеСуммыДляПечати()); УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект,"Карточки депонентов")); КонецЕсли; КонецФункции // Печать |
|||
|
1
mikecool
06.02.13
✎
16:27
|
Шапка = Новый Структура;
Шапка.Вставить("Номер", Документ.Номер); Шапка.Вставить("ДатаДок", Документ.Дата); Шапка.Вставить("НазваниеОрганизации", СокрЛП(Документ.Организация.НаименованиеПолное)); Депоненты = ДепонентыПоДокументу(Документ, ДепонируемыеСуммы); что такое Документ? |
|||
|
2
mikecool
06.02.13
✎
16:28
|
неужели трудно прогнать отладчиком, и потом уже постить?
|
|||
|
3
KSG-RIB
07.02.13
✎
12:57
|
Отладчиком погнонял. "Документ" пока еще не определил что такое. Функцию взял из оригинала документа встроенного.
|
|||
|
4
KSG-RIB
08.02.13
✎
09:34
|
Функция ДепонируемыеСуммыДляПечати()
Запрос = Новый Запрос; // Установим параметры запроса Запрос.УстановитьПараметр("ДокументСсылка", СсылкаНаОбъект); Запрос.Текст = "ВЫБРАТЬ | ЗарплатаКВыплатеОрганизацииЗарплата.Физлицо КАК Физлицо, | ДепонированиеОрганизацийДепонированиеЗаработнойПлаты.Ведомость КАК Ведомость, | СУММА(ЗарплатаКВыплатеОрганизацииЗарплата.Сумма + ЗарплатаКВыплатеОрганизацииЗарплата.КомпенсацияЗаЗадержкуЗарплаты) КАК Сумма |ИЗ | Документ.ДепонированиеОрганизаций.ДепонированиеЗаработнойПлаты КАК ДепонированиеОрганизацийДепонированиеЗаработнойПлаты | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацииЗарплата | ПО ДепонированиеОрганизацийДепонированиеЗаработнойПлаты.Ведомость = ЗарплатаКВыплатеОрганизацииЗарплата.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОВыплатахРаботникамОрганизацийПоПлатежнымВедомостям КАК РанееВыплаченныеСуммы | ПО ДепонированиеОрганизацийДепонированиеЗаработнойПлаты.Ведомость = РанееВыплаченныеСуммы.Ведомость | И (ЗарплатаКВыплатеОрганизацииЗарплата.Физлицо = РанееВыплаченныеСуммы.Физлицо) | И (РанееВыплаченныеСуммы.Регистратор <> &ДокументСсылка) |ГДЕ | ДепонированиеОрганизацийДепонированиеЗаработнойПлаты.Ссылка = &ДокументСсылка | И ЗарплатаКВыплатеОрганизацииЗарплата.ВыплаченностьЗарплаты = ЗНАЧЕНИЕ(Перечисление.ВыплаченностьЗарплаты.Задепонировано) | И РанееВыплаченныеСуммы.Физлицо ЕСТЬ NULL | |СГРУППИРОВАТЬ ПО | ДепонированиеОрганизацийДепонированиеЗаработнойПлаты.Ведомость, | ЗарплатаКВыплатеОрганизацииЗарплата.Физлицо"; Возврат Запрос.Выполнить().Выгрузить(); КонецФункции // ДепонируемыеСуммыДляПечати() Функция ДепонентыПоДокументу(Документ, ДепонируемыеСуммы = Неопределено) Запрос = Новый Запрос; // Установим параметры запроса Запрос.УстановитьПараметр("ДатаДепонирования", Документ.Дата); Запрос.УстановитьПараметр("Организация", ОбщегоНазначения.ГоловнаяОрганизация(Документ.Организация)); Если ДепонируемыеСуммы = Неопределено Тогда Запрос.УстановитьПараметр("Регистратор", Документ.Ссылка); ТекстЗапросаДепонируемыхСумм = "ВЫБРАТЬ | ВзаиморасчетыСДепонентамиОрганизаций.Физлицо, | ВзаиморасчетыСДепонентамиОрганизаций.Ведомость, | ВзаиморасчетыСДепонентамиОрганизаций.Сумма |ПОМЕСТИТЬ ВТДепонированныеСуммы |ИЗ | РегистрНакопления.ВзаиморасчетыСДепонентамиОрганизаций КАК ВзаиморасчетыСДепонентамиОрганизаций |ГДЕ | ВзаиморасчетыСДепонентамиОрганизаций.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | И ВзаиморасчетыСДепонентамиОрганизаций.Регистратор = &Регистратор" Иначе Запрос.УстановитьПараметр("ДепонируемыеСуммы", ДепонируемыеСуммы); ТекстЗапросаДепонируемыхСумм = "ВЫБРАТЬ | ДепонируемыеСуммы.Физлицо, | ДепонируемыеСуммы.Ведомость, | ДепонируемыеСуммы.Сумма |ПОМЕСТИТЬ ВТДепонированныеСуммы |ИЗ | &ДепонируемыеСуммы КАК ДепонируемыеСуммы" КонецЕсли; Запрос.Текст = ТекстЗапросаДепонируемыхСумм + Символы.ПС + "; | |////////////////////////////////////////////////////////////////////////////////" + Символы.ПС + "ВЫБРАТЬ | ДепонированныеСуммы.Ведомость.Номер КАК НомерВедомости, | ДепонированныеСуммы.Ведомость.Дата КАК ДатаВедомости, | ДепонированныеСуммы.Сумма, | ЕСТЬNULL(ФИОФизЛицСрезПоследних.Фамилия + ВЫБОР | КОГДА ПОДСТРОКА(ФИОФизЛицСрезПоследних.Имя, 1, 1) <> """" | ТОГДА "" "" + ПОДСТРОКА(ФИОФизЛицСрезПоследних.Имя, 1, 1) + ""."" | ИНАЧЕ """" | КОНЕЦ + ВЫБОР | КОГДА ПОДСТРОКА(ФИОФизЛицСрезПоследних.Отчество, 1, 1) <> """" | ТОГДА "" "" + ПОДСТРОКА(ФИОФизЛицСрезПоследних.Отчество, 1, 1) + ""."" | ИНАЧЕ """" | КОНЕЦ, ДепонированныеСуммы.Физлицо.Наименование) КАК ФИОРаботника, | РаботникиОрганизаций.Сотрудник.Код КАК ТабельныйНомер |ИЗ | ВТДепонированныеСуммы КАК ДепонированныеСуммы | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних( | &ДатаДепонирования, | Физлицо В | (ВЫБРАТЬ | ДепонированныеСуммы.Физлицо | ИЗ | ВТДепонированныеСуммы КАК ДепонированныеСуммы)) КАК ФИОФизЛицСрезПоследних | ПО ДепонированныеСуммы.Физлицо = ФИОФизЛицСрезПоследних.ФизЛицо | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних( | &ДатаДепонирования, | Сотрудник.Физлицо В | (ВЫБРАТЬ | ДепонированныеСуммы.Физлицо | ИЗ | ВТДепонированныеСуммы КАК ДепонированныеСуммы) | И Сотрудник.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство) | И Организация = &Организация) КАК РаботникиОрганизаций | ПО (РаботникиОрганизаций.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)) | И ДепонированныеСуммы.Физлицо = РаботникиОрганизаций.Сотрудник.Физлицо | |УПОРЯДОЧИТЬ ПО | ФИОРаботника"; Возврат Запрос.Выполнить().Выгрузить(); КонецФункции Функция ПечатьКарточкиДепонента(СсылкаНаОбъект, ДепонируемыеСуммы = Неопределено) Экспорт ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ПолеСлева = 0; ТабДокумент.ПолеСправа = 0; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ДепонированиеОрганизаций_КарточкиДепонента"; Макет = ПолучитьМакет("КарточкаДепонента"); // получаем данные для печати Шапка = Новый Структура; Шапка.Вставить("Номер", СсылкаНаОбъект.Номер); Шапка.Вставить("ДатаДок", СсылкаНаОбъект.Дата); Шапка.Вставить("НазваниеОрганизации", СокрЛП(СсылкаНаОбъект.Организация.НаименованиеПолное)); Депоненты = ДепонентыПоДокументу(СсылкаНаОбъект, ДепонируемыеСуммы); ОбластьМакета = Макет.ПолучитьОбласть("Карточка"); // выводим общие данные ОбластьМакета.Параметры.Заполнить(Шапка); // Шапка документа. ВыведеноСтрок = 0; ВалютаРасчетов = Константы.ВалютаРегламентированногоУчета.Получить(); // выводим данные по строкам документа. Для Каждого Депонент Из Депоненты Цикл ВыведеноСтрок = ВыведеноСтрок + 1; ОбластьМакета.Параметры.Заполнить(Депонент); ОбластьМакета.Параметры.НомерКарточки = "" + Шапка.Номер + "/" + ВыведеноСтрок; ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(Депонент.Сумма, ВалютаРасчетов); ТабДокумент.Вывести(ОбластьМакета); // разбиение на страницы Если ВыведеноСтрок % 2 Тогда ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; КонецЦикла; Возврат ТабДокумент КонецФункции Функция Печать( КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт // Получить экземпляр документа на печать //Если ИмяМакета = "КарточкаДепонента" тогда //ТабДокумент = Документы.ДепонированиеОрганизаций.ПечатьКарточкиДепонента(СсылкаНаОбъект, ДепонируемыеСуммыДляПечати()); ТабДокумент = Документы.ДепонированиеОрганизаций.ПечатьКарточкиДепонента(СсылкаНаОбъект, ПечатьКарточкиДепонента(СсылкаНаОбъект)); УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(СсылкаНаОбъект,"Карточки депонентов")); //КонецЕсли; КонецФункции // Пе |
|||
|
5
salvator
08.02.13
✎
09:36
|
Подозреваю, что Документ надо заменить на СсылкаНаОбъект
|
|||
|
6
mikecool
08.02.13
✎
09:37
|
(3) замени Документ на ДокументСсылка или позови специалиста
|
|||
|
7
mikecool
08.02.13
✎
09:37
|
+6 а, точно, (5) :)
|
|||
|
8
KSG-RIB
08.02.13
✎
09:38
|
Спасибо
|
|||
|
9
KSG-RIB
08.02.13
✎
09:42
|
Ругается на {Документ.ДепонированиеОрганизаций.МодульМенеджера(133)}: Ошибка при вызове метода контекста (Выполнить)
Возврат Запрос.Выполнить().Выгрузить(); по причине: {(7, 2)}: Неверные параметры "ДепонируемыеСуммы" <<?>>&ДепонируемыеСуммы КАК ДепонируемыеСуммы Прична в том что при запуске из внешней обработки в ДепонируемыеСуммы почему-то попадает табл док,а должна табл значений . |
|||
|
10
Wobland
08.02.13
✎
09:43
|
(9) и что?
|
|||
|
11
salvator
08.02.13
✎
09:43
|
(9) Ну так сделай из нее ТЗ. В чем проблема?
|
|||
|
12
KSG-RIB
08.02.13
✎
09:46
|
Спасибо за советы.
|
|||
|
13
GANR
08.02.13
✎
10:09
|
Почему такое вообще должно работать???
#Если Клиент Тогда Функция ДепонируемыеСуммыДляПечати() Запрос = Новый Запрос; Запросы выполняются на СЕРВЕРЕ. |
|||
|
14
Wobland
08.02.13
✎
10:11
|
(13) с клиента запускается Новый Запрос. ничего особенного
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |