Всем доброе время суток.
Есть задача,сделать макет печатной формы с помощью внешней обработки для ЗУП 3.1
Но небольшая сложность. Обычно макет делал именно для какого-то документа ( Брал запросом все данные, помещал ссылку в (&МассивОбъектов) и после ЗаполнитьЗначенияСвойств. ).
В этом случае необходимо предусмотреть возможность печати макета из выбранного пользователем документа(ссылкой не обойтись)
Необходимо печатать справку о зарплате сотрудника за последние три месяца. Пришёл к тому, что лучше брать данные запросом из регистра сведении "КадроваяИсторияСотрудников". Но вылазит ошибка Печатная форма недоступна
К сожалению ничего не работает, подскажите как надо делать правильно в моём случае?!
Есть задача,сделать макет печатной формы с помощью внешней обработки для ЗУП 3.1
Но небольшая сложность. Обычно макет делал именно для какого-то документа ( Брал запросом все данные, помещал ссылку в (&МассивОбъектов) и после ЗаполнитьЗначенияСвойств. ).
В этом случае необходимо предусмотреть возможность печати макета из выбранного пользователем документа(ссылкой не обойтись)
Необходимо печатать справку о зарплате сотрудника за последние три месяца. Пришёл к тому, что лучше брать данные запросом из регистра сведении "КадроваяИсторияСотрудников". Но вылазит ошибка Печатная форма недоступна
К сожалению ничего не работает, подскажите как надо делать правильно в моём случае?!
Функция ПечатьВнешнейПечатнойФормы(МассивОбъектов, ОбъектыПечати, Подписант) Экспорт
ТабДок = новый ТабличныйДокумент;
Макет = ПолучитьМакет("ПФ_MXL_Т51");
ОбластьШапки = Макет.ПолучитьОбласть("ШапкаДокумента");
Запрос = Новый Запрос;
запрос.Текст = "ВЫБРАТЬ
| КадроваяИсторияСотрудниковСрезПоследних.ГоловнаяОрганизация.НаименованиеПолное КАК Организация,
| КадроваяИсторияСотрудниковСрезПоследних.Период КАК Дата
|ИЗ
| РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(, Сотрудник В (&МассивОбъектов)) КАК КадроваяИсторияСотрудниковСрезПоследних";
Запрос.УстановитьПараметр("МассивОбъектов",МассивОбъектов);
ОбщаяВыборка = Запрос.Выполнить().Выбрать();
Пока ОбщаяВыборка .Следующий() Цикл
ОбластьШапки.Параметры.Организация = ОбщаяВыборка .Организация;
ОбластьШапки.Параметры.Дата = ОбщаяВыборка .Дата;
ТабДок.Вывести(ОбластьШапки);
КонецЦикла;
Возврат ТабДок;
КонецФункции
ПоказатьПо теме из базы знаний
- Т-1, Т-5, Т-6, Т-8. Т-60 (кадр), Т-61 (кадр) Печатные формы для ЗУП (3.1.1)
- Внешние печатные формы для Зарплата и Управление персоналом 3.1. ЗУП и ЗиКГУ
- Универсальная печатная форма для ЗУП, ред.3.1 с использованием пользовательских макетов в формате Word, mxl из справочника Файлы
- Доход в натуральной форме. ЗУП 3.1
- Модуль электронной подписи печатных форм. ЗУП 3.1
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
К сожалению ничего не работает
А как оно может работать, если после выполнения запроса:
ОбщаяВыборка = Запрос.Выполнить().Выгрузить();
как возможно реализовать лучше и проще ?!
А что именно "реализовать"-то? То ли табличный документ (который автор почему-то называет "макетом") Т-51 программно слепить, то ли справку напечатать?
И чем "выбранный пользователем документ" отличается от "какого-то документа"?
Поскольку лично мне (посмотрим, только ли мне) это совершенно непонятно, то могу предложить разве что скачать готовую справку, например:
(2) Моя ошибка,не успел исправить.
Разумеется будет :
Как мне сделать,так чтобы &МассивОбъектов был помещён в ссылку всех документов и корректно ли,то что я помещаю Сотрудника в этот параметр?!
И справка не такая простая,там будет табличная часть с зарплатами,удержаниями и прочим.
Разумеется будет :
ОбщаяВыборка = Запрос.Выполнить().Выбрать();
Пока ОбщаяВыборка .Следующий() Цикл
....
КонецЦикла
Как мне сделать,так чтобы &МассивОбъектов был помещён в ссылку всех документов и корректно ли,то что я помещаю Сотрудника в этот параметр?!
И справка не такая простая,там будет табличная часть с зарплатами,удержаниями и прочим.
(3)
Это предложение три раза перечитал, так и не понял про что оно.
Зачем параметр МассивОбъектов помещать в ссылку документов и как можно что-то поместить в ссылку, если это уникальный номер, не доступный пользователю никак для редактирования?
Хотите получить организацию и период для списка сотрудников из регистра "КадроваяИсторияСотрудников"?
А для чего? Сколько раз планируется выводить шапку? Столько, сколько сотрудников?
Макет где находится? В макетах обработки или в общих макетах?
Если в общих, то "ПолучитьОбщийМакет"., либо скопировать его в обработку.
Как мне сделать,так чтобы &МассивОбъектов был помещён в ссылку всех документов и корректно ли,то что я помещаю Сотрудника в этот параметр?!
Это предложение три раза перечитал, так и не понял про что оно.
Зачем параметр МассивОбъектов помещать в ссылку документов и как можно что-то поместить в ссылку, если это уникальный номер, не доступный пользователю никак для редактирования?
Хотите получить организацию и период для списка сотрудников из регистра "КадроваяИсторияСотрудников"?
А для чего? Сколько раз планируется выводить шапку? Столько, сколько сотрудников?
Печатная форма недоступна
Макет где находится? В макетах обработки или в общих макетах?
Если в общих, то "ПолучитьОбщийМакет"., либо скопировать его в обработку.
(4) Ну может я не так выразился, но если мне надо печатать макет из определенного документа,то я делаю так:
Но в моём случае подразумевается, что пользователь в настройках сам выбирает какой-ему документ или справочник надо. И на основании этого печатается мой макет.
Я хочу получить шапку Организацию,Дата(ТекущаяДата),вид документа(паспорт,серия номер),какого числа был принят сотрудник и в таком духе. То есть пользователь выбрал какого-то сотрудника и уже исходя из этого берутся данные. С ЗУПом работал мало,поэтому не представляю как сделать лучше,тем более для многих объектов.
Так же нужна табличная часть о зарплатах.
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Запрос.Текст = "ВЫБРАТЬ
| ПоступлениеТоваровУслуг.Ссылка КАК Ссылка,
| ПоступлениеТоваровУслуг.Номер КАК Номер,
| ПоступлениеТоваровУслуг.Дата КАК Дата,
| ПоступлениеТоваровУслуг.Организация КАК Организация,
| ПоступлениеТоваровУслуг.Склад КАК Склад,
| ПоступлениеТоваровУслуг.Расш1_СопроводительныйДокумент КАК СопроводительныйДокумент,
| ПоступлениеТоваровУслуг.Расш1_УдостоверениеОКачествеНомер КАК УдостоверениеОКачествеНомер,
| ПоступлениеТоваровУслуг.Расш1_Станция КАК Станция,
| ПоступлениеТоваровУслуг.Расш1_ТранспортныйДокументНомер КАК ТранспортныйДокументНомер,
| ПоступлениеТоваровУслуг.Расш1_ТранспортныйДокументДата КАК ТранспортныйДокументДата,
| ПоступлениеТоваровУслуг.Расш1_ТранспортныйДокументВагоны КАК ТранспортныйДокументВагоны,
| ПоступлениеТоваровУслуг.Грузоотправитель КАК Грузоотправитель,
| ПоступлениеТоваровУслуг.Организация.КодПоОКПО КАК ОрганизацияКодПоОКПО,
| ПоступлениеТоваровУслуг.ДоговорКонтрагента КАК ДоговорКонтрагента,
| ПоступлениеТоваровУслуг.ДоговорКонтрагента.Номер КАК ДоговорКонтрагентаНомер,
| ПоступлениеТоваровУслуг.ДоговорКонтрагента.Дата КАК ДоговорКонтрагентаДата,
| ПоступлениеТоваровУслуг.ДатаИНомерТелефонограммыОтправителя КАК ДатаИНомерТелефонограммыОтправителя
|ИЗ
| Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
|ГДЕ
| ПоступлениеТоваровУслуг.Ссылка В(&МассивОбъектов)
|
|УПОРЯДОЧИТЬ ПО
| Дата,
| Ссылка";
Шапка = Запрос.Выполнить().Выбрать();
Пока Шапка.Следующий() Цикл
...
КонецЦикла
ПоказатьНо в моём случае подразумевается, что пользователь в настройках сам выбирает какой-ему документ или справочник надо. И на основании этого печатается мой макет.
Хотите получить организацию и период для списка сотрудников из регистра "КадроваяИсторияСотрудников"?
А для чего? Сколько раз планируется выводить шапку? Столько, сколько сотрудников?
А для чего? Сколько раз планируется выводить шапку? Столько, сколько сотрудников?
Я хочу получить шапку Организацию,Дата(ТекущаяДата),вид документа(паспорт,серия номер),какого числа был принят сотрудник и в таком духе. То есть пользователь выбрал какого-то сотрудника и уже исходя из этого берутся данные. С ЗУПом работал мало,поэтому не представляю как сделать лучше,тем более для многих объектов.
Так же нужна табличная часть о зарплатах.
(7) Как мне представляется, брать информацию всегда одинаково, это просто, сложность как раз в том, чтобы получить конкретную информацию.
Вы зачем-то в цикле считываете организацию и дату.
Вообще зачем их считывать?
Обычно это как раз параметры, задаваемые пользователем в шапке отчета.
Отчет нужно на определенную дату (или период) и для определенной организации (которых в базе может быть несколько).
Пользователь выбирает организацию, дату и нажимает кнопку "Сформировать".
Зачем их тащить из регистров?
Бывает необходимость для нескольких организаций, но тогда пользователь, опять-таки, задает список для каких ему нужно, поскольку любой учет ведется в разрезе организаций.
Вы зачем-то в цикле считываете организацию и дату.
Вообще зачем их считывать?
Обычно это как раз параметры, задаваемые пользователем в шапке отчета.
Отчет нужно на определенную дату (или период) и для определенной организации (которых в базе может быть несколько).
Пользователь выбирает организацию, дату и нажимает кнопку "Сформировать".
Зачем их тащить из регистров?
Бывает необходимость для нескольких организаций, но тогда пользователь, опять-таки, задает список для каких ему нужно, поскольку любой учет ведется в разрезе организаций.
(14) Не суть важно. Все равно на выходе отчет по данным из базы.
Из базы вытаскивается нужная информация и нужным образом представляется пользователю.
По названию объектов конфигурации - разные, а по сути на выходе отчет, что запросы собрали.
Так проще представлять, что нужно сделать.
Из базы вытаскивается нужная информация и нужным образом представляется пользователю.
По названию объектов конфигурации - разные, а по сути на выходе отчет, что запросы собрали.
Так проще представлять, что нужно сделать.
(5)
Вообще-то есть разница между
и
В последнем случае без разницы из какого документа(ов) сформирован список сотрудников.
Будет столько шапок, сколько в передаваемом массиве сотрудников.
На мой взгляд, лучше когда меньше объектов и наоборот. Хотя все зависит от задачи.
Слишком универсальный вариант обычно тяжел в использовании. Требует массы уточнений и для пользователя может стать проблемой. Потому как нужно знать внутренности.
Но в моём случае подразумевается, что пользователь в настройках сам выбирает какой-ему документ или справочник надо.
Вообще-то есть разница между
ПоступлениеТоваровУслуг.Ссылка В(&МассивОбъектов)
и
РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(, Сотрудник В (&МассивОбъектов)
В последнем случае без разницы из какого документа(ов) сформирован список сотрудников.
Я хочу получить шапку Организацию,Дата
Будет столько шапок, сколько в передаваемом массиве сотрудников.
Пока ОбщаяВыборка .Следующий() Цикл
ОбластьШапки.Параметры.Организация = ОбщаяВыборка .Организация;
ОбластьШапки.Параметры.Дата = ОбщаяВыборка .Дата;
ТабДок.Вывести(ОбластьШапки);
КонецЦикла;
как сделать лучше,тем более для многих объектов.
На мой взгляд, лучше когда меньше объектов и наоборот. Хотя все зависит от задачи.
Слишком универсальный вариант обычно тяжел в использовании. Требует массы уточнений и для пользователя может стать проблемой. Потому как нужно знать внутренности.
(11) Думаю, клиенту все равно из какого документа. Ему главное показать кнопку, после нажатия на которую появится нужный отчет.
Из регистра выберутся записи для сотрудников, перечисленных в передаваемом массиве.
Если нужно именно это, то вариант верен.
Неплохо бы знать перед началом выполнения запроса для какой организации запрос. Добавить на форму реквизит "Организация". Если подключается внешняя форма, то из документа, там обязательно в гапке должен быть такой реквизит. И указать как параметр запроса.
Мой вариант с Сотрудник в (&мамствобьектов) верен значит ?
Из регистра выберутся записи для сотрудников, перечисленных в передаваемом массиве.
Если нужно именно это, то вариант верен.
Как добавить головную организацию тогда без цикла ?
Неплохо бы знать перед началом выполнения запроса для какой организации запрос. Добавить на форму реквизит "Организация". Если подключается внешняя форма, то из документа, там обязательно в гапке должен быть такой реквизит. И указать как параметр запроса.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот