![]() |
![]() |
![]() |
|
Изменение значений ресурса у регистра сведений. | ☑ | ||
---|---|---|---|---|
0
KattyMix
24.05.11
✎
13:40
|
Привет.Необходимо во всех записях регистра сведений ЦеныПоставщиков изменить ресурс ОтклонениеПлюс.
НаборЗаписей = РегистрыСведений.ЦеныПоставщиков.СоздатьНаборЗаписей(); НаборЗаписей.Прочитать(); Для каждого Запись Из НаборЗаписей Цикл Запись.ОтклонениеПлюс = 0.1; КонецЦикла; НаборЗаписей.Записать(); При таком коде возникает ошибка -Не хватает памяти и вылетает из программы... |
|||
1
mikecool
24.05.11
✎
13:41
|
при таком коде ты очищаешь весь РС
|
|||
2
mikecool
24.05.11
✎
13:41
|
+1 а нет, брешу
|
|||
3
vicof
24.05.11
✎
13:41
|
Читай порциями.
|
|||
4
vmv
24.05.11
✎
13:41
|
отбор установить надо для набора, а так читает все записи.
там сколько - 10 в 8 степени уже? |
|||
5
dimoff
24.05.11
✎
13:41
|
Отбор делай по каждому поставщику отдельно. Кстати этот регистр не привязан к регистратору ли?
|
|||
6
vmv
24.05.11
✎
13:42
|
+ 4 тоже брехня)
|
|||
7
KattyMix
24.05.11
✎
13:51
|
Независимый регистр.Необходимо во всём регистре этот ресурс изменить.
|
|||
8
vmv
24.05.11
✎
13:54
|
(7) выбери уникальные измерения и делай порции выборок наборов записей и устанавливать значение для всего набора вроде можно и без перебора
|
|||
9
Alexandr Puzakov
24.05.11
✎
13:54
|
КлючЗаписи!
|
|||
10
Alexandr Puzakov
24.05.11
✎
13:56
|
И используй метод менеджера регистра сведений Выбрать().
|
|||
11
KattyMix
24.05.11
✎
13:58
|
Выборка = РегистрыСведений.ЦеныПоставщиков.Выбрать();
Пока Выборка.Следующий() Цикл Выборка.ОтклонениеПлюс = 0.1; конеццикла; Ошибка-Поле недоступно для записи |
|||
12
vicof
24.05.11
✎
13:58
|
ВЫБРАТЬ ПЕРВЫЕ 300
| ЦеныПоставщиков.ОтклонениеПлюс |ИЗ | РегистрСведений.ЦеныПоставщиков КАК ЦеныПоставщиков |ГДЕ | ЦеныНоменклатуры.ОтклонениеПлюс = 0 Запрос.ПараметрыюУстановить("ПустаяСсылка", ) дарю. Фотку поставь. |
|||
13
vmv
24.05.11
✎
13:59
|
ЗагрузитьКолонку(<Массив>, <ИмяПоля>)
проще сформировать массив и загрузить колонку в набор, чем дергать каждую запись в цикле со всеми потрохами) |
|||
14
vicof
24.05.11
✎
13:59
|
+(12) без предпоследней строчки
|
|||
15
vicof
24.05.11
✎
14:03
|
(11) Здесь объект надо получать, а у тебя ссылка
|
|||
16
vmv
24.05.11
✎
14:05
|
запросом типа (12) ВЫБРАТЬ Различные
Контрагент потом цикл по выборке Контрагентов с записями по отбору Контрагент и закачка через массив значений в колонку. все |
|||
17
Alexandr Puzakov
24.05.11
✎
14:05
|
(11) используй в цикле перебора выборки КлючЗаписи...
|
|||
18
vmv
24.05.11
✎
14:10
|
(17) если регистр огромен, то вполне возможно ситуация фаталерор, пару раз было. Надо дробить выборку набора, да и обход записей тормозной
|
|||
19
KattyMix
24.05.11
✎
14:12
|
и у меня 8.0 стоит...
|
|||
20
Эстет хренов
24.05.11
✎
14:19
|
(19) троллфейс
|
|||
21
vmv
24.05.11
✎
14:31
|
под 8.2 работает, под 8.0 можно подпилить
Функция ПолучитьПоставщикДляОтбораЗаписей() Запрос = Новый Запрос; ТекстЗапроса = " |ВЫБРАТЬ РАЗЛИЧНЫЕ | ЦеныПоставщиков.Поставщик Как Поставщик |ИЗ | РегистрСведений.ЦеныЦеныПоставщиков КАК ЦеныПоставщиков"; Запрос.Текст = ТекстЗапроса; РезультатЗапроса = Запрос.Выполнить(); Возврат РезультатЗапроса.Выгрузить(); КонецФункции Процедура УчтановитьРесурПорциямиПоПостащикам() НаборЗаписей = РегистрыСведений.ЦеныПоставщиков.СоздатьНаборЗаписей(); ТзПоставщики = ПолучитьПоставщикДляОтбораЗаписей(); Для Каждого СтрокаТзПоставщики Из ТзПоставщики Цикл НаборЗаписей.Отбор.Поставщик.Установить(СтрокаТзПоставщики.Поставщики); НаборЗаписей.Прочитать(); мОтклонениеПлюс = НаборЗаписей.ВыгрузитьКолонку("ОтклонениеПлюс"); Для Инд = 0 По мОтклонениеПлюс.ВГраница() Цикл мОтклонениеПлюс[Инд] = 0.1; КонецЦикла; НаборЗаписей.ЗагрузитьКолонку(мОтклонениеПлюс, "ОтклонениеПлюс"); НаборЗаписей.Записать(Истина); КонецЦикла; КонецПроцедуры |
|||
22
KattyMix
24.05.11
✎
15:49
|
Спасибо)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |