Имя: Пароль:
1C
1С v8
Запись в регистр сведений
0 LivingStar
 
14.11.11
08:45
Деляю процедуру записи в регистр сведений, периодический, подчиненный регистратору. Все ли верно я сделал?

Процедура ЗаписатьВесНоменклатуры()
   НаборЗаписей                   = РегистрыСведений.ВесНоменклатуры.СоздатьНаборЗаписей();
   НаборЗаписей.Отбор.Регистратор.Установить(ЭтотОбъект);
   Для каждого СтрокаТов Из Товары Цикл
       НоваяЗапись                    = НаборЗаписей.Добавить();
       НоваяЗапись.Период             = ЭтотОбъект.Дата;
       НоваяЗапись.Номенклатура       = СтрокаТов.Номенклатура;
       НоваяЗапись.ЕдиницаИзмерения   = СтрокаТов.ЕдиницаИзмерения;
       НоваяЗапись.СтарыйВес          = СтрокаТов.СтарыйВес;
       НоваяЗапись.НовыйВес           = Строкатов.НовыйВес;
   КонецЦикла;
   НаборЗаписей.Записать();    
КонецПроцедуры
1 Wobland
 
14.11.11
08:48
Прочитать() нету. а вообще, в обработке проведения всё надо делать
2 ZoRN
 
14.11.11
08:48
Вроде ГлуБоко ! Запусти и проверь !
3 LivingStar
 
14.11.11
08:48
вышла ошибка!

Ошибка при выполнении обработчика - '{Документ.РасчетВесаЕдиницыПродукции(67)}: Ошибка при вызове метода контекста (Записать): Ошибка записи! Не установлен отбор по регистратору (Регистр сведений:вес номенклатуры)'
по причине:
{Документ.РасчетВесаЕдиницыПродукции(67)}: Ошибка при вызове метода контекста (Записать): Ошибка записи! Не установлен отбор по регистратору (Регистр сведений:вес номенклатуры)

по причине:
Ошибка записи! Не установлен отбор по регистратору (Регистр сведений:вес номенклатуры)
4 stangen
 
14.11.11
08:50
не Объект должен быть, а Ссылко
5 LivingStar
 
14.11.11
08:55
поправил, сейчас все должно быть норм?!

Процедура ЗаписатьВесНоменклатуры()
   ВыбранныРегистратор = ЭтотОбъект.Ссылка;
   НаборЗаписей                   = РегистрыСведений.ВесНоменклатуры.СоздатьНаборЗаписей();
   НаборЗаписей.Отбор.Регистратор.Установить(ВыбранныРегистратор);
   Для каждого СтрокаТов Из Товары Цикл
       НоваяЗапись                    = НаборЗаписей.Добавить();
       НоваяЗапись.Период             = ВыбранныРегистратор.Дата;
       НоваяЗапись.Номенклатура       = СтрокаТов.Номенклатура;
       НоваяЗапись.ЕдиницаИзмерения   = СтрокаТов.ЕдиницаИзмерения;
       НоваяЗапись.СтарыйВес          = СтрокаТов.СтарыйВес;
       НоваяЗапись.НовыйВес           = Строкатов.НовыйВес;
   КонецЦикла;
   НаборЗаписей.Записать();    
КонецПроцедуры
6 LivingStar
 
14.11.11
08:55
(5+) более ничего добавлять не нужно?
7 SaM58
 
14.11.11
08:57
(6) а попробовать?
8 LivingStar
 
14.11.11
09:47
(7) пробую, пока что все норм...
9 aleks-id
 
14.11.11
09:52
(8) тебе ж еще в (1) на косяк указали
10 dva1c
 
14.11.11
09:57
(9) все правильно. в (1) сказано все верно, но, а если хочется в форме объекта? ))
11 dva1c
 
14.11.11
09:58
*в модуле формы объекта )
12 LivingStar
 
14.11.11
10:00
(1) я вызываю эту процедуру в обработке проведения
13 LivingStar
 
14.11.11
10:01
(1)(9) подскажите как делать с Прочитать()
14 LivingStar
 
14.11.11
10:06
НаборЗаписей.Прочитать();

это же нужно при чтении записей из регистра?
я же записываю, зачем мне их предварительно читать?
15 dva1c
 
14.11.11
11:54
Тоже не вижу смысла в Прочитать()
16 Elf_80_lvl
 
14.11.11
11:58
(5) А я вот думаю а если документ новый то "ЭтотОбъект.Ссылка" сработает в событии "ПриЗаписи"?
17 LivingStar
 
14.11.11
12:08
(5)     ...
       // LivingStar ->
   ЗаписатьВесНоменклатуры();
   // LivingStar <-
КонецПроцедуры // ОбработкаПроведения()

процедура вызывается в процедуре ОбработкаПроведения()
О чем вы говорите?
18 LivingStar
 
14.11.11
12:09
(17+) читать (17) К (16)