Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

МетаданныеОбъект.Измерения пишет ошибку не находит измерения

МетаданныеОбъект.Измерения пишет ошибку не находит измерения
Я
   1сЮлия
 
15.04.19 - 10:42
Доброе утро!МетаданныеОбъект.Измерения пишет ошибку не находит измерения,я так понимаю не находит объет
роцедура ЗаполнитьДвижениеСторно(Движение, Строка, МетаданныеОбъект)
     // измерения
    Для Каждого МДОбъект из МетаданныеОбъект.Измерения Цикл
        Движение[МДОбъект.Имя] = Строка[МДОбъект.Имя];
    КонецЦикла;

    // ресурсы
    Для Каждого МДОбъект из МетаданныеОбъект.Ресурсы Цикл
        Движение[МДОбъект.Имя] = - Строка[МДОбъект.Имя];
    КонецЦикла;
        
    // реквизиты
    Для Каждого МДОбъект из МетаданныеОбъект.Реквизиты Цикл
        Движение[МДОбъект.Имя] = Строка[МДОбъект.Имя];
    КонецЦикла;

КонецПроцедуры // ЗаполнитьДвижениеСторно

    

// Формирует закладки формы с текущими движениями сторнируемого документа.
//
Процедура ОбновитьДвиженияДокумента(ВзятьДвиженияИзДокументаОснования = Истина)
    МетаданныеОбъект=РегистрыНакопления.ОперацииКВЛ;
    НаборЗаписей = РегистрыНакопления.аэсОперацииКВЛ.СоздатьНаборЗаписей();
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    
    "ВЫБРАТЬ
     |    аэсОперацииКВЛОстаткиИОбороты.ВидОперации,
     |    аэсОперацииКВЛОстаткиИОбороты.Номенклатура как Номенклатура,
     |    аэсОперацииКВЛОстаткиИОбороты.СерияНоменклатуры как СерияНоменклатуры ,
     |    аэсОперацииКВЛОстаткиИОбороты.Участок как Участок,
     |    аэсОперацииКВЛОстаткиИОбороты.Состояние как Состояние,
     |    аэсОперацииКВЛОстаткиИОбороты.КоличествоНачальныйОстаток как КоличествоНачальныйОстаток,
     |    аэсОперацииКВЛОстаткиИОбороты.КоличествоКонечныйОстаток как КоличествоКонечныйОстаток ,
     |    аэсОперацииКВЛОстаткиИОбороты.КоличествоОборот как КоличествоОборот ,
     |    аэсОперацииКВЛОстаткиИОбороты.КоличествоПриход как КоличествоПриход ,
     |    аэсОперацииКВЛОстаткиИОбороты.КоличествоРасход как КоличествоРасход
     |ИЗ
     |    РегистрНакопления.ОперацииКВЛ.ОстаткиИОбороты КАК ОперацииКВЛОстаткиИОбороты
     |ГДЕ
     |    аэсОперацииКВЛОстаткиИОбороты.СерияНоменклатуры = &СерияНоменклатуры";
    
     Запрос.УстановитьПараметр("СерияНоменклатуры", СерияНоменклатуры);
      
    РезультатЗапроса =Запрос.Выполнить().Выгрузить();

    Для Каждого ДвижениеСторнируемое Из РезультатЗапроса  Цикл
            Движение = НаборЗаписей.Добавить();
            
    ЗаполнитьДвижениеСторно(Движение, ДвижениеСторнируемое, МетаданныеОбъект);
        
    КонецЦикла;
 
 
   Галахад
 
1 - 15.04.19 - 10:49
Наверное документ основание не заполнен.
   Ёпрст
 
2 - 15.04.19 - 10:52
(0) Это че за бред (не Пит) ?

   Для Каждого МДОбъект из МетаданныеОбъект.Измерения Цикл 
        Движение[МДОбъект.Имя] = Строка[МДОбъект.Имя]; 
   КонецЦикла; 

   1сЮлия
 
3 - 15.04.19 - 10:53
Мне нужно сторнировать запись регистра
   Ёпрст
 
4 - 15.04.19 - 10:54
И еще.. откройте для себя метод
ЗаполнитьЗначенияСвойств ..и забудьте про метаданные
   Ёпрст
 
5 - 15.04.19 - 10:54
(3) и поэтому вы в измерения и ресурчы регистра решили строки пихать ?
   Ёпрст
 
6 - 15.04.19 - 10:56
и .. остаткиИОбороты тоже не нужны для сторно, как бэ..
   Ёпрст
 
7 - 15.04.19 - 10:56
и..результаты запроса потом нигде не используются вообще.
   Ёпрст
 
8 - 15.04.19 - 10:57
Короче, всё в топку, и читайте про (4)
   catena
 
9 - 15.04.19 - 11:00
(5)Там нет строк, там Строка[, а не Строка(. Это из типовой процедура.
(0)Текст ошибки-то будет, не?
   Ёпрст
 
10 - 15.04.19 - 11:08
(9) вижу да..
Всё равно, код в топку )

А автор просто не все измерения указал в тексте запроса
 
 Рекламное место пустует
   1сЮлия
 
11 - 15.04.19 - 11:09
я знаю код переписую
   1сЮлия
 
12 - 15.04.19 - 11:10
Запросом вытягиваю строки по заданному параметру и сторнирую записи
   Ёпрст
 
13 - 15.04.19 - 11:14
(12) в запросе поставь минус перед ресурсами регистра и выкини остатки оттуда.
На выходе запроса делай просто 
  Для Каждого ДвижениеСторнируемое Из РезультатЗапроса  Цикл 
            Движение = НаборЗаписей.Добавить(); 
            ЗаполнитьЗначениеСвойств(Движение,ДвижениеСторнируемое);
  КонецЦикла;

усё
   hhhh
 
14 - 15.04.19 - 11:16
(12)    аэсОперацииКВЛОстаткиИОбороты.КоличествоНачальныйОстаток как КоличествоНачальныйОстаток,
     |    аэсОперацииКВЛОстаткиИОбороты.КоличествоКонечныйОстаток как КоличествоКонечныйОстаток ,
     |    аэсОперацииКВЛОстаткиИОбороты.КоличествоОборот как КоличествоОборот ,
     |    аэсОперацииКВЛОстаткиИОбороты.КоличествоПриход как КоличествоПриход ,
     |    аэсОперацииКВЛОстаткиИОбороты.КоличествоРасход как КоличествоРасход 


это что за хрень?

реально думаешь, что в метаданных есть такое?

КоличествоНачальныйОстаток, КоличествоПриход ????
   Ёпрст
 
15 - 15.04.19 - 11:16
и..можно делать просто так:

   Выборка=Запрос.Выполнить().Выбрать(); 
   Пока Выборка.Следующий()  Цикл 
          ЗаполнитьЗначениеСвойств(НаборЗаписей.Добавить(),Выборка);
   КонецЦикла;


   1сЮлия
 
16 - 15.04.19 - 11:18
Чего то ругается {Документ.аэсСторноИЗаменаСерииВОперациеКВЛ.Форма.ФормаДокумента.Форма(56,11)}: Процедура або функція з вказаним ім`ям не визначена (ЗаполнитьЗначениеСвойств)Это УПП
   1сЮлия
 
17 - 15.04.19 - 11:22
Не находит эту функцию
   1сЮлия
 
18 - 15.04.19 - 11:25
Всё то ошибка синтаксическая ЗаполнитьЗначенияСвойств
   hhhh
 
19 - 15.04.19 - 13:15
(18) текст программы?
   1сЮлия
 
20 - 15.04.19 - 14:43
Прогаммой трудно назвать запрос выбираю записи регистра накопления с параметром серия сторнирую,а потом добавляю новые записи только с новой серией
   Mankubus
 
21 - 15.04.19 - 15:26
(16) не значениЕ а значениЯ
   1сЮлия
 
22 - 15.04.19 - 16:08
Да , хотела заменить      
Движение.Период                 = Дата;
          Движение.СерияНоменклатуры      = Выборка.СерияНоменклатуры;
          Движение.Номенклатура           = Выборка.Номенклатура;
          Движение.Состояние      = Выборка.Состояние;
          Движение.ВидОперации =Выборка.ВидОперации;
          Движение.Участок=Выборка.Участок;
          Движение.Количество=-1;        
          Движение.КонтролерОТК=Выборка.КонтролерОТК; на   ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(),Выборка) и перед ресурсом указываю -,мне выдает приход и минуса не выводит ;
я прописала
ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(),Выборка);
НаборЗаписей.Добавить()ВидДвижения=ВидДвиженияНакопления.Расход;ругается период не должен быть пустым

    НаборЗаписей =Движения.аэсОперацииКВЛ;
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
      |    аэсОперацииКВЛ.Период,
      |    аэсОперацииКВЛ.Регистратор,
      |    аэсОперацииКВЛ.НомерСтроки,
      |    аэсОперацииКВЛ.Активность,
      |    аэсОперацииКВЛ.ВидДвижения,
      |    аэсОперацииКВЛ.ВидОперации,
      |    аэсОперацииКВЛ.Номенклатура,
      |    аэсОперацииКВЛ.СерияНоменклатуры,
      |    аэсОперацииКВЛ.Участок,
      |    аэсОперацииКВЛ.Состояние,
      |-(аэсОперацииКВЛ.Количество),
      |    аэсОперацииКВЛ.КонтролерОТК
      |ИЗ
      |    РегистрНакопления.аэсОперацииКВЛ КАК аэсОперацииКВЛ
      |ГДЕ
      |    аэсОперацииКВЛ.СерияНоменклатуры = &СерияНоменклатуры" ;

    
   Запрос.УстановитьПараметр("СерияНоменклатуры", СерияНоменклатуры);
   Движение = НаборЗаписей.Добавить();
   Выборка=Запрос.Выполнить().Выбрать(); 
   Пока Выборка.Следующий()  Цикл 
      //    ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(),Выборка);

           Движение.Период                 = Дата;
          Движение.СерияНоменклатуры      = Выборка.СерияНоменклатуры;
          Движение.Номенклатура           = Выборка.Номенклатура;
          Движение.Состояние      = Выборка.Состояние;
          Движение.ВидОперации =Выборка.ВидОперации;
          Движение.Участок=Выборка.Участок;
          Движение.Количество=-1;        
          Движение.КонтролерОТК=Выборка.КонтролерОТК;
        Движение.ВидДвижения=ВидДвиженияНакопления.Расход;
    КонецЦикла;
   Ёпрст
 
23 - 15.04.19 - 16:22
(22) и.. зачем в одну строку(движение) писать всё ?
Так, чего не работает ?
   Запрос.УстановитьПараметр("СерияНоменклатуры", СерияНоменклатуры);
   Выборка=Запрос.Выполнить().Выбрать(); 
   Пока Выборка.Следующий()  Цикл 
         ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(),Выборка);
   КонецЦикла;
   1сЮлия
 
24 - 15.04.19 - 16:40
Я так и пишу как у вас,у меня Движение.ВидДвижения=ВидДвиженияНакопления.Приход,а мне нужно,чтобы был расход,да оно копирует всё из запроса, а когда перед ресурсом ставлю - выводит пустое значение;
ВЫБРАТЬ
    аэсОперацииКВЛОбороты.ВидОперации,
    аэсОперацииКВЛОбороты.Номенклатура,
    аэсОперацииКВЛОбороты.СерияНоменклатуры,
    аэсОперацииКВЛОбороты.Участок,
    аэсОперацииКВЛОбороты.Состояние,
    -аэсОперацииКВЛОбороты.КоличествоОборот КАК Поле1,
    -аэсОперацииКВЛОбороты.КоличествоПриход КАК Поле2,
    аэсОперацииКВЛОбороты.КоличествоРасход
ИЗ
    РегистрНакопления.аэсОперацииКВЛ.Обороты(&Дата, , , ) КАК аэсОперацииКВЛОбороты
   1Сергей
 
25 - 15.04.19 - 16:44
(22) ты же понимаешь, что оно две записи добавляет?

ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(),Выборка);
НаборЗаписей.Добавить()ВидДвижения=ВидДвиженияНакопления.Расход;ругается период не должен быть пустым
   1сЮлия
 
26 - 15.04.19 - 16:52
Вот поэтому   НаборЗаписей =Движения.аэсОперацииКВЛ;
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
      |    аэсОперацииКВЛ.Период,
      |    аэсОперацииКВЛ.Регистратор,
      |    аэсОперацииКВЛ.НомерСтроки,
      |    аэсОперацииКВЛ.Активность,
      |    аэсОперацииКВЛ.ВидДвижения,
      |    аэсОперацииКВЛ.ВидОперации,
      |    аэсОперацииКВЛ.Номенклатура,
      |    аэсОперацииКВЛ.СерияНоменклатуры,
      |    аэсОперацииКВЛ.Участок,
      |    аэсОперацииКВЛ.Состояние,
      |-(аэсОперацииКВЛ.Количество),
      |    аэсОперацииКВЛ.КонтролерОТК
      |ИЗ
      |    РегистрНакопления.аэсОперацииКВЛ КАК аэсОперацииКВЛ
      |ГДЕ
      |    аэсОперацииКВЛ.СерияНоменклатуры = &СерияНоменклатуры" ;

    
   Запрос.УстановитьПараметр("СерияНоменклатуры", СерияНоменклатуры);
   Движение = НаборЗаписей.Добавить();
   Выборка=Запрос.Выполнить().Выбрать(); 
   Пока Выборка.Следующий()  Цикл 
      //    ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(),Выборка);

           Движение.Период                 = Дата;
          Движение.СерияНоменклатуры      = Выборка.СерияНоменклатуры;
          Движение.Номенклатура           = Выборка.Номенклатура;
          Движение.Состояние      = Выборка.Состояние;
          Движение.ВидОперации =Выборка.ВидОперации;
          Движение.Участок=Выборка.Участок;
          Движение.Количество=-1;        
          Движение.КонтролерОТК=Выборка.КонтролерОТК;
        Движение.ВидДвижения=ВидДвиженияНакопления.Расход;
    КонецЦикла;
   1сЮлия
 
27 - 15.04.19 - 16:53
или есть другой вариант?
   1сЮлия
 
28 - 15.04.19 - 16:56
да только вот эту строку Движение.Количество=-1 подправить нужно;
   Ёпрст
 
29 - 16.04.19 - 10:11
(27) есть. Виддвижения какой надо воткнуть в текст запроса, далее, (23)
   Ёпрст
 
30 - 16.04.19 - 10:12
(26) это вообще за гранью.. вы в одно движение пишете что-то циклом из выборки. Многократно перетирая данные


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует