Вход | Регистрация

1С:Предприятие ::

Метки: 

Выборка из оборотного регистра накопления

Я
   falselight
 
23.07.18 - 07:30
Есть оборотный регистр. В консоли запросов у него 2 таблицы:
ПотребностиПроизводства
ПотребностиПроизводства.Обороты

Необходимо по нему заполнить табличную часть документа. По условиям
равен ли поставщик номенклатуры в регистре контрагенту из документа
и больше ли одно значение ресурса регистра другого.

Если ПотребностиПроизводства.Номенклатура.ОсновнойПоставщик= Контрагент из Заказа Поставщику
Если ПотребностиПроизводства.КЗАказуПоставщика>ПотребностиПроизводства.ЗаказаноУПоставщика


Из какой таблицы лучше делать выборку?
Если из оборотов то можно наложить условие на саму таблицу.

И где лучше сравнивать ресурсы регистра оборотов?

Наверное уже после выбоки в переборе записей?!!!! Или лучше как то в запросе, что бы сразу загрузить в таблицу значений документа?!
 
  Рекламное место пустует
   shadow_sw
 
1 - 23.07.18 - 07:33
Запрос быстрее будет
   МимохожийОднако
 
2 - 23.07.18 - 07:34
Постановка тех задания непонятная. Нарисуй в Excel или в блокнотике вместо этой мешанины. Как корабль назовешь...Так и с ТЗ.
   falselight
 
3 - 23.07.18 - 08:05
(2)
Есть документ Заявка на машину.
Есть оборотный регистр Потребности производства.
Измерения:
Машина (тип справочник номенлатура),
Материал (тип справочник номенклатура).
Ресурсы:
Заявлено(Тип число, длина 3), 
Зарезервировано (Тип число, длина 3), 
КЗаказуПоставщика(тип число), 
ЗаказаноПоставщику(Тип число, длина 3), 
ПоступилоНаСклад (тип число длина 3), 
Израсходованно (тип число длина 3).

У документа делаю кнопку. По нажатию должна заполняться его тч. Соответственно реквизиты там одноименные или нет не важно.

Хочу узнать как правильнее отобрать записи из регистра. Наложив при этом на него 2 условия. Приведены в (0).

(1)
Если использовать оборотную таблицу запроса в регистре.
То условие 

Если ПотребностиПроизводства.Номенклатура.ОсновнойПоставщик= Контрагент из Заказа Поставщику

можно наложить на саму таблицу.

Но там не используются числовые поля. Где тогда в запросе делать их сравнение и как?
   hhhh
 
4 - 23.07.18 - 08:23
(3) где не используются числовые поля? В этой таблице ПотребностиПроизводства нет числовых полей?
   falselight
 
5 - 23.07.18 - 08:45
(4) В этом оборотном регистре накопления есть:
http://joxi.ru/Q2KzVq6t4d8oym

Нет среди полей отбора на виртуальную таблицу отбора
этого оборотного регистра накопления в запросе:
http://joxi.ru/p27aOExCoxV76r
   falselight
 
6 - 23.07.18 - 08:47
(4) Как мне в запросе сделать отбор записей с условием что

Если ПотребностиПроизводства.КЗАказуПоставщика>ПотребностиПроизводства.ЗаказаноПоставщику

?
   falselight
 
7 - 23.07.18 - 08:52
(4) Можно так?

    Запрос.Текст = "ВЫБРАТЬ
                   |    ПотребностиПроизводстваОбороты.Машина,
                   |    ПотребностиПроизводстваОбороты.Материал,
                   |    ПотребностиПроизводстваОбороты.ЗаявленоОборот КАК Заявлено,
                   |    ПотребностиПроизводстваОбороты.ЗарезервированноОборот КАК Зарезервированно,
                   |    ПотребностиПроизводстваОбороты.КЗаказуПоставщикаОборот КАК КЗаказуПоставщика,
                   |    ПотребностиПроизводстваОбороты.ЗаказаноПоставщикуОборот КАК ЗаказаноПоставщику,
                   |    ПотребностиПроизводстваОбороты.ПоступилоНаСкладОборот КАК ПоступилоНаСклад,
                   |    ПотребностиПроизводстваОбороты.ИзрасходованноОборот КАК Израсходованно
                   |ИЗ
                   |    РегистрНакопления.ПотребностиПроизводства.Обороты(, , , Материал.ОсновнойПоставщик = &Контрагент) КАК ПотребностиПроизводстваОбороты
                   |ГДЕ
                   |    ПотребностиПроизводстваОбороты.КЗаказуПоставщикаОборот > ПотребностиПроизводстваОбороты.ЗаказаноПоставщикуОборот";
   falselight
 
8 - 23.07.18 - 09:05
Протестировать пока только не на чем.

Процедура КоманднаяПанельТоварыЗаполнитьПоПотребностямЗаказа(Кнопка)
    Запрос       = Новый Запрос;
    Запрос.Текст = "
        |ВЫБРАТЬ
        |    ПотребностиПроизводстваОбороты.Машина                     КАК Машина,
        |    ПотребностиПроизводстваОбороты.Материал                   КАК Номенклатура,
        |    ПотребностиПроизводстваОбороты.Материал.ЕдиницаДляОтчетов КАК ЕдиницаИзмерения,
        //|    ПотребностиПроизводстваОбороты.ЗаявленоОборот             КАК Заявлено,

        //|    ПотребностиПроизводстваОбороты.ЗарезервированноОборот     КАК Зарезервированно,

        //|    ПотребностиПроизводстваОбороты.КЗаказуПоставщикаОборот    КАК КЗаказуПоставщика,

        |    ПотребностиПроизводстваОбороты.ЗаказаноПоставщикуОборот   КАК Количество,
        //|    ПотребностиПроизводстваОбороты.ПоступилоНаСкладОборот     КАК ПоступилоНаСклад,

        //|    ПотребностиПроизводстваОбороты.ИзрасходованноОборот       КАК Израсходованно

        |ИЗ
        |    РегистрНакопления.ПотребностиПроизводства.Обороты(, , , Материал.ОсновнойПоставщик = &Контрагент) КАК ПотребностиПроизводстваОбороты
        |ГДЕ
        |    ПотребностиПроизводстваОбороты.КЗаказуПоставщикаОборот > ПотребностиПроизводстваОбороты.ЗаказаноПоставщикуОборот";
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Товары.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры
   falselight
 
9 - 23.07.18 - 09:15
Не подскажет ли кто, кому не в тягость?
Рабочий ли вариант в (8) ?
   breezee
 
10 - 23.07.18 - 12:39
Обожаю ваши темы, я в последнее время на мисту ради них и захожу, еще и по привычке
 
  Рекламное место пустует
   hhhh
 
11 - 23.07.18 - 12:47
(9) издеваешься? Запусти и проверь. Откуда мы можем знать такие интимные вещи? Рабочий или не рабочий? Зачем спрашиваешь?
   МимохожийОднако
 
12 - 23.07.18 - 12:50
(8) Заведи пару документов и протестируй


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