1. akolychev 05.01.17 22:08 Сейчас в теме

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

Заранее извиняюсь, если вопрос слишком глупый, но сам новичок, не могу понять как с этим справиться. Есть внешняя печатная форма трудового договора, выводящая табличный документ. Делаю запрос, помещаю все в табличный документ, но форматы дат отражаются не так как нужно, то есть с часами, минутами и секундами. Задать параметр через, например:
Макет.Параметры.ДатаРожденияРаботника = Формат(Выборка.ДатаРожденияРаботника,"ДЛФ=DD")) не очень хороший вариант в моем случае - документ имеет 2 макета, и какой то параметр одного может отсутствовать в другом, и тогда получаем "Поле объекта не обнаружено". Задать параметр в самом макете тоже не подходит - параметр может находится не в отдельной ячейке, и иметь тип Шаблон. Вопрос - можно ли какой то процедурой обработать данные выборки (те же форматы дат), до заполнения макета данными из выборки, и как?
Ответы
Избранное Подписка Сортировка: Древо
2. Healer 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 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С
Москва
зарплата от 80 000 руб.
Полный день

Senior 1C Developer ЛЮБОЙ ГОРОД
Москва
зарплата от 80 000 руб.
Полный день

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

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

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