| 
    
            
         
         | 
    
  | 
Запись в регистр сведений программно | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        НатГолубева777    
     23.03.20 
            ✎
    13:41 
 | 
         
        При отладчике "Если Выборка.Ссылка=НайденнаяСсылка Тогда" При истине попадает в "НоваяЗаписьПрайс.Номенклатура = Выборка.Ссылка;".  Посмотрите ПОЖАЛУЙСТА что не так при записи регистра накопления.
 
        Процедура КнопкаВыполнитьНажатие(Элемент) Путь= Константы.ПутьДоФайлов.Получить()+"\"; Док=ПолучитьCOMОбъект(Путь+"GS.xls"); Номенклатура=Док.Sheets(1).Cells(2,8).Value; счСтроки=2; Пока СокрЛП(Номенклатура) <> "" Цикл Номенклатура=Док.Sheets(1).Cells(СчСтроки,8).Value; ШК=Док.Sheets(1).Cells(СчСтроки,2).Value ; Сообщить(Строка(Номенклатура)+"-"+Строка(ШК)); счСтроки=счСтроки+1; СтрокаНаименования = Номенклатура; Ном = Справочники.Номенклатура; НайденнаяСсылка = Ном.НайтиПоНаименованию(СтрокаНаименования); Если НайденнаяСсылка = Ном.ПустаяСсылка() Тогда Сообщить("еще нет"); КонецЕсли; Запрос = Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | Прайс.Номенклатура.Ссылка КАК Ссылка2 |ИЗ | РегистрСведений.Прайс КАК Прайс |ГДЕ | Прайс.Номенклатура.Ссылка В ИЕРАРХИИ(&Ссылка2)"; Запрос.УстановитьПараметр("Ссылка2", НайденнаяСсылка); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи=Результат.Выбрать(); Если Результат.Пустой() Тогда Запрос = Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | Номенклатура.Ссылка КАК Ссылка, | Номенклатура.Наименование КАК Наименование |ИЗ | Справочник.Номенклатура КАК Номенклатура"; //Запрос.УстановитьПараметр("Ссылка3", Справочники.Номенклатура.НайтиПоНаименованию(Номенклатура)); Результат = Запрос.Выполнить(); Выборка=Результат.Выбрать(); Пока Выборка.Следующий() Цикл //Прайс.Отбор.Номенклатура.Установить(Номенклатура); Если Выборка.Ссылка=НайденнаяСсылка Тогда Сообщить("есть"); Прайс = РегистрыСведений.Прайс.СоздатьНаборЗаписей(); НоваяЗаписьПрайс = Прайс.Добавить(); НоваяЗаписьПрайс.Номенклатура = Выборка.Ссылка; Прайс.Записать() КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; Док.Application.Quit(); КонецПроцедуры  | 
|||
| 
    1
    
        mikecool    
     23.03.20 
            ✎
    13:42 
 | 
         
        наверное, все не так     
         | 
|||
| 
    2
    
        mikecool    
     23.03.20 
            ✎
    13:42 
 | 
         
        смотря что тебе нужно получить     
         | 
|||
| 
    3
    
        НатГолубева777    
     23.03.20 
            ✎
    13:45 
 | 
         
        Надо чтобы отразилось в регистре накоплении Прайс.   
 
        НоваяЗаписьПрайс.Номенклатура = Выборка.Ссылка;-в отладчике нормально все как должно. Но в пользовательском регистре они неотобразились.  | 
|||
| 
    4
    
        НатГолубева777    
     23.03.20 
            ✎
    13:45 
 | 
         
        регистр сведений не накоплений     
         | 
|||
| 
    5
    
        Случайный прохожий    
     23.03.20 
            ✎
    13:46 
 | 
         
        Добавить одну запись? Используй СоздатьМенеджерЗаписи()     
         | 
|||
| 
    6
    
        НатГолубева777    
     23.03.20 
            ✎
    13:46 
 | 
         
        Если Выборка.Ссылка=НайденнаяСсылка Тогда
 
        Сообщить("есть"); Прайс = РегистрыСведений.Прайс.СоздатьНаборЗаписей(); НоваяЗаписьПрайс = Прайс.Добавить(); НоваяЗаписьПрайс.Номенклатура = Выборка.Ссылка; Прайс.Записать() КонецЕсли; ????????  | 
|||
| 
    7
    
        hhhh    
     23.03.20 
            ✎
    13:47 
 | 
         
        (6) отбора нет в регистре. А если пишем без отбора, то регистр полностью очищается. У вас должна быть одна строчка в регистре.     
         | 
|||
| 
    8
    
        НатГолубева777    
     23.03.20 
            ✎
    13:48 
 | 
         
        одна да попадает но не то что надо     
         | 
|||
| 
    9
    
        butterbean    
     23.03.20 
            ✎
    13:49 
 | 
         
        (5) не понимаю людей, которые пользуются для программной записи менеджером вместо набора. Даже в СП написано, что менеджер "...Предназначен для интерактивной работы с записью регистра сведений.... "     
         | 
|||
| 
    10
    
        Случайный прохожий    
     23.03.20 
            ✎
    13:50 
 | 
         
        (9) А как иначе? У него получается набор записей без отбора     
         | 
|||
| 
    11
    
        butterbean    
     23.03.20 
            ✎
    13:50 
 | 
         
        (10) надо отбор значит установить     
         | 
|||
| 
    12
    
        Случайный прохожий    
     23.03.20 
            ✎
    13:52 
 | 
         
        (11) Он привел всего одно измерение, по которому нельзя установить отбор. В текущем контексте постановки эта задача через набор записей не решается.     
         | 
|||
| 
    13
    
        НатГолубева777    
     23.03.20 
            ✎
    14:02 
 | 
         
        Если Выборка.Ссылка=НайденнаяСсылка Тогда
 
        Сообщить("есть"); МенеджерЗаписиПрайс=РегистрыСведений.Прайс; МенеджерЗаписи=МенеджерЗаписиПрайс.СоздатьМенеджерЗаписи(); МенеджерЗаписи.Номенклатура=Выборка.Ссылка; МенеджерЗаписи.Записать(); КонецЕсли; Исправила на Менеджер записи... Час добавляет почему то 1 строку регистра добавляет не то что надо а потом идет нормальная запись. Почему так?  | 
|||
| 
    14
    
        НатГолубева777    
     23.03.20 
            ✎
    14:17 
 | 
         
        Час нормально добавляет     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |