Имя: Пароль:
1C
 
Регистры Сведений 1с 8.3
0 Akkreditator
 
05.01.15
20:33
Есть табличная часть из двух реквизитов Спр.Номенклатруа.Ссылка и строка (штрихкод), формируется запросом из бд, далее мне надо взять эту запись в номенклатуре и удалить, и создать точно такую же взяв ссылку и штрихкод из тч, то что делаю я удаляет все оставля одну запись, отбора по ресурсу я так понял нет у регистра сведений.. Гуру спасайте
1 Akkreditator
 
05.01.15
20:34
&НаСервере
Процедура СформироватьСписокНаСервере()
    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ШтрихкодыНоменклатуры.Номенклатура.Ссылка КАК Номенклатура,
        |    ШтрихкодыНоменклатуры.Штрихкод
        |ИЗ
        |    РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    ТЧ = Объект.Товары;
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Стр = ТЧ.Добавить();
        Стр.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
        Стр.Штрихкод = ВыборкаДетальныеЗаписи.Штрихкод;
    КонецЦикла;
    
    
КонецПроцедуры

&НаКлиенте
Процедура СформироватьСписок(Команда)
    СформироватьСписокНаСервере();
КонецПроцедуры

&НаСервере
Процедура ПересоздатьШтрихкодНаСервере()
    ТЧ = Объект.Товары;
        Для каждого Стр из ТЧ Цикл
        НаборЗаписей = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Штрихкод.Установить(Стр.Штрихкод);    
        Набор = НаборЗаписей.Добавить();
        Набор.Номенклатура = Стр.Номенклатура;
        Набор.Штрихкод = Стр.Штрихкод;        
    КонецЦикла;
    
КонецПроцедуры

&НаКлиенте
Процедура ПересоздатьШтрихкод(Команда)
    ПересоздатьШтрихкодНаСервере();
КонецПроцедуры

&НаСервере
Процедура УдалитьВсеЗаписиНаСервере()
    РС = РегистрыСведений.ШтрихкодыНоменклатуры.Выбрать();
    Пока РС.Следующий() Цикл
        МЗ = РС.ПолучитьМенеджерЗаписи();
        МЗ.Прочитать();
        Мз.Удалить();
    КонецЦикла;
    
КонецПроцедуры

&НаКлиенте
Процедура УдалитьВсеЗаписи(Команда)
    УдалитьВсеЗаписиНаСервере();
КонецПроцедуры
2 Akkreditator
 
05.01.15
20:35
Пропустил НаборЗаписей.Записать() за ошибку не считайте я в курсе
3 Akkreditator
 
05.01.15
20:59
Ну что есть кто поможет?!
4 Ник080808
 
05.01.15
21:01
(3) прочитать
5 Ник080808
 
05.01.15
21:04
(3) кстати вот эту печаль замени
&НаСервере
Процедура УдалитьВсеЗаписиНаСервере()
    РС = РегистрыСведений.ШтрихкодыНоменклатуры.Выбрать();
    Пока РС.Следующий() Цикл
        МЗ = РС.ПолучитьМенеджерЗаписи();
        МЗ.Прочитать();
        Мз.Удалить();
    КонецЦикла;
    
КонецПроцедуры
на
  НаборЗаписей = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьНаборЗаписей();
Наборзаписей.Прочитать();
НаборЗаписей.Записать();
6 Ник080808
 
05.01.15
21:04
(5) кажется так
7 Akkreditator
 
05.01.15
21:33
(5) И все?! А остально прежним оставить?!, ну тогда не будет работать отбор по шк,
8 iceman2112
 
05.01.15
21:44
С трудом понимаю че ты делаешь, и с еще большим трудом что тебе надо. Можно по-русски?
9 Akkreditator
 
05.01.15
21:51
Всем спасибо кто ответил сам разобрался