Вопрос по обработке выборки данных для табличного документа
Заранее извиняюсь, если вопрос слишком глупый, но сам новичок, не могу понять как с этим справиться. Есть внешняя печатная форма трудового договора, выводящая табличный документ. Делаю запрос, помещаю все в табличный документ, но форматы дат отражаются не так как нужно, то есть с часами, минутами и секундами. Задать параметр через, например:
Макет.Параметры.ДатаРожденияРаботника = Формат(Выборка.ДатаРожденияРаботника,"ДЛФ=DD")) не очень хороший вариант в моем случае - документ имеет 2 макета, и какой то параметр одного может отсутствовать в другом, и тогда получаем "Поле объекта не обнаружено". Задать параметр в самом макете тоже не подходит - параметр может находится не в отдельной ячейке, и иметь тип Шаблон. Вопрос - можно ли какой то процедурой обработать данные выборки (те же форматы дат), до заполнения макета данными из выборки, и как?
Макет.Параметры.ДатаРожденияРаботника = Формат(Выборка.ДатаРожденияРаботника,"ДЛФ=DD")) не очень хороший вариант в моем случае - документ имеет 2 макета, и какой то параметр одного может отсутствовать в другом, и тогда получаем "Поле объекта не обнаружено". Задать параметр в самом макете тоже не подходит - параметр может находится не в отдельной ячейке, и иметь тип Шаблон. Вопрос - можно ли какой то процедурой обработать данные выборки (те же форматы дат), до заполнения макета данными из выборки, и как?
По теме из базы знаний
- PowerTools: Инструменты администратора 1С 8.3
- Как автоматически заполнить обработкой табличную часть документа "Ввод начальных остатков" (Тип операции = "Расчеты с партнерами"). 1С: ERP
- Доработка универсальной обработки загрузки данных из табличного документа (для возможности загрузки в документ "Перенос данных" (ЗУП 3.1))
- Перенос данных из Парус 8 в ЗУП ред.3
- Приемы работы с СКД: выгрузка данных справочников и документов в линейном виде в табличный документ
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Формат следует установить в свойствах ячейки с параметром "ДатаРожденияРаботника". Ну или проверить наличие параметра в табличном документе и если есть то вот так:
Макет.Параметры.ДатаРожденияРаботника = Формат(Выборка.ДатаРожденияРаботника,"ДЛФ=Д"));
Макет.Параметры.ДатаРожденияРаботника = Формат(Выборка.ДатаРожденияРаботника,"ДЛФ=Д"));
(2) Параметр не в ячейке, он внутри текста. Так (Макет.Параметры.ДатаРожденияРаботника = Формат(Выборка.ДатаРожденияРаботника,"ДЛФ=Д")) я тоже пробовал, работает. Но вопрос, можно ли установить обработку форматов какой либо процедурой, чтоб наличие или отсутствие параметра в макете игнорировалось.
В запросе, из которого выполняется заполнение параметров шаблона, дату можно преобразовать в строку вида "30.01.2017" следующим образом:
ВЫБРАТЬ
ПОДСТРОКА("0123456789", МЕСЯЦ(СправочникФЛ.ДатаРождения) / 10 + 1, 1)
+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, 6 * МЕСЯЦ(СправочникФЛ.ДатаРождения))) / 6 + 1, 1)
+ "."
+ ПОДСТРОКА("0123456789", ДЕНЬ(СправочникФЛ.ДатаРождения) / 10 + 1, 1)
+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, 6 * ДЕНЬ(СправочникФЛ.ДатаРождения))) / 6 + 1, 1)
+ "."
+ ПОДСТРОКА("0123456789", ГОД(СправочникФЛ.ДатаРождения) / 1000 + 1, 1)
+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, ГОД(СправочникФЛ.ДатаРождения) * 0.06)) / 6 + 1, 1)
+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, ГОД(СправочникФЛ.ДатаРождения) * 0.6)) / 6 + 1, 1)
+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, ГОД(СправочникФЛ.ДатаРождения) * 6)) / 6 + 1, 1) КАК ДатаРожденияРаботника
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот