Добрый день!

Для решения задачи необходимо заполнить произвольными датами дни рождения.

В ДЕМО-базу где имеется Справочник "Контактные лица" Запросом выбираю в таблицу данные контактных лиц и их дату рождения, затем хочу заполнить из произвольными датами. Не могу сообразить как сделать генерацию дат рождений контактных лиц. Кто-нибудь решал подобную задачу? Подскажите алгоритм.
---
1. Сделал запрос к данным:
_________________________________________________________

ВЫБРАТЬ КонтактныеЛица.Ссылка, КонтактныеЛица.Наименование, КонтактныеЛица.ДатаРождения
ИЗ Справочник.КонтактныеЛица КАК КонтактныеЛица

_________________________________________________________

2. Обработку результата сделал так:
_________________________________________________________

```1c
    НоваяДата = Дата('20010101');

    ВыборкаДетальныеЗаписи = мРезультатЗапроса.Выбрать();

    Сч = ВыборкаДетальныеЗаписи.Количество();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

    ГСЧ = Новый ГенераторСлучайныхЧисел(2001);

    СлучайноеЧисло = ГСЧ.СлучайноеЧисло(1, 10100000);

    Сч = Сч + СлучайноеЧисло;

    Объект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();

    Объект.ДатаРождения = Дата(НоваяДата + СлучайноеЧисло + Сч );

    Объект.ОбменДанными.Загрузка = Истина;

    Объект.Записать();

    КонецЦикла;
```

_________________________________________________________
---
как сделать генерацию дат рождений контактных лиц ИМХО, элементарно: генерировать случайные числа и потом преобразовывать их в даты.

А чтобы даты рождения не получались из позапрошлого века, задать диапазон случайных чисел, соответствующий интервалу 1970-2005 годов, или другому, который больше нравится.

Как генерировать случайные числа? Вот статья с массой примеров: https://infostart.ru/1c/articles/57305/
---
Спасибо Ваша ссылка помогла решить задачу.
---
1. Сделал запрос к данным:
_________________________________________________________

ВЫБРАТЬ КонтактныеЛица.Ссылка, КонтактныеЛица.Наименование, КонтактныеЛица.ДатаРождения
ИЗ Справочник.КонтактныеЛица КАК КонтактныеЛица

_________________________________________________________

2. Обработку результата сделал так:
_________________________________________________________

```1c
    НоваяДата = Дата('20010101');

    ВыборкаДетальныеЗаписи = мРезультатЗапроса.Выбрать();

    Сч = ВыборкаДетальныеЗаписи.Количество();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

    ГСЧ = Новый ГенераторСлучайныхЧисел(2001);

    СлучайноеЧисло = ГСЧ.СлучайноеЧисло(1, 10100000);

    Сч = Сч + СлучайноеЧисло;

    Объект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();

    Объект.ДатаРождения = Дата(НоваяДата + СлучайноеЧисло + Сч );

    Объект.ОбменДанными.Загрузка = Истина;

    Объект.Записать();

    КонецЦикла;
```

_________________________________________________________
---
тут из случайного, только получение 1 раз псевдослучайного числа, которое из раза в раз будет одно и тоже.

Пример заполнения случайными датами:

```1c
    НачальнаяДата = Дата(1970,1,1);
    День = 86400;
    ГСЧ = Новый ГенераторСлучайныхЧисел;

    ВыборкаДетальныеЗаписи = мРезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Объект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
    Объект.ДатаРождения = НачальнаяДата+ГСЧ.СлучайноеЧисло(1,12000)*День;
    Объект.ОбменДанными.Загрузка = Истина;
    Объект.Записать();
    КонецЦикла;
```
---
а не проще

```1c
    СлучайноеЧисло = Новый ГенераторСлучайныхЧисел;
    ДеньРождения = СлучайноеЧисло.СлучайноеЧисло(1,31);
    МесяцРождения = СлучайноеЧисло.СлучайноеЧисло(1,12);
    ГодРождения = СлучайноеЧисло.СлучайноеЧисло(1955,2000);
    СлучайноеЧисло = Дата(ГодРождения,МесяцРождения,ДеньРождения);
```

?