|   |   | 
| 
 | Записи в периодический независимый регистр | ☑ | ||
|---|---|---|---|---|
| 0
    
        letovd 17.07.19✎ 20:06 | 
        Добрый вечер. Подскажите, что я делаю не так?
 Ибо массив заполняется таким способом, а в регистр заносится лишь последнее значение цикла Для Счетчик = 0 По 160 Цикл Если Счетчик > 0 И Счетчик % 10 = 0 Тогда НаборЗаписей = РегистрыСведений.Десяточки.СоздатьНаборЗаписей(); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Цифра = Счетчик; НаборЗаписей.Записать(); НаборЗаписей.Очистить(); КонецЕсли; КонецЦикла; | |||
| 1
    
        lodger 17.07.19✎ 20:09 | 
        (0) измерения регистра какие?     | |||
| 2
    
        lodger 17.07.19✎ 20:11 | 
        ну как минимум
 ВремяСтарта=началодня(ТекущаяДата()) Для Счетчик = 0 По 160 Цикл Если Счетчик > 0 И Счетчик % 10 = 0 Тогда НаборЗаписей = РегистрыСведений.Десяточки.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Период.использование = истина; НаборЗаписей.Отбор.Период.значение= ВремяСтарта+Счетчик; // помимо Периода надо определить и другие измерения НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Цифра = Счетчик; НаборЗаписей.Записать(); КонецЕсли; КонецЦикла; | |||
| 3
    
        letovd 17.07.19✎ 20:17 | 
        (2) Спасибо, сработало
 Я не использовал эти две строки и мучался. НаборЗаписей = РегистрыСведений.Десяточки.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Период.использование = истина; НаборЗаписей.Отбор.Период.значение= ВремяСтарта+Счетчик; // помимо Периода надо определить и другие измерения НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Цифра = Счетчик; НаборЗаписей.Записать(); Причем нужно ведь еще добавлять НоваяЗапись.Период = ВремяСтарта+Счетчик; | |||
| 4
    
        lodger 17.07.19✎ 20:42 | 
        (3) а ты думал я тебе полностью готовый код дам?     | |||
| 5
    
        letovd 18.07.19✎ 14:41 | 
        Для чего в данном примере использовать эти две строчки?
 НаборЗаписей.Отбор.Период.использование = истина; НаборЗаписей.Отбор.Период.значение= ВремяСтарта+Счетчик; | |||
| 6
    
        hhhh 18.07.19✎ 15:28 | 
        (5) чтобы оно работало только для данного периода. А то если в регистре миллион записей, у вас без отбора этот весь миллион попадет в оперативную память.     | |||
| 7
    
        letovd 18.07.19✎ 16:06 | 
        (6) Так я ведь не читаю его, а просто создаю и записываю с замещением старых записей     | |||
| 8
    
        hhhh 18.07.19✎ 16:10 | 
        (7) ну чтобы сделать замещение старых записей она должна прочитать их? поэтому она читает миллион записей, потом записывает миллион обратно.     | |||
| 9
    
        hhhh 18.07.19✎ 16:12 | 
        (7) и не забывайте, что в 1с замещения записей не существует такой операции. Тут делается тупо, старые записи удаляются, новые возникают. Это мы для удобства говорим "замещение".     | |||
| 10
    
        hhhh 18.07.19✎ 16:13 | 
        (7) набор записей всегда пишется целиком. Не по одной записи.     | |||
| 11
    
        letovd 18.07.19✎ 16:14 | 
        (10) Да, я уже понял, спасибо.
 Для того что писать по одной используют менеджер | |||
| 12
    
        letovd 18.07.19✎ 16:14 | 
        (8) А если у меня конструкция по типу
 НаборЗаписей = РегистрыСведений.МойРегистр.СоздатьНаборЗаписей(); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий(); НоваяЗапись = НаборЗаписей.Добавить(); Запрос.Период = Выборка.Период; Запрос.Измерение= Выборка.Измерение; КонецЦикла; НаборЗаписей.Записать(Истина); То в какой момент делать отбор? | |||
| 13
    
        letovd 18.07.19✎ 16:16 | 
        (8) А если у меня конструкция по типу
 НаборЗаписей = РегистрыСведений.МойРегистр.СоздатьНаборЗаписей(); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий(); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись .Период = Выборка.Период; НоваяЗапись .Измерение= Выборка.Измерение; КонецЦикла; НаборЗаписей.Записать(Истина); То в какой момент делать отбор? | |||
| 14
    
        letovd 18.07.19✎ 17:04 | 
        Или в данном случае отбор нужно делать перед записью в цикле(так как дата изменяется), типа того?
 НаборЗаписей = РегистрыСведений.МойРегистр.СоздатьНаборЗаписей(); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий(); НаборЗаписей.Отбор.Период.Установить = (Выборка.Период); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись .Период = Выборка.Период; НоваяЗапись .Измерение= Выборка.Измерение; НаборЗаписей.Записать(Истина); НаборЗаписей.Очистить(); КонецЦикла; | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |