|
Вопрос по ВнешнейПечатнойФорме | ☑ | ||
---|---|---|---|---|
0
Klubni4ka
21.06.21
✎
19:40
|
Мне для печати нужны другие данные, которые не находятся на документе который я указала в СведенияОВнешнейОбработке. В печатной форме есть параметры которых нет на документе, как обратится к другим Документам/Справочникам/Регистру сведений для взятия этих параметров? Пишу сюда тк во всех видео "Как создать ВПЧ" указывают ТАБЛИЧНУЮЧАСТЬ, а мне другое нужно.
|
|||
1
ДенисЧ
21.06.21
✎
20:10
|
"о всех видео "Как создать ВПЧ" указывают ТАБЛИЧНУЮЧАСТЬ"
Чоооо? Во всех печатных формах указывают ссылку на документ. Внутри модуля у неё (формы) не неонка, а обычная процедура. В которой можно (внезапно!) написать запрос, который будет брать любые данные из БД (на которые права есть, разумеется...) |
|||
2
Klubni4ka
22.06.21
✎
04:09
|
(1) Получаем область, делаем запрос, и заполняем область из полученного запроса, правильно?
|
|||
3
JeHer
22.06.21
✎
06:02
|
(2) типа того, но лучше сначала получить данные, а потом выводить на печать. Вдруг запрос вернет пустой результат? И тогда печатать нечего будет.
|
|||
4
Klubni4ka
22.06.21
✎
07:24
|
При добавлении ВПЧ пишет "Индекс находится за границами массива", в чём может быть ошибка?
|
|||
5
ДенисЧ
22.06.21
✎
07:25
|
(4) Кто где куда пишет? В какой момент?
Если оно пишет, то указывает номер строки и модуль, где ошибка |
|||
6
Klubni4ka
22.06.21
✎
07:28
|
Кнопки Подробно нет
|
|||
7
ДенисЧ
22.06.21
✎
07:32
|
А ссылка "сформировать отчёт об ошибке"?
А вообше - запусти из конфигуратора - кнопка будет |
|||
8
Klubni4ka
22.06.21
✎
07:34
|
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура; МассивНазначений = Новый Массив; МассивНазначений.Добавить("ПриказОДвиженииКонтингента"); //Указываем документ к которому делаем внешнюю печ. форму ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов... ПараметрыРегистрации.Вставить("Назначение", МассивНазначений); ПараметрыРегистрации.Вставить("Наименование", "ВПЧ Отчисление"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ); ПараметрыРегистрации.Вставить("Версия", "1.0"); ПараметрыРегистрации.Вставить("Информация", "ВнешняяПечатнаяФарма для печати Сведения о гражданине, подлежащем учету и отчисления"); ТаблицаКоманд = ПолучитьТаблицуКоманд(); ДобавитьКоманду(ТаблицаКоманд, "Отчисление внешний", "ОтчислениеВнешний", "ВызовСерверногоМетода", Истина, "ПечатьMXL"); ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); Возврат ПараметрыРегистрации; КонецФункции Функция ПолучитьТаблицуКоманд() Команды = Новый ТаблицаЗначений; Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")); Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")); Возврат Команды; КонецФункции Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "") НоваяКоманда = ТаблицаКоманд.Добавить(); НоваяКоманда.Представление = Представление; НоваяКоманда.Идентификатор = Идентификатор; НоваяКоманда.Использование = Использование; НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; НоваяКоманда.Модификатор = Модификатор; КонецПроцедуры Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( КоллекцияПечатныхФорм, "ОтчислениеВнешний", "Отчисление внешний", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати)); КонецПроцедуры Функция СформироватьПечатнуюФорму(СсылкаНаОбъект,ОбъектПечати) ТабДок = Новый ТабличныйДокумент; МакетОбработки = ПолучитьМакет("МакетПечати"); ОбластьОснова = МакетОбработки.ПолучитьОбласть ("Основа"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ФизическиеЛица.Наименование КАК ИмяГражданина, | ФизическиеЛица.ДатаРождения КАК ДатаРождения, | ВоинскийУчет.ВУС КАК НомерВУС, | ПриказОДвиженииКонтингента.СписокСтудентов.( | НомерПриказаОЗачислении КАК НомерПриказаОЗачислении, | ДатаПриказаОЗачислении КАК ДатаПриказаОЗачислении | ) КАК СписокСтудентов |ИЗ | РегистрСведений.ВоинскийУчет КАК ВоинскийУчет | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица | ПО ВоинскийУчет.Физлицо = ФизическиеЛица.Ссылка, | Документ.ПриказОДвиженииКонтингента КАК ПриказОДвиженииКонтингента"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбластьОснова.Параметры.ИмяГражданина = ВыборкаДетальныеЗаписи.ИмяГражданина; ОбластьОснова.Параметры.ГодРождения = ВыборкаДетальныеЗаписи.ДатаРождения; ОбластьОснова.Параметры.НомерВУС = ВыборкаДетальныеЗаписи.НомерВУС; //ОбластьОснова.Параметры. ВыборкаДетальныеЗаписи ОбластьОснова.Параметры.НомерПриказа = ВыборкаДетальныеЗаписи.НомерПриказаОЗачислении; ОбластьОснова.Параметры.ДатаПриказа = ВыборкаДетальныеЗаписи.ДатаПриказаОЗачислении; КонецЦикла; КонецФункции подскажите пожалуйста в чём может быть ошибка? |
|||
9
Mikeware
22.06.21
✎
07:39
|
МассивНазначений.Добавить("Документ.ПриказОДвиженииКонтингента")
|
|||
10
Mikeware
22.06.21
✎
07:42
|
вот поможем сейчас - они возьмут и отчислят студентов, а они в армию пойдут... а не поможем - не отчислят...
|
|||
11
ДенисЧ
22.06.21
✎
07:43
|
(10) И что, армия без солдат останется? ((
|
|||
12
Mikeware
22.06.21
✎
07:44
|
(11) студней жалко...
|
|||
13
Klubni4ka
22.06.21
✎
08:05
|
Спасибо, ошибки нет. Но почему-то выводится пустая форма(
|
|||
14
ДенисЧ
22.06.21
✎
08:07
|
(13) Обычно люди из функции возвращают какое-нибудь значение...
Но то люди... Да ещё обычные... |
|||
15
Klubni4ka
22.06.21
✎
08:13
|
(14) Вставила, по этому и пишу что пустой ТабДок...
|
|||
16
ДенисЧ
22.06.21
✎
08:20
|
(15)
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Если ВыборкаДетальныеЗаписи.Количество() = 0 Тогда сообщить("А ничего и нет..."); и перед КонецЦикла добавить ТабДок.Вывести(ОбластьОснова); ЗЫ. И почитай хоть немного книжек, хотя бы Митичкина... |
|||
17
Klubni4ka
22.06.21
✎
08:36
|
(16) После добавления ошибка при попытке использования в Предприятии - "Несоответвие типов (параметр номер1"
|
|||
18
ДенисЧ
22.06.21
✎
08:38
|
Дистанционная пошаговая отладка - лучшее средство для написания конфигураций 1с!
Может, ты всё-таки последуешь совету и почитаешь книжки? Ну, после того, как мужу борщ сваришь и детям пелёнки постираешь? |
|||
19
Klubni4ka
22.06.21
✎
08:45
|
(18) Пф, твой сарказм и плоские шутки тебя не красят. ПС- и делаю эту ВПЧ для себя.
|
|||
20
Mikeware
22.06.21
✎
08:56
|
(18) а если она борщ так же варит? "у меня вода закипела, что кидать? а нож в какой руке держать, когда капусту режешь? а свекла, она как картошка, только красная, да?"
|
|||
21
Михаил Козлов
22.06.21
✎
09:55
|
Эх, молодежь: поставили бы фото в профиль, и диалог бы по-другому пошел.
|
|||
22
Mikeware
22.06.21
✎
10:04
|
(21) ...голосистое фото...
|
|||
23
Dark_Warrior
22.06.21
✎
10:18
|
(19) Помимо сарказма в сообщении ответ. К сожалению, поможет Вам только отладка, которая делается непосредственно в среде разработки. Удаленно помочь советом в данной ситуации сложно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |