|   |   | 
| 
 | Заполнение количества материалов при подборе | ☑ | ||
|---|---|---|---|---|
| 0
    
        Exces- 05.03.15✎ 14:43 | 
        Добрый день!
 Столкнулся с такой проблемой - необходимо реализовать в документе "Заказ-Наряд" автоматическое заполнение количества материалов из регистра "Связанные работы" при подборе материала. Написал запрос Запрос = Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | СвязанныеРаботы.Количество КАК КоличествоМат, | СвязанныеРаботы.СвязаннаяРабота КАК Номенклатура, | СвязанныеРаботы.Авторабота.Родитель, | ЗаказНаряд.Автомобиль.Модель.Автоработы |ИЗ | РегистрСведений.СвязанныеРаботы КАК СвязанныеРаботы | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаряд КАК ЗаказНаряд | ПО СвязанныеРаботы.Авторабота.Родитель = ЗаказНаряд.Автомобиль.Модель.Автоработы | И СвязанныеРаботы.СвязаннаяРабота.Ссылка = ЗаказНаряд.Товары.Номенклатура.Ссылка |ГДЕ | ЗаказНаряд.Автомобиль.Модель.Автоработы <> ЗНАЧЕНИЕ(Справочник.Автоработы.ПустаяСсылка) | |СГРУППИРОВАТЬ ПО | СвязанныеРаботы.СвязаннаяРабота, | СвязанныеРаботы.Количество, | СвязанныеРаботы.Авторабота.Родитель, | ЗаказНаряд.Автомобиль.Модель.Автоработы"; Теперь как выдернуть результат запроса в поле количество при подборе? | |||
| 1
    
        vicof 05.03.15✎ 14:47 | 
        как обычно,выборкой     | |||
| 2
    
        salvator 05.03.15✎ 14:49 | 
        Выгрузить результат запроса в ТЗ и загрузить ее в ТЧ документа?     | |||
| 3
    
        anatoly 05.03.15✎ 14:49 | 
        (0) ничего не понял...     | |||
| 4
    
        GreatOne 05.03.15✎ 14:52 | 
        Для начала запрос отредактируй. Количество просуммируй     | |||
| 5
    
        Nuobu 05.03.15✎ 14:53 | 
        (0) Не так соединение ставишь.
 Нужен заказ наряд + регистр сведений. И выведи номер строки, по нему можно будет определить, к какой строке, какая работа относится. Не забудь проверку на NULL. | |||
| 6
    
        salvator 05.03.15✎ 14:53 | 
        А может там правое соединение надо? Зачем тебе вся таблица регистра?     | |||
| 7
    
        Nuobu 05.03.15✎ 14:54 | 
        (6) Вот и я о том же.
 Нужен именно заказ наряд левое соединение Регистр сведений, а не наоборот. | |||
| 8
    
        vicof 05.03.15✎ 14:58 | 
        Ну и вдобавок, соединение тут внутреннее неявное     | |||
| 9
    
        Exces- 05.03.15✎ 15:06 | 
        Сделал так
 ВЫБРАТЬ СвязанныеРаботы.Количество КАК КоличествоМат, СвязанныеРаботы.СвязаннаяРабота КАК Номенклатура, СвязанныеРаботы.Авторабота.Родитель, ЗаказНаряд.Автомобиль.Модель.Автоработы ИЗ Документ.ЗаказНаряд КАК ЗаказНаряд ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СвязанныеРаботы КАК СвязанныеРаботы ПО (СвязанныеРаботы.СвязаннаяРабота.Ссылка = ЗаказНаряд.Товары.Номенклатура.Ссылка) И (СвязанныеРаботы.Авторабота.Родитель = ЗаказНаряд.Автомобиль.Модель.Автоработы) ГДЕ ЗаказНаряд.Автомобиль.Модель.Автоработы <> ЗНАЧЕНИЕ(Справочник.Автоработы.ПустаяСсылка) И НЕ СвязанныеРаботы.СвязаннаяРабота ЕСТЬ NULL СГРУППИРОВАТЬ ПО СвязанныеРаботы.СвязаннаяРабота, СвязанныеРаботы.Количество, СвязанныеРаботы.Авторабота.Родитель, ЗаказНаряд.Автомобиль.Модель.Автоработы (4) | |||
| 10
    
        Exces- 05.03.15✎ 15:07 | 
        (4) Зачем суммировать? Мне нужно количество по каждой позиции номенклатуры.     | |||
| 11
    
        vicof 05.03.15✎ 15:08 | 
        .Ссылка убрать.
 isnull() добавить | |||
| 12
    
        Nuobu 05.03.15✎ 15:10 | 
        (10) Где номер строки?     | |||
| 13
    
        Exces- 05.03.15✎ 15:17 | 
        (12) А зачем номер строки? Я думал так: при подборе в документе сравниваем наименование Номенклатуры в таб.части с номенклатурой получаемой из запроса, если совпадает - в поле количество подставляем количество из запроса... Прошу прощения за непонимание((     | |||
| 14
    
        vicof 05.03.15✎ 15:19 | 
        (13) А если у двух номенклатур одинаковое наименование?     | |||
| 15
    
        Nuobu 05.03.15✎ 15:20 | 
        (14) Плюс к тому, не наименование, а ссылка. 
 (13) А если ты две одинаковых номенклатуры забил? В этом случае - задвоит. | |||
| 16
    
        Nuobu 05.03.15✎ 15:21 | 
        (9)    И НЕ СвязанныеРаботы.СвязаннаяРабота ЕСТЬ NULL 
 Убери это!!!!! В левое соединение. | |||
| 17
    
        Exces- 05.03.15✎ 16:00 | 
        Постараюсь объяснить подробнее:
 1) Есть документ "Заказ-Наряд", в этом документе мы выбираем "Автомобиль" из справочника "Автомобили", в элементе справочника "Автомобили" есть поле "Модель", в карточке модели есть поле "Автоработы" - Тут мы выбираем Автоработу для определенной модели автомобиля из справочника "Автоработы"(Тут указываются необходимые нормативы расходных материалов при ремонтных работах на определенные автомобили) 2)При добавлении расходных материалов в документ "Заказ-наряд" нужно чтобы нормативы брались из регистра автомобиль-модель-автоработы, и подставлялись в поле количество. То есть по факту в регистре "связанные работы" хранятся данные из Авторабот по разным моделям автомобилей. Материал может быть один и тот же на разные авто и нормативы на все авто тоже разные. | |||
| 18
    
        Exces- 05.03.15✎ 16:13 | 
        Вы реально молодцы, что помогаете таким как я, когда-нибудь я тоже стану гуру и стану помогать новичкам. Но пока что я просто салага попавший в гущу событий, буду благодарен за любую информацию как это сделать.     | |||
| 19
    
        Nuobu 05.03.15✎ 16:24 | 
        Выбрать 
 * ИЗ Справочник.Автоработы.ТабличнаяЧастьДляНеобходимыхНормРасходныхМатериалов КАК ТабличнаяЧастьДляНеобходимыхНормРасходныхМатериалов Левое соединение РегистрСведений.СвязанныеРаботы КАК СвязанныеРаботы ПО ТабличнаяЧастьДляНеобходимыхНормРасходныхМатериалов.Работа = СвязанныеРаботы.Авторабота ГДЕ ТабличнаяЧастьДляНеобходимыхНормРасходныхМатериалов.Ссылка В (Выбрать ЗаказНаряд.Автомобиль.Модель КАК Ссылка из Документ.ЗаказНаряд КАК ЗаказНаряд) | |||
| 20
    
        Exces- 05.03.15✎ 17:15 | 
        ВЫБРАТЬ
 СвязанныеРаботы.Количество ИЗ Документ.ЗаказНаряд КАК ЗаказНаряд ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СвязанныеРаботы КАК СвязанныеРаботы ПО ЗаказНаряд.Товары.Номенклатура.Код = СвязанныеРаботы.СвязаннаяРабота.Код И ЗаказНаряд.Автомобиль.Модель.Автоработы = СвязанныеРаботы.Авторабота.Родитель ГДЕ ЗаказНаряд.Автомобиль = &Автомобиль | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |