Вопрос по обработке выборки данных для табличного документа

1. akolychev 05.01.17 22:08 Сейчас в теме
Заранее извиняюсь, если вопрос слишком глупый, но сам новичок, не могу понять как с этим справиться. Есть внешняя печатная форма трудового договора, выводящая табличный документ. Делаю запрос, помещаю все в табличный документ, но форматы дат отражаются не так как нужно, то есть с часами, минутами и секундами. Задать параметр через, например:
Макет.Параметры.ДатаРожденияРаботника = Формат(Выборка.ДатаРожденияРаботника,"ДЛФ=DD")) не очень хороший вариант в моем случае - документ имеет 2 макета, и какой то параметр одного может отсутствовать в другом, и тогда получаем "Поле объекта не обнаружено". Задать параметр в самом макете тоже не подходит - параметр может находится не в отдельной ячейке, и иметь тип Шаблон. Вопрос - можно ли какой то процедурой обработать данные выборки (те же форматы дат), до заполнения макета данными из выборки, и как?
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Healer 1 06.01.17 00:37 Сейчас в теме
Формат следует установить в свойствах ячейки с параметром "ДатаРожденияРаботника". Ну или проверить наличие параметра в табличном документе и если есть то вот так:
Макет.Параметры.ДатаРожденияРаботника = Формат(Выборка.ДатаРожденияРаботника,"ДЛФ=Д"));
3. akolychev 07.01.17 11:38 Сейчас в теме
(2) Параметр не в ячейке, он внутри текста. Так (Макет.Параметры.ДатаРожденияРаботника = Формат(Выборка.ДатаРожденияРаботника,"ДЛФ=Д")) я тоже пробовал, работает. Но вопрос, можно ли установить обработку форматов какой либо процедурой, чтоб наличие или отсутствие параметра в макете игнорировалось.
4. KRV_it 09.01.17 05:24 Сейчас в теме
(3) А если попробовать установку параметра в попытке? Просто для каждого макета свою попытку, тогда в ошибку вылетать не будет, и при нахождении этого параметра изменит формат.
6. akolychev 09.01.17 09:28 Сейчас в теме
(4) Пробовал, но есть свои минусы. Хотя пока именно на этом варианте я и остановился.
5. areavel 09.01.17 09:14 Сейчас в теме
Можно через переменную, а туда записывать тип строка.
7. akolychev 09.01.17 09:29 Сейчас в теме
Напишите ваше сообщение
(5) Поясните пожалуйста
8. areavel 09.01.17 09:37 Сейчас в теме
НовПеременная = Формат(Выборка.ДатаРожденияРаботника,"ДЛФ=Д"));
Если ЗначениеЗаполнено(НовПеременная) Тогда
Макет.Параметры.ДатаРожденияРаботника = НовПеременная;
КонецЕсли;
9. areavel 09.01.17 09:46 Сейчас в теме
у вас от чего зависит какой из макетов будет использоваться? от данных в документе?
10. Healer 1 09.01.17 12:29 Сейчас в теме
В запросе, из которого выполняется заполнение параметров шаблона, дату можно преобразовать в строку вида "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) КАК ДатаРожденияРаботника
Показать
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)