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

Как зная одно значение измерения регистра сведений найти другое

Как зная одно значение измерения регистра сведений найти другое
Я
   1сЮлия
 
15.03.19 - 12:12
Добрый день!К примеру у меня измерения регистра  ВидОпрерации,Подразделение,ТипАнализа. Мне нужно найти по ВидуОперации,найти значение ТипаАнализа.К примеру  (ВидОперации = Перечисления.ВидыОпераций...) тогда
 
 
   Мыш
 
1 - 15.03.19 - 12:14
(0) А если там несколько значений, что делать?
   Aleksandr N
 
2 - 15.03.19 - 12:14
Вон из профессии!
   1сЮлия
 
3 - 15.03.19 - 12:15
Да вопрос!
   1сЮлия
 
4 - 15.03.19 - 12:16
Вы так зря говорите может вопросы у меня иногда дуратские я согласна,ну пишк я неплохо,и форум для чего,вообще?
   1сЮлия
 
5 - 15.03.19 - 12:17
С заданиями я своими справляюсь и заказчики не жалуются.
   Василий Алибабаевич
 
6 - 15.03.19 - 12:18
(5) ГЫ. Может они просто дотянуться не могут?
   FIXXXL
 
7 - 15.03.19 - 12:18
(5) дык они кода не видят, чЁ им жаловаться...
   Вафель
 
8 - 15.03.19 - 12:19
ну так запросом найди?
ты запросы уже изучила?
   1сЮлия
 
9 - 15.03.19 - 12:19
Дуратские бывают в основном из за спешки.
   1сЮлия
 
10 - 15.03.19 - 12:19
Да конечно.Процедура ЗаполнитьПоТиповомуАнализу()
   Если (ВидОперации = Перечисления.ВидыОперацийКВЛ.МеханическиеИспытания) тогда
        ТиповойАнализ = Справочники.ТиповыеАнализыНоменклатуры.НайтиПоНаименованию("Механические свойства");
            Если ТиповойАнализ = Неопределено Тогда
                Возврат;
            КонецЕсли;
        
          Анализы.Очистить();
            
        Для Каждого ТекПоказатель Из ТиповойАнализ.ПоказателиАнализа Цикл
            
            НоваяСтрока = Анализы.Добавить();
            НоваяСтрока.ПоказательАнализа = ТекПоказатель.ПоказательАнализа;
            УстановитьТипЗначенияПоказателяВСтроке(НоваяСтрока);
            НоваяСтрока.ЕдиницаИзмерения =
                ?(  НоваяСтрока.ПоказательАнализа.ВидРезультатаАнализа = ПланыВидовХарактеристик.ВидыРезультатовАнализаНоменклатуры.ЧислоВИнтервале
                ИЛИ НоваяСтрока.ПоказательАнализа.ВидРезультатаАнализа = ПланыВидовХарактеристик.ВидыРезультатовАнализаНоменклатуры.Погрешность
                ИЛИ НоваяСтрока.ПоказательАнализа.ВидРезультатаАнализа = ПланыВидовХарактеристик.ВидыРезультатовАнализаНоменклатуры.Поддиапазон,
                НоваяСтрока.ПоказательАнализа.ЕдиницаИзмерения,
                Неопределено);
                
        КонецЦикла;
 КонецЕсли;
КонецПроцедуры// ЗаполнитьПоТиповомуАнализу()
 
 Рекламное место пустует
   Aleksandr N
 
11 - 15.03.19 - 12:20
(4), (9) "дуратские", ага.
   1сЮлия
 
12 - 15.03.19 - 12:20
Я вообще так написала.
   Aleksandr N
 
13 - 15.03.19 - 12:21
(10) ТиповойАнализ не может быть равно неопределено.
Еще раз: вон из профессии!
   1сЮлия
 
14 - 15.03.19 - 12:21
Но мне сказали добавить в регистр измерение ТиповойАнализ и тянуть от туда,хотя я согласна,у вида операции могут быть разные Анализы.
   1сЮлия
 
15 - 15.03.19 - 12:22
Согласна не равно ПустаяСсылка
   FIXXXL
 
16 - 15.03.19 - 12:22
(10) Сделай РС СоответствияВсейЭтойХерни
и оттуда тягай запросом
   shuhard
 
17 - 15.03.19 - 12:23
(5) сама тупая и закзачики дебилы ?
   1сЮлия
 
18 - 15.03.19 - 12:25
Не хочешь,не отвечай,а оскорблять не нужно,всемы тупим по своему смотри за собой.
   1сЮлия
 
19 - 15.03.19 - 12:27
ТиповойАнализ = Справочники.ТиповыеАнализыНоменклатуры.НайтиПоНаименованию("Механические свойства");Мне нужно эту часть не со справочника,а регистра тянуть
   Василий Алибабаевич
 
20 - 15.03.19 - 12:29
(19) Ну давай. Колись - что останавливает сделать так, как сказали?
   1сЮлия
 
21 - 15.03.19 - 12:30
То,что у вида операции могут быть разные Анализы.
   Василий Алибабаевич
 
22 - 15.03.19 - 12:32
(21) Это не причина остановки. Это - условия задачи. Вопрос - почему ты этого не сделала? Что не получилось?
   Cyberhawk
 
23 - 15.03.19 - 12:34
В объектной модели в общем случае никак, т.к. МЗ требует установки всех значений измерений перед чтением, а для отбора НЗ есть нюансы в зависимости от подчиненности регистратору.
Запросом - пожалуйста.
   1сЮлия
 
24 - 15.03.19 - 12:37
Говорят,что будет соответствие один к одному.
   Smile 8D
 
25 - 15.03.19 - 12:41
(24) Тогда поверь им и получай запросом, но на всякий случай обработай ситуацию с несколькими, бери первый, например. И заказчика предупреди об этом.
   Smile 8D
 
26 - 15.03.19 - 12:45
(24) И еще вопрос откуда брать подразделение. Или там тоже всегда одинаковое значение будет? Если так, то правильнее, конечно, хранить соответствия в реквизите "Вида операции" (или отдельном регистре сведений, если нужна история изменений), но если заказчик говорит привязываться к текущим данным, то брать из существующего регистра.
   1сЮлия
 
27 - 15.03.19 - 12:48
Спасибо! Я думаю как правильно реализовать.
   1сЮлия
 
28 - 15.03.19 - 13:10
Подскажите что может быть,типа несоответствие типов параметр1 СтруктураОтбора=Новый Структура("ВидОперации",ВидОперации);
        СтруктураОтбора.Вставить("Подразделение",Подразделение);
        Период=Дата;
         Значение=РегистрыСведений.Операции.Получить(Период,СтруктураОтбора);
   Aleksandr N
 
29 - 15.03.19 - 13:11
Твой регистр сведений скорее всего не периодический.
   1сЮлия
 
30 - 15.03.19 - 13:12
Точно.
   Smile 8D
 
31 - 15.03.19 - 14:08
(27) Правильно реализовать через запрос, но, судя по постоянному желанию использовать менеджер регистра, с запросами какие-то проблемы.
   1сЮлия
 
32 - 15.03.19 - 14:45
Вот я реализвала всё работает
Процедура ЗаполнитьПоТиповомуАнализу()
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
    
    "ВЫБРАТЬ
     |    аэсВидыОперацийКВЛпоЦехам.ТипАнализа
     |ИЗ
     |    РегистрСведений.аэсВидыОперацийКВЛпоЦехам КАК аэсВидыОперацийКВЛпоЦехам
     |ГДЕ
     |    аэсВидыОперацийКВЛпоЦехам.Подразделение = &Подразделение
     |    И аэсВидыОперацийКВЛпоЦехам.ВидОперацииКВЛ = &ВидОперацииКВЛ";
     
     Запрос.УстановитьПараметр("Подразделение",Подразделение);
     Запрос.УстановитьПараметр("ВидОперацииКВЛ",ВидОперации);
     
    Результат = Запрос.Выполнить();
    Если НЕ Результат.Пустой() Тогда
         Выборка = Результат.Выбрать();
         Если Выборка.Следующий() тогда
               ТипАнализа=Выборка.ТипАнализа;
         КонецЕсли;
    КонецЕсли;
    Если (ВидОперации = Перечисления.аэсВидыОперацийКВЛ.МеханическиеИспытания) тогда
          ТиповойАнализ = ТипАнализа;
        
            Если ТиповойАнализ = Справочники.ТиповыеАнализыНоменклатуры.ПустаяСсылка() Тогда
                Возврат;
            КонецЕсли;
        
          Анализы.Очистить();
                    
        Для Каждого ТекПоказатель Из ТиповойАнализ.ПоказателиАнализа Цикл
            
            НоваяСтрока = Анализы.Добавить();
            НоваяСтрока.ПоказательАнализа = ТекПоказатель.ПоказательАнализа;
            УстановитьТипЗначенияПоказателяВСтроке(НоваяСтрока);
            НоваяСтрока.ЕдиницаИзмерения =
                ?(  НоваяСтрока.ПоказательАнализа.ВидРезультатаАнализа = ПланыВидовХарактеристик.ВидыРезультатовАнализаНоменклатуры.ЧислоВИнтервале
                ИЛИ НоваяСтрока.ПоказательАнализа.ВидРезультатаАнализа = ПланыВидовХарактеристик.ВидыРезультатовАнализаНоменклатуры.Погрешность
                ИЛИ НоваяСтрока.ПоказательАнализа.ВидРезультатаАнализа = ПланыВидовХарактеристик.ВидыРезультатовАнализаНоменклатуры.Поддиапазон,
                НоваяСтрока.ПоказательАнализа.ЕдиницаИзмерения,
                Неопределено);
                
        КонецЦикла;
 КонецЕсли;
КонецПроцедуры// ЗаполнитьПоТиповомуАнализу()

Спамтбо большое!!!
   1сЮлия
 
33 - 15.03.19 - 14:47
Спасибо большое всем!!
 
 
   13_Mult
 
34 - 15.03.19 - 15:00
(32) А если запрос будет Пустой ? Что у вас попадёт в "ТиповойАнализ = ТипАнализа;" ?
   Smile 8D
 
35 - 15.03.19 - 15:36
(32) Так же логичнее делать запрос тогда когда это необходимо, а не каждый раз. Т.е. выполнять его после проверки ВидаОперации. Ну и всякие мелкие оптимизации: для проверки удобнее использовать ЗначениеЗаполнено, можно компактнее обрабатывать результат запроса, проверять заполнение сразу в запросе и т.д.
   1сЮлия
 
36 - 15.03.19 - 15:56
Да спасибо большое,переделаю.


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