Имя: Пароль:
1C
 
Как правильно зарегистрировать изменения набора записей регистра сведений
0 Rom
 
23.09.04
15:09
Следующий фрагмент кода вызывает ошибку:

Набор = РегистрыСведений.КомплектующиеНоменклатуры.СоздатьНаборЗаписей();
Набор.Отбор.Номенклатура.Значение = Товар.Номенклатура;

Набор.Отбор.Номенклатура.Использование = Истина;

Набор.Прочитать();

ПланыОбмена.ЗарегистрироватьИзменения(Узел, Набор); // Ошибка: "Недопустимое значение параметра (параметр номер "2")"


Как правильно?
1 Волшебник
 
23.09.04
15:11
Набор.Отбор.Номенклатура.ВидСравнения = ВидСравнения.Равно;

...

Набор.Прочитать();
Набор.Записать();  //при авторегистрации
2 Rom
 
23.09.04
15:12
Авторегистрация запрещена.
3 Rom
 
23.09.04
15:19
Включил авторегистрацию, добавил

Набор.Отбор.Номенклатура.ВидСравнения = ВидСравнения.Равно;

...

Набор.Прочитать();

Результат тот же - Ошибка: "Недопустимое значение параметра (параметр номер "2")"
4 Волшебник
 
23.09.04
15:23
Этот регистр входит в состав плана обмена? Точно?
5 Rom
 
23.09.04
15:24
Точно. Если записать:

ПланыОбмена.ЗарегистрироватьИзменения(Узел, Набор.Метаданные());

- то регистрация происходит, но для всех записей регистра, без отбора. Но меня это не устраивает!
6 Rom
 
23.09.04
15:30
Примечание. Регистр сведений непериодический, режим записи - независимый.
7 Rom
 
23.09.04
15:38
Может быть это ошибка платформы?
8 Волшебник
 
23.09.04
15:39
(7) Сомневаюсь. Я бы разобрался, но пока немного занят. Если только вечером.
9 Rom
 
23.09.04
15:40
Спасибо
10 Волшебник
 
23.09.04
20:57
Если авторегистрация разрешена, то самому регистрировать изменения не нужно - это сделает платформа автоматически.
11 Rom
 
24.09.04
09:24
В том-то и дело, что авторегистрация не нужна. Мне необходимо зарегистрировать лишь отдельные записи регистра.
12 Rom
 
24.09.04
10:46
Разобрался.
1. Сначала делаем выборку из регистра сведений по заданному отбору
2. Затем разбираем результат выборки и создаем набор записей регистра. В наборе обязательно устанавливаем значения основного отбора (все измерения регистра). Свойство Использовать = Истина. Только теперь удасться зарегистрировать изменения заданного набора записей из непериодического регистра сведений с независимым режимом записи и с запрещенной авторегистрацией.

Фрагмент кода:

       Отбор = Новый Структура("Номенклатура", Товар.Номенклатура);
       Выборка = РегистрыСведений.КомплектующиеНоменклатуры.Выбрать(Отбор);
       Пока Выборка.Следующий() Цикл
           Набор = РегистрыСведений.КомплектующиеНоменклатуры.СоздатьНаборЗаписей();
           
           Набор.Отбор.Номенклатура.Установить(Выборка.Номенклатура, Истина);
           Набор.Отбор.ТоварТара.Установить(Перечисления.ТоварТара.Товар, Истина);
           Набор.Отбор.ХарактеристикаНоменклатуры.Установить(Выборка.ХарактеристикаНоменклатуры, Истина);
           Набор.Отбор.Комплектующая.Установить(Выборка.Комплектующая, Истина);
           Набор.Отбор.ХарактеристикаКомплектующей.Установить(Выборка.ХарактеристикаКомплектующей, Истина);
           
           Набор.Прочитать();
           ПланыОбмена.ЗарегистрироватьИзменения(Узел, Набор);
       КонецЦикла;
13 Волшебник
 
24.09.04
10:51
Ты с какой конфигурацией работаешь? УТ?
14 Rom
 
24.09.04
11:56
УТ, 11 релиз
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn