Имя: Пароль:
1C
1С v8
Регистры накопления 8,2
0 KonstantinK90
 
26.04.16
08:47
Всем привет! Помогите разобраться с проблемой! Есть обработка с табличной часть она показывает остатки по Основным средствам. К примеру Основное средство числится в остатках в кол.-2 мне нужно сделать так что бы отредактировать 1 запись ос и добавить 2 запись вот ниже код там все понятно что я хочу сделать единственно мой код стирает все данные в моем регистре! в чем дело помогите!

Процедура Кнопка1Нажатие1(Элемент)
    // Вставить содержимое обработчика.
Если УстановитьИнвНомер Тогда
     нзРег1 = РегистрыНакопления.ОсновныеСредстваВРазрезе.СоздатьНаборЗаписей();
     нзРег1.Отбор.Регистратор.Значение = ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока.Регистратор;
     нзРег1.Прочитать();
     тзРег1 = нзРег1.Выгрузить();
  ТекСтрока = ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока;
  //Для Каждого Стр из ТабличноеПоле1 Цикл
     СтркПоиска = Новый Структура("ОС,Склад",ТекСтрока.ОС,ТекСтрока.Склад);
     МасСтрТзРег1 = тзРег1.НайтиСтроки(СтркПоиска);
Если ТекСтрока.Установить Тогда
     Для Каждого СтрТзРег1 Из МасСтрТзРег1 Цикл
         //Поиск нужной строки
         КолПозиций = СтрТзРег1.Количество - 1;
         СтрТзРег1.ИнвентарныйНомер = ТекСтрока.ИнвентарныйНомер;
     КонецЦикла;
Иначе
     Сообщить("Признак установить не установлен!");    
КонецЕсли;
     нзРег1.Загрузить(тзРег1);
     НзРег1.Записать(Истина);
//Если позиции остались тогда бобавим новые

Если КолПозиций > 0 Тогда  
    
    //Для А=1 По КолПозиций Цикл
       Движения = РегистрыНакопления.ОсновныеСредстваВРазрезе.СоздатьНаборЗаписей();
       Движения.Прочитать();
    Для Каждого Стр Из ТабличноеПоле1 Цикл
      Если Стр.НомерСтроки = "1" Тогда
          
      Иначе
           Движение = Движения.Добавить();
        Движение.ВидДвижения      = ВидДвиженияНакопления.Приход;
        Движения.Отбор.Регистратор.Установить(ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока.Регистратор);
        Движение.Период           = ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока.Регистратор.Дата;
        Движение.ОС               = Стр.ОС;
        Движение.Склад            = Стр.Склад;
        Движение.Регистратор      = ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока.Регистратор;
        //Движение.Количество       = Стр.Количество;
        //Движение.Сумма            = Стр.Сумма;
        Движение.ИнвентарныйНомер = Стр.ИнвентарныйНомер;
        Движение.Коментарий       = Стр.Коментарий;
        //ДвиженияПоРег             = Истина;
        //ПартияДвижения            = Стр.Партия;
     КонецЕсли;
    КонецЦикла;
    Движения.Записать(Истина);

   // КонецЦикла;

КонецЕсли;
КонецЕсли;

КонецПроцедуры
1 HardBall
 
26.04.16
09:00
1.Сначала создал набор записей.
2.Потом отобрал по регистратору.
3.Даобавил движения.
4.Записал.
И все в цикле
2 KonstantinK90
 
26.04.16
09:00
Можно ли как сделать?
3 luter-89
 
26.04.16
09:02
(0) Стирает, потому что набор читаешь
4 KonstantinK90
 
26.04.16
09:06
покажите на коде коекретно у меня ошибки потому что прочитать убираю и все равно перетирает
5 ДенисЧ
 
26.04.16
09:07
Перед чтением отбор по регисратору поставь
6 KonstantinK90
 
26.04.16
09:11
ага точно!
7 KonstantinK90
 
26.04.16
09:12
перетирать перестал как сделать если остаток 2 и в регистре одна запись по Основному средству, а мне нужно сделать 2 записи в регистре с разными инвентарными номерами?
8 luter-89
 
26.04.16
09:15
(7) Удали ту запись, сделай новые)
9 luter-89
 
26.04.16
09:15
(7) Только входишь в профессию?
10 luter-89
 
26.04.16
09:16
Вопрос не совсем понятен
11 KonstantinK90
 
26.04.16
09:16
по пробую объяснить что я хочу
12 KonstantinK90
 
26.04.16
09:27
Есть рег.Н по основным средствам (ОС)  я его скопировал и добавил измерения склад,Инвентарный номер перенес все остатки из основного рег.н. в свой и теперь хочу заполнить инвентарные номера по ос
13 KonstantinK90
 
26.04.16
09:28
т.е если ос остаток 2 то нужно мне установить им инвентарные номера и ос должно получиться 2 записи с инвентарными номерами
14 KonstantinK90
 
26.04.16
09:29
вот как мне такое сделать не могу придумать
15 luter-89
 
26.04.16
09:31
А инвентарные номера откуда берутся? В первоначальном регистре их не было.
16 luter-89
 
26.04.16
09:31
И как ты заполняешь новый регистр? или заполнял
17 KonstantinK90
 
26.04.16
09:33
создал обработку выгрузил остатки в табличную часть и создал заись в новый рег.н.
18 luter-89
 
26.04.16
09:35
А инвентарные номера где берешь?
19 KonstantinK90
 
26.04.16
09:41
человек в обработке будет указывать
20 KonstantinK90
 
26.04.16
09:41
для каждой позиции
21 luter-89
 
26.04.16
09:43
Как-то это все криво
22 AceVi
 
26.04.16
09:46
(20)
Есть же стандартный документ корректировка регистров работай через него.
23 luter-89
 
26.04.16
09:48
(22) Он как бы уже данные загрузил в регистр,  а теперь его нужно перекрыжить,  как я понял
24 KonstantinK90
 
26.04.16
09:58
как это сделать
25 luter-89
 
26.04.16
10:02
(24) Тебе надо перекрыжить уже загруженный регистр, так? И раз это регистр накопления, то есть регистратор. Смотри регистратор ,который сделал движение с количеством 2, или регистраторы ,которые привели к такому остатку. Вот их и редактируй
26 AceVi
 
26.04.16
10:04
(23) (24) Че ты там и как загрузил? если у регистра есть регистратор? вот и правь в регистраторе, или как я сказал правь стандартным документом корректировка регистров = делай там 2 движения 1) минусует что было 2) делает новые записи с инв номерами.
27 KonstantinK90
 
26.04.16
10:19
к примеру остаток 2 нужно сделать
Для А=1 По Остаток = 2 Цикл
    //Как сделать 2 записи
//1 запись с таким инвентарным номером
//а  2 запись с другим инвентарным номером добавить
КонецЦикла
28 KonstantinK90
 
26.04.16
10:20
нет типового документа редактирования рег.Н
29 luter-89
 
26.04.16
10:25
(28) Что за конфигурация? (27) Тебе же сказали правь регистратор
30 AceVi
 
26.04.16
10:39
(28) КорректировкаЗаписейРегистров - можно корректировать любые регистры, кроме зарплатных.
31 KonstantinK90
 
26.04.16
10:40
"ДАЛИОН: АвтоМаркет", ред. 1.2 (1.2.3.2) (http://www.auto.dalion.ru)
СофтБаланс
(http://www.auto.dalion.ru)
32 AceVi
 
26.04.16
11:07
(31) Вполне допускаю что в такой конфигурации должен быть похожий документ.
Если нет, то в любом случае должны быть документы прихода и расхода по твоему регистру. вот оперируй ими. спиши что есть сейчас и прими по новой.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс