Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Получение элементов иерархического справочника          
dborovsky Подменю пользователя
сообщение 10.08.12, 10:12
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Доброго времени суток Дамы и Господа. Тема наверное избитая уже, но все таки. недавно начал изучать 1с. Мне надо выбрать из иерархического справочника Сотрудники всех работников, у которых сегодня день рождение. Вначале у меня справочник был без иераррхии и все работало. Как только добавил группы, моя выборка стала пуста. Изменил код, как показано внизу, но безрезультатно. Что ни так в коде? Заранее спасибо за ответ.


Функция СписокИмениннниковПоТекДате() Экспорт 
        ТД_День = День(ТекущаяДата());      
        ТД_Месяц = Месяц(ТекущаяДата());
        
        Массив = Новый Массив();
        
        
        Выборка =  Справочники.Сотрудники.ВыбратьИерархически();
        
        Пока Выборка.Следующий() Цикл
            ДР_День = День(Выборка.ДатаРождения);
            ДР_Месяц = Месяц(Выборка.ДатаРождения);
        
        
            Если ТД_День = ДР_День И ТД_Месяц = ДР_Месяц Тогда
                Массив.Добавить(Выборка.Наименование);
            КонецЕсли;
        
        КонецЦикла;
        
        Возврат Массив;
        
  КонецФункции



Выдает ошибку: {ОбщийМодуль.ОбщийМодуль.Модуль(11)}: Преобразование значения к типу Дата не может быть выполнено
ДР_День = День(Выборка.ДатаРождения);

Batchir Подменю пользователя
сообщение 10.08.12, 10:21
Сообщение #2

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0

Нужно ставить проверку перед ДР_День = День(Выборка.ДатаРождения);:
если это группа тогда продолжить
А вообще лучше бы запросы поучили и с их помощью данные получали.

logist Подменю пользователя
сообщение 10.08.12, 10:22
Сообщение #3

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Не страдайте ерундой, читайте лучше умные книжки, раз только начинаете изучать.
Ваша задача решается следующим образом:

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущаяДата", НачалоДня(ТекущаяДата());
Запрос.Текст = "ВЫБРАТЬ
               |    Сотрудники.Наименование КАК Сотрудник
               |ИЗ
               |    Справочник.Сотрудники КАК Сотрудники";
               |ГДЕ
               |    НАЧАЛОПЕРИОДА(Справочник.Сотрудники.ДатаРождения, ДЕНЬ) = &ТекущаяДата";
ТаблицаРезультата = Запрос.Выполнить().Выгрузить();
МассивСотрудников = ТаблицаРезультата.ВыгрузитьКолонку("Сотрудник");

Возврат МассивСотрудников;


Signature
Личные бесплатные консультации не даю, для этого есть форум!

dborovsky Подменю пользователя
сообщение 10.08.12, 14:42
Сообщение #4

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

как сделать с помощью запроса я знаю. Для меня принципиально именно так сделать, чтобы разобраться.

Зачем нужно ставить проверку перед ДР_День = День(Выборка.ДатаРождения);?
Если это группа тогда продолжить. А если объекты не в группе находятся, то что? Ведь у нас есть метод ВыбратьИерархически(), кторый сам все выберет. Я правильно понимаю?

Batchir Подменю пользователя
сообщение 10.08.12, 15:59
Сообщение #5

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0

Цитата(dborovsky @ 10.08.12, 15:42) *
Зачем нужно ставить проверку перед ДР_День = День(Выборка.ДатаРождения);?

Потому что ошибку Ваш код дает потому что пытается получить день рождения у группы, а этот реквизит скорее всего доступен только для элементов.

logist Подменю пользователя
сообщение 10.08.12, 16:04
Сообщение #6

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(dborovsky @ 10.08.12, 15:42) *
Для меня принципиально именно так сделать, чтобы разобраться.

Зачем тратить время на то, что бы разобраться в том, что не нужно делать... Или Вы претендуете на звание заслуженного гинеколога-сантехника? Тогда удачи в освоении wink.gif


Signature
Личные бесплатные консультации не даю, для этого есть форум!

dborovsky Подменю пользователя
сообщение 10.08.12, 16:22
Сообщение #7

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Хожу на курсы, дали такую домашку. Не понимаю только причем здесь сантехник с гинекологом? Я уже разобрался, всем спасибо за консультацию.

Thanks)))

Сообщение отредактировал Vofka - 10.08.12, 16:28

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.06.25, 14:22
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!