Проблемы при изменении внешней печатной формы, Нужно вытащить значения из запроса и вставить в нужное место.
Функция СформироватьВыполнитьВыбратьЗапросВи()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Организации.Ссылка,
| Организации.ПометкаУдаления,
| Организации.Предопределенный,
| Организации.Код,
| Организации.Наименование,
| Организации.ВидСтавокЕСНиПФР,
| Организации.ГоловнаяОрганизация,
| Организации.ДатаРегистрации,
| Организации.ИНН,
| Организации.ИностраннаяОрганизация,
| Организации.КодВСтранеРегистрации,
| Организации.КодИМНС,
| Организации.КодОКВЭД,
| Организации.КодОКОНХ,
| Организации.КодОКОПФ,
| Организации.КодОКФС,
| Организации.КодПоОКАТО,
| Организации.КодПоОКПО,
| Организации.КПП,
| Организации.НаименованиеИМНС,
| Организации.НаименованиеИнострОрганизации,
| Организации.НаименованиеОКВЭД,
| Организации.НаименованиеОКОПФ,
| Организации.НаименованиеОКФС,
| Организации.НаименованиеПлательщикаПриПеречисленииНалогов,
| Организации.НаименованиеПолное,
| Организации.ОбменЗадействован,
| Организации.ОбменКаталогОтправкиДанныхОтчетности,
| Организации.ОбменКаталогПрограммыЭлектроннойПочты,
| Организации.ОбменКодАбонента,
| Организации.ОГРН,
| Организации.ОсновнойБанковскийСчет,
| Организации.Префикс,
| Организации.РайонныйКоэффициент,
| Организации.РайонныйКоэффициентРФ,
| Организации.РегистрационныйНомерПФР,
| Организации.РегистрационныйНомерФСС,
| Организации.СвидетельствоДатаВыдачи,
| Организации.СвидетельствоКодОргана,
| Организации.СвидетельствоНаименованиеОргана,
| Организации.СвидетельствоСерияНомер,
| Организации.СтранаПостоянногоМестонахождения,
| Организации.СтранаРегистрации,
| Организации.ТерриториальныеУсловияПФР,
| Организации.ЮрФизЛицо,
| Организации.ИндивидуальныйПредприниматель,
| Организации.ОтражатьВРегламентированномУчете,
| Организации.сшСчетДтШапки,
| Организации.сшСоздаватьНовыйДоговорПриДобавленииНовогоКонтрагента,
| Организации.сшСписаниеУпрПартииПоОрганизации,
| Организации.сшЗапретРеализации,
| Организации.КодИФНСПолучателя,
| Организации.НаименованиеТерриториальногоОрганаПФР
|ИЗ
| Справочник.Организации КАК Организации";
Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ДанныеДляПечати = Новый Структура();
ДанныеДляПечати.Вставить("НаименованиеПлательщикаПриПеречисленииНалогов", Шапка.ПредставлениеПоставщика);
//ДанныеДляПечати.Вставить("Наименование", Шапка.ПредставлениеПоставщика);
ДанныеДляПечати.Вставить("ПредставлениеПоставщика", ДанныеДляПечати);
Возврат Запрос.Выполнить().Выбрать();
КонецФункции
/////// и в печати пмшет что Поле объекта не обнаружено (ППоставщика)
//Шапка=СформироватьВыполнитьВыбратьЗапросВи();
ОбластьМакета.Параметры.ПредставлениеПоставщика = "Продавец: " + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,") +
" (" + ДанныеДляПечати.ППоставщика + ")";
Извините за малую компетентность, я начинающий. Очень буду благодарен любой помощи или подсказке
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Организации.Ссылка,
| Организации.ПометкаУдаления,
| Организации.Предопределенный,
| Организации.Код,
| Организации.Наименование,
| Организации.ВидСтавокЕСНиПФР,
| Организации.ГоловнаяОрганизация,
| Организации.ДатаРегистрации,
| Организации.ИНН,
| Организации.ИностраннаяОрганизация,
| Организации.КодВСтранеРегистрации,
| Организации.КодИМНС,
| Организации.КодОКВЭД,
| Организации.КодОКОНХ,
| Организации.КодОКОПФ,
| Организации.КодОКФС,
| Организации.КодПоОКАТО,
| Организации.КодПоОКПО,
| Организации.КПП,
| Организации.НаименованиеИМНС,
| Организации.НаименованиеИнострОрганизации,
| Организации.НаименованиеОКВЭД,
| Организации.НаименованиеОКОПФ,
| Организации.НаименованиеОКФС,
| Организации.НаименованиеПлательщикаПриПеречисленииНалогов,
| Организации.НаименованиеПолное,
| Организации.ОбменЗадействован,
| Организации.ОбменКаталогОтправкиДанныхОтчетности,
| Организации.ОбменКаталогПрограммыЭлектроннойПочты,
| Организации.ОбменКодАбонента,
| Организации.ОГРН,
| Организации.ОсновнойБанковскийСчет,
| Организации.Префикс,
| Организации.РайонныйКоэффициент,
| Организации.РайонныйКоэффициентРФ,
| Организации.РегистрационныйНомерПФР,
| Организации.РегистрационныйНомерФСС,
| Организации.СвидетельствоДатаВыдачи,
| Организации.СвидетельствоКодОргана,
| Организации.СвидетельствоНаименованиеОргана,
| Организации.СвидетельствоСерияНомер,
| Организации.СтранаПостоянногоМестонахождения,
| Организации.СтранаРегистрации,
| Организации.ТерриториальныеУсловияПФР,
| Организации.ЮрФизЛицо,
| Организации.ИндивидуальныйПредприниматель,
| Организации.ОтражатьВРегламентированномУчете,
| Организации.сшСчетДтШапки,
| Организации.сшСоздаватьНовыйДоговорПриДобавленииНовогоКонтрагента,
| Организации.сшСписаниеУпрПартииПоОрганизации,
| Организации.сшЗапретРеализации,
| Организации.КодИФНСПолучателя,
| Организации.НаименованиеТерриториальногоОрганаПФР
|ИЗ
| Справочник.Организации КАК Организации";
Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ДанныеДляПечати = Новый Структура();
ДанныеДляПечати.Вставить("НаименованиеПлательщикаПриПеречисленииНалогов", Шапка.ПредставлениеПоставщика);
//ДанныеДляПечати.Вставить("Наименование", Шапка.ПредставлениеПоставщика);
ДанныеДляПечати.Вставить("ПредставлениеПоставщика", ДанныеДляПечати);
Возврат Запрос.Выполнить().Выбрать();
КонецФункции
/////// и в печати пмшет что Поле объекта не обнаружено (ППоставщика)
//Шапка=СформироватьВыполнитьВыбратьЗапросВи();
ОбластьМакета.Параметры.ПредставлениеПоставщика = "Продавец: " + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,") +
" (" + ДанныеДляПечати.ППоставщика + ")";
Извините за малую компетентность, я начинающий. Очень буду благодарен любой помощи или подсказке
Прикрепленные файлы:
Копия sf451.epf
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) ППоставщика предполагался как ключ структуры ДанныеДляПечати, но там такого ключа нет, а есть ПредставлениеПоставщика, так что вам нужно заменить ДанныеДляПечати.ППоставщика ДанныеДляПечати.ПредставлениеПоставщика.
(3) Такая ошибка бывает обычно при употреблении функции "сообщить", типа Сообщить(56+"ааа"), и компилятор понимает это как не сложение подстрок, а как сложение чисел.
Пользуйтесь отладчиком, поможет, будете сразу видеть на какой строке ошибка. Печатные формы тестируются с помощьюhttp://infostart.ru/public/16952/
(3) Такая ошибка бывает обычно при употреблении функции "сообщить", типа Сообщить(56+"ааа"), и компилятор понимает это как не сложение подстрок, а как сложение чисел.
Пользуйтесь отладчиком, поможет, будете сразу видеть на какой строке ошибка. Печатные формы тестируются с помощью
в ней их много((( Сейчас доработал, теперь вылезает что тип не тот!!1 :evil:
Не удалось сформировать внешнюю печатную форму!
Преобразование значения к типу Число не может быть выполнено
///Вообще не понимаю откуда там число взялось((((
Не удалось сформировать внешнюю печатную форму!
Преобразование значения к типу Число не может быть выполнено
///Вообще не понимаю откуда там число взялось((((
Прикрепленные файлы:
Копия sf451.epf
Viktor8 пишет:
Преобразование значения к типу Число не может быть выполнено
///Вообще не понимаю откуда там число взялось((((
Преобразование значения к типу Число не может быть выполнено
///Вообще не понимаю откуда там число взялось((((
Убери один из двух плюсов в строках 1931 и 1932. Будет другая ошибка (Преобразование значения к типу Строка не может быть выполнено).
Спасибо, Poppy, благодаря тебе засек ошибку)) я фикси, организация на упрощенке, вот счет-фактур новых и нет, тестировал на старой и подпадал под условие "Если СсылкаНаОбъект.Дата < '20010609' Тогда"))
Да ошибка не в плюсах, я случайно тож иногда 2 ставил, компилялор это сечет, проблема в 3 значении.
ОбластьМакета.Параметры.ПредставлениеПоставщика = "Продавец: " + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,") + + СформироватьВыполнитьВыбратьЗапросВи();
3 - это функция, и она возвращает Возврат Запрос.Выполнить().Выбрать(); результат запроса, вот компилятор и не может привести к определенному, сначала пытался к числу, теперь к строке.
Виктор, правильно будет:
ОбластьМакета.Параметры.ПредставлениеПоставщика = "Продавец: " + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "НаименованиеПлательщикаПриПеречисленииНалогов") ;
и никакой запрос тут и не нужен, а смотря на ваш понимаешь, что вы еще очень слабо представляете, что это. раз вы новичок, то почитайте книгу радченко "практическое пособие разработчика 8.1". Вопросов у вас будет много и на каждый на форумах вам отвечать не будут.
Да ошибка не в плюсах, я случайно тож иногда 2 ставил, компилялор это сечет, проблема в 3 значении.
ОбластьМакета.Параметры.ПредставлениеПоставщика = "Продавец: " + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,") + + СформироватьВыполнитьВыбратьЗапросВи();
3 - это функция, и она возвращает Возврат Запрос.Выполнить().Выбрать(); результат запроса, вот компилятор и не может привести к определенному, сначала пытался к числу, теперь к строке.
Виктор, правильно будет:
ОбластьМакета.Параметры.ПредставлениеПоставщика = "Продавец: " + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "НаименованиеПлательщикаПриПеречисленииНалогов") ;
и никакой запрос тут и не нужен, а смотря на ваш понимаешь, что вы еще очень слабо представляете, что это. раз вы новичок, то почитайте книгу радченко "практическое пособие разработчика 8.1". Вопросов у вас будет много и на каждый на форумах вам отвечать не будут.
(6)
Правильнее сказать - не только в плюсах.
Компилятор это сечет только когда справа от двух плюсов будет число или строка, которую можно преобразовать к числу.
Сравни:
Сообщить("Строка " ++ " строка");
Сообщить("Строка " ++ " 25");
В первом случае ты получишь ошибку, но не во-втором.
Стас Турчинский пишет:
Да ошибка не в плюсах, я случайно тож иногда 2 ставил, компилялор это сечет, проблема в 3 значении.
Да ошибка не в плюсах, я случайно тож иногда 2 ставил, компилялор это сечет, проблема в 3 значении.
Правильнее сказать - не только в плюсах.
Компилятор это сечет только когда справа от двух плюсов будет число или строка, которую можно преобразовать к числу.
Сравни:
Сообщить("Строка " ++ " строка");
Сообщить("Строка " ++ " 25");
В первом случае ты получишь ошибку, но не во-втором.
я могу вывести два поля по отдельным параметрам
ОбластьМакета.Параметры.ПредставлениеПоставщика = "Продавец: " + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,") ;
Шапка = ЗапросМой();
Шапка.Следующий();
//ТабДокумент=Новый ТабличныйДокумент;
//Макет=ПолучитьМакет("СчетФактура451");
//ОбластьМакета=Макет.ПолучитьОбласть("Шапка");
ОбластьМакета.Параметры.ПП= "("+Шапка.НаименованиеПлательщикаПриПеречисленииНалогов+")";
а как это сделать в одном параметре ПредставлениеПоставщика ---- мне в нём нужна инфа "ПолноеНаименование," + НаименованиеПлательщикаПриПеречисленииНалогов
ОбластьМакета.Параметры.ПредставлениеПоставщика = "Продавец: " + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,") ;
Шапка = ЗапросМой();
Шапка.Следующий();
//ТабДокумент=Новый ТабличныйДокумент;
//Макет=ПолучитьМакет("СчетФактура451");
//ОбластьМакета=Макет.ПолучитьОбласть("Шапка");
ОбластьМакета.Параметры.ПП= "("+Шапка.НаименованиеПлательщикаПриПеречисленииНалогов+")";
а как это сделать в одном параметре ПредставлениеПоставщика ---- мне в нём нужна инфа "ПолноеНаименование," + НаименованиеПлательщикаПриПеречисленииНалогов
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот