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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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