Делаю программную запись в регистр сведений. Почему одна запись затирает другую?
Набор = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
Запись = Набор.Добавить();
Запись.Объект = Спр.Ссылка;
Запись.Период = Дата("20120101");
Запись.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00006");
Запись.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
Запись.Представление = МассивСтрок[4];
Набор.Записать();
Набор2 = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
Запись2 = Набор2.Добавить();
Запись2.Объект = Спр.Ссылка;
Запись2.Период = Дата("20120202");
Запись2.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("а0001");
Запись2.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
Запись2.Представление = МассивСтрок[5];
Набор2.Записать();
ПоказатьКто знает почему первая запись создается, а потом затирается второй? В результате создается запись в регистре только с адресом эл. почты (Набор2).
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Необходимо установить отбор.
Пример:
КурсыВалют = РегистрыСведений.КурсыВалют;
НаборКурсов = КурсыВалют.СоздатьНаборЗаписей();
Доллар = Справочники.Валюты.НайтиПоНаименованию("USD");
НаборКурсов.Отбор.Валюта.Установить(Доллар);
НаборКурсов.Отбор.Период.Установить(НачалоДня(ТекущаяДата()));
НаборКурсов.Прочитать();
Если НаборКурсов.Количество() = 0 Тогда
НовыйКурс = НаборКурсов.Добавить();
НовыйКурс.Валюта = Доллар;
НовыйКурс.Период = ТекущаяДата();
ИначеЕсли НаборКурсов.Количество() = 1 Тогда
НовыйКурс = НаборКурсов[0];
Иначе
Текст = "ru = ""Курс валюты задается один раз в день."";"
+ " en = ""Rate is set once a day.""";
Предупреждение(НСтр(Текст), 60);
Возврат;
КонецЕсли;
НовыйКурс.Курс = 31.44;
НовыйКурс.Кратность = 1;
НаборКурсов.Записать();
Сообщить(НСтр(ru = ""Курс ""; en = ""Rate "")
+ СокрЛП(НовыйКурс.Валюта)
+ НСтр(ru = "" на сегодня: "+"; en = "" for today: "")
+ НовыйКурс.Курс + НСтр(ru = "" руб.""; en = "" roub."""));
Пример:
КурсыВалют = РегистрыСведений.КурсыВалют;
НаборКурсов = КурсыВалют.СоздатьНаборЗаписей();
Доллар = Справочники.Валюты.НайтиПоНаименованию("USD");
НаборКурсов.Отбор.Валюта.Установить(Доллар);
НаборКурсов.Отбор.Период.Установить(НачалоДня(ТекущаяДата()));
НаборКурсов.Прочитать();
Если НаборКурсов.Количество() = 0 Тогда
НовыйКурс = НаборКурсов.Добавить();
НовыйКурс.Валюта = Доллар;
НовыйКурс.Период = ТекущаяДата();
ИначеЕсли НаборКурсов.Количество() = 1 Тогда
НовыйКурс = НаборКурсов[0];
Иначе
Текст = "ru = ""Курс валюты задается один раз в день."";"
+ " en = ""Rate is set once a day.""";
Предупреждение(НСтр(Текст), 60);
Возврат;
КонецЕсли;
НовыйКурс.Курс = 31.44;
НовыйКурс.Кратность = 1;
НаборКурсов.Записать();
Сообщить(НСтр(ru = ""Курс ""; en = ""Rate "")
+ СокрЛП(НовыйКурс.Валюта)
+ НСтр(ru = "" на сегодня: "+"; en = "" for today: "")
+ НовыйКурс.Курс + НСтр(ru = "" руб.""; en = "" roub."""));
Идет отбор одной и той же записи для каждого набора.
РС КИ - это такой хитрый регистр, что сначала нужно создать отбор по Запись.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00006") и тип "Телефон", а потом - менять его.
Создать отбор Запись2.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("а0001") и тип "электронная почта" - а потом менять его.
Причем может быть только одна запись телефона и одна запись эл.почты.
А у вас - уже есть заполненые Телефон и Почта для данного контрагента, вот и меняете одно и то же.
РС КИ - это такой хитрый регистр, что сначала нужно создать отбор по Запись.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00006") и тип "Телефон", а потом - менять его.
Создать отбор Запись2.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("а0001") и тип "электронная почта" - а потом менять его.
Причем может быть только одна запись телефона и одна запись эл.почты.
А у вас - уже есть заполненые Телефон и Почта для данного контрагента, вот и меняете одно и то же.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот