8.х Как записать таблицу значений в периодический регистр сведений

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Bkmz, 15 дек 2016.

  1. TopicStarter Overlay
    Bkmz
    Offline

    Bkmz Опытный в 1С

    Регистрация:
    6 июл 2013
    Сообщения:
    459
    Симпатии:
    13
    Баллы:
    29
    Есть таблица в которой я заполняю данные. Их надо загрузить в регистр сведений, он периодически (период день), не подчиненный регистратору. Я пробовал так.

    Код:
    Для каждого Строка Из Объект.ЦеныНоменклатуры Цикл
            МенеджерЗаписи = РегистрыСведений.ЦеныНоменклатуры.СоздатьМенеджерЗаписи();
           МенеджерЗаписи.Номенклатура = Строка.Номенклатура;
           МенеджерЗаписи.Цена = Строка.ЦенаНовая;
           Попытка
             МенеджерЗаписи.Записать();
           Исключение
             Сообщить("Цена для " + Строка.Номенклатура + " не записана");
           КонецПопытки;  
      КонецЦикла;
    
    Код рабочий все пишется так как надо. НО!!!

    Мне говорят что-то можно как-то интересней сделать. Толи выгрузить все сразу массивом толи еще как-то. Какие есть еще варианты?
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.889
    Симпатии:
    1.029
    Баллы:
    204
    Есть НаборЗаписей(), в C-П даже пример кода вроде есть.
  3. TopicStarter Overlay
    Bkmz
    Offline

    Bkmz Опытный в 1С

    Регистрация:
    6 июл 2013
    Сообщения:
    459
    Симпатии:
    13
    Баллы:
    29
    А можно ссылку или код? не разберусь
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.889
    Симпатии:
    1.029
    Баллы:
    204
    Что именно не понятно?
  5. TopicStarter Overlay
    Bkmz
    Offline

    Bkmz Опытный в 1С

    Регистрация:
    6 июл 2013
    Сообщения:
    459
    Симпатии:
    13
    Баллы:
    29
    Код:
    ДанныеДляЗагрузки = Новый ТаблицаЗначений;
    ДанныеДляЗагрузки.Колонки.Добавить("Период");
    ДанныеДляЗагрузки.Колонки.Добавить("Номеклатура");
    ДанныеДляЗагрузки.Колонки.Добавить("Цена");
    ЗаполнитьЗначенияСвойств(ДанныеДляЗагрузки, Объект.ЦеныНоменклатуры, "Номенклатура, Цена, Период");
    
    НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Период.Установить(Объект.ДатаУст);
    НаборЗаписей.Загрузить(ДанныеДляЗагрузки);
    НаборЗаписей.Записать();
    
    Так?
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.889
    Симпатии:
    1.029
    Баллы:
    204
    ТЗ так не заполнится, необходимо по-строчно добавлять и заполнять, либо каким-то другим способом получить ТЗ, например выгрузкой из ТЧ объекта.
    В остальном - верно в первом приближении, т.к. есть ньюансы, зависящие от того, что именно нужно получить в итоге.