|
ЗУП 3.1 Формирование Т-6 из обработки | ☑ | ||
---|---|---|---|---|
0
spiller26
20.12.24
✎
13:28
|
Пытаюсь сформировать данные из Отчета "ПечатнаяФормаТ6" для дальнейшей обработки, но данные приходят пустые. Помогите разобраться что не так.
ВнешнийНаборДанных = Отчеты.ПечатнаяФормаТ6.ВнешниеНаборыДанных(); РезультатКомпоновкиМакета = Новый Структура; ДокументРезультат = Новый ТабличныйДокумент; СхемаКомпоновкиДанных = Отчеты.ПечатнаяФормаТ6.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; ПарамОтчета = Настройки.ПараметрыДанных; //-> //СхемаКомпоновкиДанных.Параметры.СсылкиНаОбъекты.Значение = СсылкаНаНашДокумент; ПарамОтчета.Элементы[4].Значение = СсылкаНаНашДокумент; //<- // КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); //КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; Результат = Новый ДеревоЗначений; ПроцессорВывода.УстановитьОбъект(Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновки); |
|||
1
spiller26
20.12.24
✎
14:56
|
Да блин по ходу никто так не заморачивался.
|
|||
2
Мультук
гуру
20.12.24
✎
15:09
|
(0)
1) Я вот не пойму, что сложного посмотреть в - ПриКомпоновкеРезультата И сказать "ого! вон оно что Степаныч!" 2) Где вызов ИнициализироватьОтчет() ? Про "Представление_" в курсе ? Крутой запрос, правда? ВЫБРАТЬ ДАТАВРЕМЯ(1, 1, 1) КАК Период, ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК Сотрудник, ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка) КАК ФизическоеЛицо, ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.ПустаяСсылка) КАК ВидСобытия, ИСТИНА КАК ЭтоГоловнойСотрудник ПОМЕСТИТЬ Представления_СрезПоследних_КадроваяИсторияСотрудников ИЗ ВТСотрудникиБольничныхЛистов КАК ВТБольничныеЛисты ; 3) Говнокод ? или "и так сойдёт" ПарамОтчета.Элементы[4].Значение = СсылкаНаНашДокумент; |
|||
3
Гена
гуру
20.12.24
✎
15:17
|
А какую задачу поставил шеф или заказчик? Просто обнаружила проверка, что нет приказов на отпуск и захотели их распечать за два года?
Так есть же групповая (пакетная) печать. |
|||
5
Gucci76
20.12.24
✎
16:01
|
(0) Есть еще регистр сведений Макеты компоновки данных. Там есть Т6.
Может оттуда надо брать все? |
|||
6
spiller26
20.12.24
✎
16:08
|
(3) Вот для таких отпусков, чтобы в макет выводилось не 1 календарный день, а часы.
|
|||
7
spiller26
20.12.24
✎
16:10
|
Вот так на печатной.
Идия моя такова, брать стоковое формирование данных, и заполнять изменённый макет "ПФ_MXL_Т6".
|
|||
8
spiller26
20.12.24
✎
16:12
|
(2) ПарамОтчета.Элементы[4].Значение = СсылкаНаНашДокумент;
это тестовый вариант, потом естественно замениться этот кусок на нормальный. |
|||
9
Гена
гуру
20.12.24
✎
16:20
|
(6) Хорошая задача. Потом поделитесь решением?
|
|||
10
spiller26
20.12.24
✎
16:22
|
(9) сначала нужно реализовать.
|
|||
11
Доминошник
20.12.24
✎
16:24
|
Сбился, думал - что нужна "записка-расчет" для отпуска за свой счет.
|
|||
12
Гена
гуру
20.12.24
✎
16:35
|
(10) Я бы пошёл другим путём. Ведь часы отпуска есть только в одном доке - Отпуск без сохранения оплаты. Ну и к чему лезть в общий макет?
Вот на ИС есть готовая внешняя ПФ для документов отпуска. https://infostart.ru/1c/reports/1013229/ Остаётся только добавить новую ячейку из реквизита ЧасовОтпуска по условию ОтсутствиеВТечениеЧастиСмены = Истина Полчаса работы. |
|||
13
Гена
гуру
20.12.24
✎
16:36
|
А, да - и потом вывести на кнопку Печать в доке. Не знаю, насколько это долго закодить.
|
|||
14
Доминошник
20.12.24
✎
16:54
|
(12) Есть вопрос - печатать ли в днях (в данном случае - в долях дня) - не меняя типовую форму, или в часах - меняя типовую форму. Всюду встречал рекомендацию для таких отпусков при печати указывать долю дня (т.е. 2 часа = 1/12 дня).
И, опять же, дополнять типовую форму строкой с информацией о том, в какие конкретно часы такой отпуск предоставлен. |
|||
15
Гена
гуру
20.12.24
✎
16:58
|
(14) Бюрократ )
И так онанизм струячить отдельный приказ "на два часа к зубному", так ещё и точное время где-то указывать и выводить ))) |
|||
16
spiller26
20.12.24
✎
17:03
|
Мы тут ещё 2-вариант пробуем, через расширение всё сделать по минималкам.
|
|||
17
ИС-2
naïve
23.12.24
✎
07:14
|
(17) самый простой способ - скачать инструменты разработчика как расширение, установить в расширение.
Выполнить ирОбщий.От(КомпоновщикМакета). Таким образом будет видно какой запрос получается на выходе |
|||
18
Serg_1960
23.12.24
✎
08:29
|
Навеяло "Всюду встречал рекомендацию... указывать долю дня"(14):
Если приказ составлен на два часа, а работник отсутствовал на работе, допустим, шесть часов, то уже есть повод для расторжения трудового договора (увольнения)? Т.е. в законодательстве конкретно "счёт идёт" на рабочие часы, а не на какие-то абстрактные "1/12" календарного дня. Так что, имхо, если отпуск в часах, то только часы рабочего времени и ничего иного. |
|||
19
Гена
гуру
23.12.24
✎
08:38
|
(18) тем более, что в хронометраж отсутствия (электронная проходная) может попасть и обед.
Не понимаю, в чём проблема сделать по (12)? Ячейку в приказе Т-6 надо просто добавить, видимую по условию внутрисменного отсутствия. Не трогать стандартную для дней: там будет просто пробиваться 0 дней. Я уж думал, автор дано сделал и сбросил мне на почту ) Эх, не у меня он работает... Я бы ему сказал просто: - Через час сделать и доложить. ) |
|||
20
Гена
гуру
23.12.24
✎
09:02
|
Предлагаю "понедельнишное" соревнование устроить для "пробудки" )
Пусть богатый на стартмани скачает этот внешний отчёт и скинет участникам на почту. В определённое время мы открываем его и струячим. Кто первый сюда выложит - тот и выиграл ) |
|||
21
Garykom
гуру
23.12.24
✎
09:46
|
предоставление отпуска в часах трудовым законодательством не предусмотрено
https://www.garant.ru/news/786668/ Имхо, очень спорное решение — предоставлять отпуск за свой счет не полными рабочими днями, а частично в часах. |
|||
22
Garykom
гуру
23.12.24
✎
09:21
|
(21)+ Лично мне кажется лучше накапливать эти часы отгулов а затем полный день отпуска
Либо по предоплате, пусть берет полный день сразу, а затем гуляет в его счет часы Ну или "полный день отпуска и выход на работу во время отпуска" |
|||
23
Гена
гуру
23.12.24
✎
09:29
|
(22) Какие отгулы?!
Речь идёт о разрешённом отсутствии на пару часов. В табеле 6 Я, оставшиеся 2 надо как-то обозначить, например ДО (за свой счёт). У автора решили в приказном порядке делать для бюрократии. Имеют право. Вот надо в печатной форме приказа и добавить эти 2 часа. |
|||
24
Garykom
гуру
23.12.24
✎
09:35
|
(23) вот и предлагаю не страдать фигней и решать проблему административно
пусть пишет заявление на полный день отпуска за свой счет гуляет 2 часа а 6 часов работает (во время отпуска да) эти 6 часов работы не оформлять, разрешить еще отгулять после без оформления |
|||
25
Гена
гуру
23.12.24
✎
09:38
|
(24) Не усложняйте. Это во-первых. А во-вторых, раз фирма забюрокрачена, то не пойдёт она на "без оформления".
С таким же успехом могли и не оформлять эти 2 часа отсутствия. |
|||
26
Garykom
гуру
23.12.24
✎
09:41
|
(25) https://its.1c.ru/db/answersstaff/content/2645/hdoc
Как при отзыве из отпуска на несколько часов компенсировать это время?
Дата публикации 08.09.2023 Вопрос аудитору В последний день оплачиваемого отпуска работник распоряжением руководителя отозван из отпуска. В этот день он отработал неполный рабочий день. Должна ли организация предоставить ему отпуск за полный день или только за те часы, которые он отработал? Работодатель может отозвать сотрудника из отпуска (ч. 2 ст. 125 ТК РФ). При этом неиспользованная часть отпуска должна быть предоставлена по выбору работника в удобное для него время в течение текущего рабочего года. Оставшиеся дни отпуска также можно присоединить к отпуску на следующий год. Согласно ч. 1 ст. 120 ТК РФ продолжительность ежегодного основного отпуска исчисляется в календарных днях. Таким образом, ежегодный основной отпуск предоставляется работнику в календарных днях. Исчисление отпуска в часах ТК РФ не предусмотрено. Поэтому отозвать сотрудника из отпуска можно только на полный день. Если работник фактически отработает не полный день, а несколько часов, это не должно повлиять на обязанность работодателя предоставить ему отпуск в размере полного дня. При этом заработная плата за день отзыва может быть выплачена не за полный рабочий день, а с учетом фактически отработанного времени. |
|||
27
Гена
гуру
23.12.24
✎
09:42
|
Вместо работы развели дискуссию: а может так, может иначе, а может расширением, а может не оформлять...
Я о...ваю, дорогая редакция! |
|||
28
Garykom
гуру
23.12.24
✎
09:47
|
(26)+ 8 ДО, 6 Я
за 6 Я заплатили, 8 ДО остаются в запасе, в любой день может использовать и если частично то снова Х Я и в запасе 8 ДО остается |
|||
29
Гена
гуру
23.12.24
✎
10:04
|
Полный пипец. Сначала дали ссылку про отзыв из оплачиваемого отпуска ОТ, затем вместо 2 часов к зубному даёте 8 и остаток в 6 где-то копить... Ну и про вытеснение забыли в программе.
|
|||
30
Гена
гуру
23.12.24
✎
10:12
|
Без обид. Уже лет 10 как отменили обязательность унифицированных форм в кадровом учёте. Каждая избушка может имет свои игрушки.
У автора фирма решила, что для юридической фиксации уважительного отсутствия внутри смены ей подойдёт Т-6, только нужно добавить на форму часы отсутствия. Это не означает, что работнику дают отпуск за свой счёт. Просто считают отсутствие уважительным. Но чтобы не разводить бодягу, используют тот же буквенный код ДО, что и для отпуска за свой счёт и в ПРОГРАММЕ используют уже готовый кадровый док такого "отпуска". |
|||
31
Garykom
гуру
23.12.24
✎
10:12
|
(29) причем тут копить?
проблема ТС полностью решается без доработки софта что еще надо? |
|||
32
Гена
гуру
23.12.24
✎
10:14
|
(31) Делайте что хотите.
|
|||
33
El_Duke
гуру
23.12.24
✎
10:22
|
(28) "8 ДО, 6 Я
за 6 Я заплатили, 8 ДО остаются в запасе" И как потом контролировать расход этого запаса ? |
|||
34
Garykom
гуру
23.12.24
✎
10:26
|
(33) все штатно, 1 день отпуска за свой счет числится
ничего контролировать не надо, раз официально оформляем выход на работу во время отпуска |
|||
35
El_Duke
гуру
23.12.24
✎
11:53
|
(34) Либо я не понял вашу мысль, либо это что-то совсем не подходящее автору
Если не контролировать, то сотр потом не 6 часов отгуляет, а 10. А кто понаглей - так и больше |
|||
36
Garykom
гуру
23.12.24
✎
11:18
|
(35) каждый выход на работу (отзыв) во время отпуска, даже на 1 минуту - надо оплатить отработанное время
и предоставить полный день отпуска в другой день отработанное время учитывается и оплачивается по табелю +1 день отпуска (неоплачиваемого ибо изначально был такой) учитывается может взять в любой день полностью - потерь (переплаты) нет ибо неоплачиваемый |
|||
37
spiller26
23.12.24
✎
12:53
|
Как и обещал решение, всё-таки сделали через расширение.
Забирайте. https://disk.yandex.ru/d/s2hANveuEuQJiQ |
|||
38
spiller26
23.12.24
✎
12:54
|
(37) "Пачкой" тоже печатается (для дней и часов).
|
|||
39
Гена
гуру
23.12.24
✎
14:12
|
(37) Хотел проверить, но наткнулся на:
ДИТ_ОтпускБезСохранения (0.5): Критичная: Значение контролируемого свойства ОбъектРасширяемойКонфигурации у объекта Язык.Русский не совпадает со значением в расширяемой конфигурации Глянул на Язык в расширении - Объект не найден. Хотел поменять - расширение на замке: рис. Значит, не судьба )
|
|||
40
Гена
гуру
23.12.24
✎
14:21
|
Нашёл в инете, что нужно создать свое расширение (Конфигурация - Расширения конфигурации), открыть его, а потом загрузить из файла в эту конфу нужное расширение.
И оно становится доступным для редактирования. Лень. Если автор работает не на русском языке... то... то... ) |
|||
41
spiller26
23.12.24
✎
15:13
|
(39) Задействованы 3 объекта
|
|||
42
spiller26
23.12.24
✎
15:14
|
(41) Код "ОбщМодуля.КадровыйУчет"
&ИзменениеИКонтроль("ВывестиНаПечатьТ6") Процедура зн_ВывестиНаПечатьТ6(ПараметрыПечати, ДокументРезультат, ДанныеСсылок, МакетПечатнойФормы, ИдентификаторыМакета, ОбъектыПечати) ДокументРезультат.КлючПараметровПечати = "ПараметрыПечати_ПриказОПредоставленииОтпуска"; Для Каждого ДанныеСотрудников Из ДанныеСсылок Цикл #Вставка //-> ЗН-КАПУСТИН-20.12.24 зн_НеобходимостьИзмененияПроцедурыЗаполненияПФТ6 = зн_ОпределитьНеобходимостьИзмененияПроцедурыЗаполненияПФТ6(ДанныеСотрудников.СсылкаНаОбъект); Если зн_НеобходимостьИзмененияПроцедурыЗаполненияПФТ6 Тогда ЧасовОтпуска = ДанныеСотрудников.СсылкаНаОбъект.ЧасовОтпуска; МакетПечатнойФормы = ПолучитьОбщийМакет("ПФ_MXL_Т6_ДИТ"); КонецЕсли; //<- ЗН-КАПУСТИН-20.12.24 #КонецВставки ПерваяСтрокаПечатнойФормы = ДокументРезультат.ВысотаТаблицы + 1; Для Каждого ДанныеНаПечать Из ДанныеСотрудников.Строки Цикл Если ДокументРезультат.ВысотаТаблицы > 0 Тогда ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; НомерСтрокиНачалаОбласти = ДокументРезультат.ВысотаТаблицы + 1; ДатаНачалаВсего = ?(ЗначениеЗаполнено(ДанныеНаПечать.СсылкаНаОбъектДатаНачалаОсновногоОтпуска), ДанныеНаПечать.СсылкаНаОбъектДатаНачалаОсновногоОтпуска, '00010101'); Если Не ЗначениеЗаполнено(ДатаНачалаВсего) И ДанныеНаПечать.СсылкаНаОбъектДанныеОтпусковОсновной = Истина И ЗначениеЗаполнено(ДанныеНаПечать.СсылкаНаОбъектДанныеОтпусковДатаНачала) Тогда ДатаНачалаВсего = ДанныеНаПечать.СсылкаНаОбъектДанныеОтпусковДатаНачала; КонецЕсли; ДатаОкончанияВсего = ?(ЗначениеЗаполнено(ДанныеНаПечать.СсылкаНаОбъектДатаОкончанияОсновногоОтпуска), ДанныеНаПечать.СсылкаНаОбъектДатаОкончанияОсновногоОтпуска, '00010101'); Если Не ЗначениеЗаполнено(ДатаОкончанияВсего) И ДанныеНаПечать.СсылкаНаОбъектДанныеОтпусковОсновной = Истина И ЗначениеЗаполнено(ДанныеНаПечать.СсылкаНаОбъектДанныеОтпусковДатаОкончания) Тогда ДатаОкончанияВсего = ДанныеНаПечать.СсылкаНаОбъектДанныеОтпусковДатаОкончания; КонецЕсли; СсылкаНаОбъектДанныеОтпусковОснование = ""; ОснованиеОтпусков = Новый Структура("СсылкаНаОбъектДанныеОтпусковОснование"); ЗаполнитьЗначенияСвойств(ОснованиеОтпусков, ДанныеНаПечать); Если ЗначениеЗаполнено(ОснованиеОтпусков["СсылкаНаОбъектДанныеОтпусковОснование"]) Тогда СсылкаНаОбъектДанныеОтпусковОснование = ОснованиеОтпусков["СсылкаНаОбъектДанныеОтпусковОснование"]; КонецЕсли; Если ДанныеНаПечать.Строки.Количество() = 0 Тогда ДанныеВычисляемыеНаХоду = Новый Структура; ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектДанныеОтпусковВидОтпускаНаименованиеОтпускаНаПечать"); ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектДанныеОтпусковПродолжительность"); ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектДанныеОтпусковДатаНачалаНаПечать", ЗарплатаКадрыОтчеты.ФорматДатыЧислоВКавычкахМесяцПрописью('00010101')); ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектДанныеОтпусковДатаОкончанияНаПечать", ЗарплатаКадрыОтчеты.ФорматДатыЧислоВКавычкахМесяцПрописью('00010101')); ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектПродолжительностьВсего", ДанныеНаПечать.СсылкаНаОбъектПродолжительностьОсновногоОтпуска); ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектДатаНачалаВсегоНаПечать", ДанныеНаПечать.СсылкаНаОбъектДатаНачалаОсновногоОтпускаНаПечать); ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектДатаОкончанияВсегоНаПечать", ДанныеНаПечать.СсылкаНаОбъектДатаОкончанияОсновногоОтпускаНаПечать); Если Не ЗначениеЗаполнено(ДанныеНаПечать.СсылкаНаОбъектОснование) Тогда ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектОснование", СсылкаНаОбъектДанныеОтпусковОснование); КонецЕсли; ДанныеПользовательскихПолей = ЗарплатаКадрыОтчеты.ЗначенияЗаполненияПользовательскихПолей(ИдентификаторыМакета, ДанныеНаПечать); ЗарплатаКадрыОтчеты.ВывестиВДокументРезультатОбластиМакета( ДокументРезультат, МакетПечатнойФормы, "Шапка,Работник,Подвал", ДанныеНаПечать, ДанныеПользовательскихПолей, ДанныеВычисляемыеНаХоду); Иначе ДанныеВычисляемыеНаХоду = Новый Структура; Если Не ЗначениеЗаполнено(ДанныеНаПечать.СсылкаНаОбъектОснование) Тогда ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектОснование", СсылкаНаОбъектДанныеОтпусковОснование); КонецЕсли; Для Каждого ДанныеДетальныхЗаписей Из ДанныеНаПечать.Строки Цикл Если Не ЗначениеЗаполнено(ДатаНачалаВсего) Или ЗначениеЗаполнено(ДанныеДетальныхЗаписей.СсылкаНаОбъектДанныеОтпусковДатаНачала) И ДатаНачалаВсего > ДанныеДетальныхЗаписей.СсылкаНаОбъектДанныеОтпусковДатаНачала Тогда ДатаНачалаВсего = ДанныеДетальныхЗаписей.СсылкаНаОбъектДанныеОтпусковДатаНачала; КонецЕсли; Если ЗначениеЗаполнено(ДанныеДетальныхЗаписей.СсылкаНаОбъектДанныеОтпусковДатаОкончания) И ДатаОкончанияВсего < ДанныеДетальныхЗаписей.СсылкаНаОбъектДанныеОтпусковДатаОкончания Тогда ДатаОкончанияВсего = ДанныеДетальныхЗаписей.СсылкаНаОбъектДанныеОтпусковДатаОкончания; КонецЕсли; Если Не ЗначениеЗаполнено(ДанныеНаПечать.СсылкаНаОбъектПродолжительностьОсновногоОтпуска) Тогда Если ДанныеНаПечать.СсылкаНаОбъектНачалоПериодаЗаКоторыйПредоставляетсяОтпускНаПечать <> ДанныеНаПечать.СсылкаНаОбъектДанныеОтпусковНачалоПериодаЗаКоторыйПредоставляетсяОтпускНаПечать Тогда ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектНачалоПериодаЗаКоторыйПредоставляетсяОтпускНаПечать", ДанныеНаПечать.СсылкаНаОбъектДанныеОтпусковНачалоПериодаЗаКоторыйПредоставляетсяОтпускНаПечать); ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектКонецПериодаЗаКоторыйПредоставляетсяОтпускНаПечать", ДанныеНаПечать.СсылкаНаОбъектДанныеОтпусковКонецПериодаЗаКоторыйПредоставляетсяОтпускНаПечать); КонецЕсли; Если ЗначениеЗаполнено(СсылкаНаОбъектДанныеОтпусковОснование) Тогда ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектОснование", СсылкаНаОбъектДанныеОтпусковОснование); КонецЕсли; КонецЕсли; КонецЦикла; ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектДатаНачалаВсегоНаПечать", ЗарплатаКадрыОтчеты.ФорматДатыЧислоВКавычкахМесяцПрописью(ДатаНачалаВсего)); ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектДатаОкончанияВсегоНаПечать", ЗарплатаКадрыОтчеты.ФорматДатыЧислоВКавычкахМесяцПрописью(ДатаОкончанияВсего)); ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектПродолжительностьОсновногоОтпуска", ДанныеНаПечать.СсылкаНаОбъектПродолжительностьОсновногоОтпуска); ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектДатаНачалаОсновногоОтпускаНаПечать", ДанныеНаПечать.СсылкаНаОбъектДатаНачалаОсновногоОтпускаНаПечать); ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектДатаОкончанияОсновногоОтпускаНаПечать", ДанныеНаПечать.СсылкаНаОбъектДатаОкончанияОсновногоОтпускаНаПечать); Если ЗначениеЗаполнено(ДанныеНаПечать.СсылкаНаОбъектПродолжительностьОсновногоОтпуска) Тогда ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектНачалоПериодаЗаКоторыйПредоставляетсяОтпускНаПечать", ДанныеНаПечать.СсылкаНаОбъектНачалоПериодаЗаКоторыйПредоставляетсяОтпускНаПечать); ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектКонецПериодаЗаКоторыйПредоставляетсяОтпускНаПечать", ДанныеНаПечать.СсылкаНаОбъектКонецПериодаЗаКоторыйПредоставляетсяОтпускНаПечать); КонецЕсли; #Удаление Если ЗначениеЗаполнено(ДанныеНаПечать.СсылкаНаОбъектПродолжительностьДополнительныхОтпусков) Тогда ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектПродолжительностьВсего", ДанныеНаПечать.СсылкаНаОбъектПродолжительностьОсновногоОтпуска + ДанныеНаПечать.СсылкаНаОбъектПродолжительностьДополнительныхОтпусков); Иначе ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектПродолжительностьВсего", ДанныеНаПечать.СсылкаНаОбъектПродолжительностьОсновногоОтпуска); КонецЕсли; #КонецУдаления #Вставка //-> ЗН-КАПУСТИН-20.12.24 Если ЗначениеЗаполнено(ДанныеНаПечать.СсылкаНаОбъектПродолжительностьДополнительныхОтпусков) Тогда Если зн_НеобходимостьИзмененияПроцедурыЗаполненияПФТ6 Тогда ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектПродолжительностьВсего", ЧасовОтпуска); Иначе ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектПродолжительностьВсего", ДанныеНаПечать.СсылкаНаОбъектПродолжительностьОсновногоОтпуска + ДанныеНаПечать.СсылкаНаОбъектПродолжительностьДополнительныхОтпусков); КонецЕсли; Иначе Если зн_НеобходимостьИзмененияПроцедурыЗаполненияПФТ6 Тогда ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектПродолжительностьВсего", ЧасовОтпуска); Иначе ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектПродолжительностьВсего", ДанныеНаПечать.СсылкаНаОбъектПродолжительностьОсновногоОтпуска); КонецЕсли; КонецЕсли; //<- ЗН-КАПУСТИН-20.12.24 #КонецВставки ВыводитьРасшифровку = ДанныеНаПечать.Строки.Количество() > 1; Если Не ВыводитьРасшифровку И ДанныеНаПечать.Строки.Количество() = 1 И ЗначениеЗаполнено(ДанныеНаПечать.СсылкаНаОбъектПродолжительностьОсновногоОтпуска) Тогда ВыводитьРасшифровку = ДанныеНаПечать.Строки[0].СсылкаНаОбъектДанныеОтпусковВидОтпускаОтпускЯвляетсяЕжегодным; КонецЕсли; Если ВыводитьРасшифровку Тогда ДокументРезультатПриложений = Новый ТабличныйДокумент; ЗарплатаКадрыОтчеты.ВывестиВДокументРезультатОбластиМакета( ДокументРезультатПриложений, МакетПечатнойФормы, "ПриложениеШапка", ДанныеНаПечать, ДанныеВычисляемыеНаХоду); НаименованияОтпусковНаПечать = Новый Массив; ДанныеДополнительныхОтпусков = Новый Структура; ДанныеДополнительныхОтпусков.Вставить("СсылкаНаОбъектДанныеОтпусковВидОтпускаНаименованиеОтпускаНаПечать", ""); ДанныеДополнительныхОтпусков.Вставить("СсылкаНаОбъектДанныеОтпусковПродолжительность", 0); ДанныеДополнительныхОтпусков.Вставить("СсылкаНаОбъектДанныеОтпусковДатаНачала", '00010101'); ДанныеДополнительныхОтпусков.Вставить("СсылкаНаОбъектДанныеОтпусковДатаНачалаНаПечать"); ДанныеДополнительныхОтпусков.Вставить("СсылкаНаОбъектДанныеОтпусковДатаОкончания", '00010101'); ДанныеДополнительныхОтпусков.Вставить("СсылкаНаОбъектДанныеОтпусковДатаОкончанияНаПечать"); Для ИндексСтроки = 0 По ДанныеНаПечать.Строки.Количество() - 1 Цикл ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектДанныеОтпусковНомерПоПорядку", ИндексСтроки + 1); ДанныеСтроки = ДанныеНаПечать.Строки[ИндексСтроки]; Если ДанныеСтроки.СсылкаНаОбъектДанныеОтпусковВидОтпускаОтпускЯвляетсяЕжегодным = Истина Тогда ИменаОбластей = "ПриложениеСтрокаОтпуск,ПриложениеСтрокаПериод,ПриложениеСтрокаОснование"; Иначе ИменаОбластей = "ПриложениеСтрокаОтпуск,ПриложениеСтрокаОснование"; КонецЕсли; ЗарплатаКадрыОтчеты.ВывестиВДокументРезультатОбластиМакета( ДокументРезультатПриложений, МакетПечатнойФормы, ИменаОбластей, ДанныеНаПечать, ДанныеНаПечать.Строки[ИндексСтроки], ДанныеВычисляемыеНаХоду); НаименованияОтпусковНаПечать.Добавить(ДанныеСтроки.СсылкаНаОбъектДанныеОтпусковВидОтпускаНаименованиеОтпускаНаПечать); #Удаление Если ЗначениеЗаполнено(ДанныеСтроки.СсылкаНаОбъектДанныеОтпусковПродолжительность) Тогда ДанныеДополнительныхОтпусков.СсылкаНаОбъектДанныеОтпусковПродолжительность = ДанныеДополнительныхОтпусков.СсылкаНаОбъектДанныеОтпусковПродолжительность + ДанныеСтроки.СсылкаНаОбъектДанныеОтпусковПродолжительность; КонецЕсли; #КонецУдаления #Вставка //-> ЗН-КАПУСТИН-20.12.24 Если ЗначениеЗаполнено(ДанныеСтроки.СсылкаНаОбъектДанныеОтпусковПродолжительность) Тогда Если зн_НеобходимостьИзмененияПроцедурыЗаполненияПФТ6 Тогда ДанныеДополнительныхОтпусков.СсылкаНаОбъектДанныеОтпусковПродолжительность = ЧасовОтпуска; Иначе ДанныеДополнительныхОтпусков.СсылкаНаОбъектДанныеОтпусковПродолжительность = ДанныеДополнительныхОтпусков.СсылкаНаОбъектДанныеОтпусковПродолжительность + ДанныеСтроки.СсылкаНаОбъектДанныеОтпусковПродолжительность; КонецЕсли; КонецЕсли; //<- ЗН-КАПУСТИН-20.12.24 #КонецВставки Если ЗначениеЗаполнено(ДанныеСтроки.СсылкаНаОбъектДанныеОтпусковДатаНачала) Тогда Если Не ЗначениеЗаполнено(ДанныеДополнительныхОтпусков.СсылкаНаОбъектДанныеОтпусковДатаНачала) Или ДанныеДополнительныхОтпусков.СсылкаНаОбъектДанныеОтпусковДатаНачала > ДанныеСтроки.СсылкаНаОбъектДанныеОтпусковДатаНачала Тогда ДанныеДополнительныхОтпусков.СсылкаНаОбъектДанныеОтпусковДатаНачала = ДанныеСтроки.СсылкаНаОбъектДанныеОтпусковДатаНачала; ДанныеДополнительныхОтпусков.СсылкаНаОбъектДанныеОтпусковДатаНачалаНаПечать = ДанныеСтроки.СсылкаНаОбъектДанныеОтпусковДатаНачалаНаПечать; КонецЕсли; КонецЕсли; Если ЗначениеЗаполнено(ДанныеСтроки.СсылкаНаОбъектДанныеОтпусковДатаОкончания) Тогда Если ДанныеДополнительныхОтпусков.СсылкаНаОбъектДанныеОтпусковДатаОкончания < ДанныеСтроки.СсылкаНаОбъектДанныеОтпусковДатаОкончания Тогда ДанныеДополнительныхОтпусков.СсылкаНаОбъектДанныеОтпусковДатаОкончания = ДанныеСтроки.СсылкаНаОбъектДанныеОтпусковДатаОкончания; ДанныеДополнительныхОтпусков.СсылкаНаОбъектДанныеОтпусковДатаОкончанияНаПечать = ДанныеСтроки.СсылкаНаОбъектДанныеОтпусковДатаОкончанияНаПечать; КонецЕсли; КонецЕсли; КонецЦикла; ДанныеДополнительныхОтпусков.СсылкаНаОбъектДанныеОтпусковВидОтпускаНаименованиеОтпускаНаПечать = СтрСоединить(НаименованияОтпусковНаПечать, ", "); ДанныеПользовательскихПолей = ЗарплатаКадрыОтчеты.ЗначенияЗаполненияПользовательскихПолей(ИдентификаторыМакета, ДанныеНаПечать); ЗарплатаКадрыОтчеты.ВывестиВДокументРезультатОбластиМакета( ДокументРезультат, МакетПечатнойФормы, "Шапка,Работник,Подвал", ДанныеНаПечать, ДанныеПользовательскихПолей, ДанныеДополнительныхОтпусков, ДанныеВычисляемыеНаХоду); ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц(); ДокументРезультат.Вывести(ДокументРезультатПриложений); Иначе #Удаление Если ЗначениеЗаполнено(ДанныеНаПечать.СсылкаНаОбъектПродолжительностьДополнительныхОтпусков) Тогда ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектДанныеОтпусковПродолжительность", ДанныеНаПечать.СсылкаНаОбъектПродолжительностьДополнительныхОтпусков); КонецЕсли; #КонецУдаления #Вставка //-> ЗН-КАПУСТИН-20.12.24 Если ЗначениеЗаполнено(ДанныеНаПечать.СсылкаНаОбъектПродолжительностьДополнительныхОтпусков) Тогда Если зн_НеобходимостьИзмененияПроцедурыЗаполненияПФТ6 Тогда ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектДанныеОтпусковПродолжительность", ЧасовОтпуска); Иначе ДанныеВычисляемыеНаХоду.Вставить("СсылкаНаОбъектДанныеОтпусковПродолжительность", ДанныеНаПечать.СсылкаНаОбъектПродолжительностьДополнительныхОтпусков); КонецЕсли; КонецЕсли; //<- ЗН-КАПУСТИН-20.12.24 #КонецВставки ДанныеПользовательскихПолей = ЗарплатаКадрыОтчеты.ЗначенияЗаполненияПользовательскихПолей(ИдентификаторыМакета, ДанныеНаПечать); ЗарплатаКадрыОтчеты.ВывестиВДокументРезультатОбластиМакета( ДокументРезультат, МакетПечатнойФормы, "Шапка,Работник,Подвал", ДанныеНаПечать, ДанныеПользовательскихПолей, ДанныеНаПечать.Строки[0], ДанныеВычисляемыеНаХоду); КонецЕсли; КонецЕсли; КадровыйЭДО.ЗадатьДетальнуюОбластьПечати(ПараметрыПечати, ДокументРезультат, "ПФ_MXL_Т6", НомерСтрокиНачалаОбласти, ДанныеНаПечать, ДанныеНаПечать.СсылкаНаОбъект); КонецЦикла; Если ОбъектыПечати <> Неопределено Тогда УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ДокументРезультат, ПерваяСтрокаПечатнойФормы, ОбъектыПечати, ДанныеНаПечать.СсылкаНаОбъект); КонецЕсли; КонецЦикла; КонецПроцедуры //-> ЗН-КАПУСТИН-20.12.24 Функция зн_ОпределитьНеобходимостьИзмененияПроцедурыЗаполненияПФТ6(СсылкаНаДокумент) Если ТипЗнч(СсылкаНаДокумент) = Тип("ДокументСсылка.ОтпускБезСохраненияОплаты") Тогда Если СсылкаНаДокумент.ОтсутствиеВТечениеЧастиСмены Тогда Возврат Истина; Иначе Возврат Ложь; КонецЕсли; КонецЕсли; Возврат Ложь; КонецФункции //<- ЗН-КАПУСТИН-20.12.24 |
|||
43
spiller26
23.12.24
✎
15:16
|
(42) больше никаких правок.
У нас ЗУП Корп, и да используеться несколько языков. |
|||
44
spiller26
23.12.24
✎
15:19
|
Для расширения Основной роли нет, стоит "Использовать основные роли для всех пользователей"
|
|||
45
Гена
гуру
23.12.24
✎
15:44
|
И на корп не встаёт. Что-то не катит Язык.
Ладно. Не очень-то и хотелось ) |
|||
46
DrZombi
гуру
24.12.24
✎
06:16
|
(1) Заморачивались, но у нас есть отладчики, и все видно в отладчике. :)
|
|||
47
DrZombi
гуру
24.12.24
✎
06:17
|
(44) Убери это, оно вам не к чему. РЛС в расширении не очень живет...
Я бы к примеру лучше бы не Адаптацию использовал, а Дополнение :) |
|||
48
DrZombi
гуру
24.12.24
✎
06:20
|
(42) "ИзменениеИКонтроль" - Ужас... не люблю сею поделку, криво оно робит, да и сопровождать не удобно :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |