Имя: Пароль:
1C
 
РегистрСведений
0 TemkaTV
 
18.02.16
11:09
Добрый День.и снова проблемы с регистром сведений.. да много инфы на этот счёт в инете, но чёт не работает у меня. Регистр называется размещение складских ячеек. с измерениями :(Номенклатура,склад, помещение, ячейка) и ресурсом "Основная Ячейка") . Вообще по сути, этот регистр типовой, и там ничего не меняли. Она привязывает номенклатуру в ячейки на складе. дело в том, что на днях у нас новые склады появились, и всю номенклатуру переместили на новые склады. Теперь нужно в этом регистре изменить записи.то бишь ячейки со склада старого перенести в склад новый.

&НаСервере
Процедура ПереносСкладскихЯчеек()

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


КонецПроцедуры;

Где Склад и складЗаписи = Ссылки на справочник Склады (добавлены как реквизиты в обработку)
1 TemkaTV
 
18.02.16
11:09
и да пишу в модуле формы.
2 Остап Сулейманович
 
18.02.16
11:10
(0) Ну да. И что?
3 Лефмихалыч
 
18.02.16
11:12
и проблема-то в чем?
4 TemkaTV
 
18.02.16
11:13
(2) При запуске обработки - ссылается на ошибку, что та или иная номенклатура находится в 2 ячейках
5 TemkaTV
 
18.02.16
11:15
И еще вопрос, как произвести следующее. меняю я допустим руками склад открыв регистр руками со старого на новый у номенклатуры. поменял. Ячейка пропала, как ее сохранить при этом? также отбор по ячейкам добавить?
6 Лефмихалыч
 
18.02.16
11:16
отбор не установлен, ты весь регистр обрабатываешь, а не только один склад.

НаборЗаписейРегистра.Отбор.Склад.Установить(Объект.Склад);

или
НаборЗаписейРегистра.Отбор.Склад.Значение = Объект.Склад;
НаборЗаписейРегистра.Отбор.Склад.Использование = истина;
7 Лефмихалыч
 
18.02.16
11:17
(5) она не пропала, строка перестала соответствовать отбору просто.
8 Остап Сулейманович
 
18.02.16
11:18
(4) Это не проблема регистра.
(5) Ячейка не переезжает в новый склад. Там свои ячейки. Выбрали другой склад - ячейка (от прежнего) очистилась. Как бы намекая, что нужно указать ячейку, расположенную на новом складе.
9 TemkaTV
 
18.02.16
11:20
(8) а можно при всем этом ее сохранить? поменяв только склад. Может сначала перенести все ячейки со старого склада на новый? Стандартной обработкой "Групповое изменение реквизитов"?
10 Лефмихалыч
 
18.02.16
11:28
(9) она и так сохраняется
11 TemkaTV
 
18.02.16
11:31
(10) да, но на старом складе.
12 hhhh
 
18.02.16
12:13
(11) так не будет работать, как вам хочется. Делайте два раза запись. По одному складу, потом по другому складу.

Типа так

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

ТЗ.ЗаполнитьЗначения(Объект.СкладЗаписи, "Склад");

НаборЗаписейРегистра.Отбор.Склад.Установить(Объект.СкладЗаписи);

НаборЗаписейРегистра.Загрузить(ТЗ);


НаборЗаписейРегистра.Записать();