8.х Заполнение переодического Регистра Сведений

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем GAMI1991, 20 май 2015.

  1. TopicStarter Overlay
    GAMI1991
    Offline

    GAMI1991 Опытный в 1С

    Регистрация:
    5 фев 2015
    Сообщения:
    71
    Симпатии:
    1
    Баллы:
    29
    Ребята, Всем Привет!
    Подскажите пожалуйста, почему не заполняется РС?

    Выборка = РегистрыСведений.КурсыВалют.Выбрать();
    Пока Выборка.Следующий() Цикл
    Запись = Выборка.ПолучитьМенеджерЗаписи();
    Запись.Период = ВводДанных.Дата;
    Запись.Валюты = ВводДанных.Валюта;
    Запись.Курс = ВводДанных.НовыйКурс;
    Запись.Записать();

    КонецЦикла;
  2. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    А синтаксис помощником не пробовали заниматься пример из него

    Код:
    Пример:
    
    КурсыВалют = РегистрыСведений.КурсыВалют;
    НаборКурсов = КурсыВалют.СоздатьНаборЗаписей();
    Доллар = Справочники.Валюты.НайтиПоНаименованию("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."""));
    
    --- Объединение сообщений, 20 май 2015 ---
    Можно делать и без отборов
    НаборКурсов.Отбор.Валюта.Установить(Доллар);
    НаборКурсов.Отбор.Период.Установить(НачалоДня(ТекущаяДата()));
    GAMI1991 нравится это.
  3. TopicStarter Overlay
    GAMI1991
    Offline

    GAMI1991 Опытный в 1С

    Регистрация:
    5 фев 2015
    Сообщения:
    71
    Симпатии:
    1
    Баллы:
    29
    Спасибо!
    Последнее редактирование: 20 май 2015
  4. TopicStarter Overlay
    GAMI1991
    Offline

    GAMI1991 Опытный в 1С

    Регистрация:
    5 фев 2015
    Сообщения:
    71
    Симпатии:
    1
    Баллы:
    29
    Я не пойму как добавить в РС данные из колонок таблицы внешней обработки?
    Имя таблицы: ВводДанных, колонка Валюта, выдает ошибку Поле объекта не обнаружено (Валюта)

    Выборка = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
    Выборка.Период = ТекущаяДата();
    Выборка.Валюты = ВводДанных.Валюта;[/QUOTE]
  5. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    А в каком месте этот код написан. Воод данных это только таблица на форме или есть еще у самой формы Табличная часть
  6. TopicStarter Overlay
    GAMI1991
    Offline

    GAMI1991 Опытный в 1С

    Регистрация:
    5 фев 2015
    Сообщения:
    71
    Симпатии:
    1
    Баллы:
    29
    Таблица на форме
    Код написан в Модуле формы
  7. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Ну тогда надо к ней обращаться через элементы формы или Объект
  8. TopicStarter Overlay
    GAMI1991
    Offline

    GAMI1991 Опытный в 1С

    Регистрация:
    5 фев 2015
    Сообщения:
    71
    Симпатии:
    1
    Баллы:
    29
    Я делала через Элементы, РС не заполняется!
    в отладчике пишет : Переменная не определена (Валюты)
  9. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Ну как вы делали - напишите
  10. TopicStarter Overlay
    GAMI1991
    Offline

    GAMI1991 Опытный в 1С

    Регистрация:
    5 фев 2015
    Сообщения:
    71
    Симпатии:
    1
    Баллы:
    29
    Спасибо все получилось, нужно просто было сделать обход табличной части:
    Код:
    Для каждого СтрокаТЧ Из ВводДанных Цикл
         мМенеджерЗаписи = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
         мМенеджерЗаписи.Период = СтрокаТЧ.Дата;
         мМенеджерЗаписи.Валюты = СтрокаТЧ.Валюта;
         мМенеджерЗаписи.Курс = СтрокаТЧ.НовыйКурс;
         мМенеджерЗаписи.Кратность = СтрокаТЧ.Кратность;
         Попытка
           мМенеджерЗаписи.Записать();
         Исключение
           Сообщить(ОписаниеОшибки());
         КонецПопытки;

Поделиться этой страницей