8.х Результат запроса

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем ЕЛЕНА ЧЕРНЫШЕВА, 7 сен 2015.

  1. TopicStarter Overlay
    ЕЛЕНА ЧЕРНЫШЕВА
    Offline

    ЕЛЕНА ЧЕРНЫШЕВА Опытный в 1С

    Регистрация:
    2 сен 2015
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Два
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Вернее не так
    Есть Заказ 1
    Там в ТЧ материалы есть М1 (производство) и М2(производвство)
    В свою очередб что бы произвести М1 надо произвести Т1, а произвести М2 надо произвести Т2. В свою очередь для производства Т2 надо произвести Р1

    Сколько заказов будет?
  3. TopicStarter Overlay
    ЕЛЕНА ЧЕРНЫШЕВА
    Offline

    ЕЛЕНА ЧЕРНЫШЕВА Опытный в 1С

    Регистрация:
    2 сен 2015
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Три получается.
  4. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Почему?
    Для М1 и М2 делаем заказы? - Да
    Из Заказа М1 - делаем заказ На Т1 - да
    Из Заказа М2 - делаем заказ На Т2 - да
    ИзТ2 - делаем Р1

    или я вас не понимаю.
  5. TopicStarter Overlay
    ЕЛЕНА ЧЕРНЫШЕВА
    Offline

    ЕЛЕНА ЧЕРНЫШЕВА Опытный в 1С

    Регистрация:
    2 сен 2015
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Нет, для М1иМ2-Делаем ЗаказМ1,2
    Из ЗаказаМ1,2Делаем ЗаказТ1,2
    Из ЗаказаТ1,2-делаем ЗаказР1
  6. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ок. более менее разобрались

    Вот Ваш код
    Код:
    Вот код
    Процедура СформироватьВыполнитьНажатие(Сформировать)
    СоздатьДокументЗаказНаПроизводство(Основание);
    КонецПроцедуры
    
    Процедура СоздатьДокументЗаказНаПроизводство(Основание)
    НовыйДокумент = Документы.ЗаказНаПроизводство.СоздатьДокумент();
    НовыйДокумент.Дата = Основание.Дата;
    НовыйДокумент.Заполнить(Основание);
    НовыйДокумент.ЗаполнитьМатериалыПоСпецификации(НовыйДокумент.Материалы, "Материалы");
    НовыйДокумент.ДатаЗапуска = Основание.ДатаЗапуска;
    НовыйДокумент.ДатаИсполнения = Основание.ДатаИсполнения ;
    НовыйДокумент.Записать();
    что именно не получается?
    У вас должна бать рекурсия
    т.е СоздатьДокументЗаказНаПроизводство(Основание);
    основание оно должно меняться каждый раз
  7. TopicStarter Overlay
    ЕЛЕНА ЧЕРНЫШЕВА
    Offline

    ЕЛЕНА ЧЕРНЫШЕВА Опытный в 1С

    Регистрация:
    2 сен 2015
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Да Я на словах объяснить могу, а код написать нет((
  8. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    ну давайте на словах опишите алгоритм
  9. TopicStarter Overlay
    ЕЛЕНА ЧЕРНЫШЕВА
    Offline

    ЕЛЕНА ЧЕРНЫШЕВА Опытный в 1С

    Регистрация:
    2 сен 2015
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Давайте. Мы рассматриваем заказ на производство существующий уже и отбираем материалы с видом воспроизводства (производство) и создаём заказ№1.Затем мы рассматриваем заказ на производство№1 и отбираем материалы с видом воспроизводства (производство) и создаём заказ№2. И так, пока в заказе во вкладке материалы вид воспроизводства не будет стоять покупка во всех строках.
    Правильно Я мыслю?
  10. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    да.
    Если схематично то что вы предложили то буду вашим писарем это как то типа так

    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
       
         СформироватьЗаказы(Основание);
       
    КонецПроцедуры
    
    Процедура СформироватьЗаказы(Основание)
       
        Пока Основание<> Документы.ЗаказНаПроизводство.ПустаяСсылка()Цикл
           
            Основание=СоздатьЗаказНапроизводство(Основание);
           
        КонецЦикла;   
       
    КонецПроцедуры   
    
    
    Функция СоздатьЗаказНаПроизводство(Основание)
       
        Запрос=Новый Запрос;
       
        Запрос.Текст="Тут запрос на выборку номенклатуры которую надо производить";
        Запрос.УстановитьПараметр("Ссылка",основание);//передаем документ основания
        Запрос.УстановитьПараметр("ВидВоспросизводства",Перечисления.ВидыВоспроизводстваНоменклатуры.Производство);
       
        Результат=Запрос.Выполнить();
       
        Если Результат.Пустой()Тогда
           
            Возврат   Документы.ЗаказНаПроизводство.ПустаяСсылка(); //нечего производить возвращаем пустую ссылку что бы выйти из цикла
        Иначе
            Возврат  СоздатьЗаказНаОсновании(Результат.Выбрать());
       
        КонецЦикла;   
       
    КонецФункции   
    
    
    Функция  СоздатьЗаказНаОсновании(Выборка)
       
        НовыйДокумент=Документы.ЗаказНаПроизводство.СоздатьДокумент();
       
        ///тут заполняем его
    
        НовыйДокумент.Записать();
        Возврат НовыйДокумент.Ссылка;
       
    Конецфункции
  11. TopicStarter Overlay
    ЕЛЕНА ЧЕРНЫШЕВА
    Offline

    ЕЛЕНА ЧЕРНЫШЕВА Опытный в 1С

    Регистрация:
    2 сен 2015
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26

    Текст Запроса такой:
    Запрос.Текст ="ВЫБРАТЬ
    | ЗаказНаПроизводствоМатериалы.Номенклатура,
    | ЗаказНаПроизводствоМатериалы.ВидВоспроизводства
    |ИЗ
    | Документ.ЗаказНаПроизводство.Материалы КАК ЗаказНаПроизводствоМатериалы
    |ГДЕ
    | ЗаказНаПроизводствоМатериалы.Ссылка = &ВидВоспроизводства";
  12. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    ну еще отбор по ссылке же нужен. + еще спецификации их нужны
    --- Объединение сообщений, 8 сен 2015 ---
    из того что выше написал там все понятно?
  13. TopicStarter Overlay
    ЕЛЕНА ЧЕРНЫШЕВА
    Offline

    ЕЛЕНА ЧЕРНЫШЕВА Опытный в 1С

    Регистрация:
    2 сен 2015
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Спасибо, не всё конечно понятно, но Я попытаюсь разобраться.
    А как отбор по ссылке прописать ? Так?
    ВЫБРАТЬ
    | ЗаказНаПроизводствоМатериалы.Номенклатура,
    | ЗаказНаПроизводствоМатериалы.ВидВоспроизводства,
    | ЗаказНаПроизводствоМатериалы.Спецификация,
    | ЗаказНаПроизводствоМатериалы.Ссылка
    |ИЗ
    | Документ.ЗаказНаПроизводство.Материалы КАК ЗаказНаПроизводствоМатериалы
    |ГДЕ
    | ЗаказНаПроизводствоМатериалы.Ссылка = &ВидВоспроизводства
  14. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    ВЫБРАТЬ
    | ЗаказНаПроизводствоМатериалы.Номенклатура,
    | ЗаказНаПроизводствоМатериалы.ВидВоспроизводства,
    | ЗаказНаПроизводствоМатериалы.Спецификация,
    | ЗаказНаПроизводствоМатериалы.Ссылка
    |ИЗ
    | Документ.ЗаказНаПроизводство.Материалы КАК ЗаказНаПроизводствоМатериалы
    |ГДЕ
    | ЗаказНаПроизводствоМатериалы.Ссылка = &Ссылка
    | И ЗаказНаПроизводствоМатериалы.ВидВоспроизводства = &ВидВоспроизводства

    но тут один ньюанс вроде же в ТЧ материалы Спецификация - там спецификация продукции которая производиться
  15. TopicStarter Overlay
    ЕЛЕНА ЧЕРНЫШЕВА
    Offline

    ЕЛЕНА ЧЕРНЫШЕВА Опытный в 1С

    Регистрация:
    2 сен 2015
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Там спецификация на все материалы(производство, покупка).
    Последнее редактирование: 9 сен 2015
  16. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    но там спецификация на тот продукт котрый вы производите же.
    Т.е у ва сна певрой вкладке продукт П1, на вкладке материалы у Вас есть М1, но у него же на это вкладке материалы стоит спецификация П1 так же?
  17. TopicStarter Overlay
    ЕЛЕНА ЧЕРНЫШЕВА
    Offline

    ЕЛЕНА ЧЕРНЫШЕВА Опытный в 1С

    Регистрация:
    2 сен 2015
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Да, Вы правы.
  18. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    По этоу вот это
    | ЗаказНаПроизводствоМатериалы.Спецификация,
    не пойдет т.к подтянется спецификация не материала, котрый надо произвести, а продукта который производим.
    А Вам надо спецификацию, я вам уже писал как это делается в какйо из прошлых тем
  19. TopicStarter Overlay
    ЕЛЕНА ЧЕРНЫШЕВА
    Offline

    ЕЛЕНА ЧЕРНЫШЕВА Опытный в 1С

    Регистрация:
    2 сен 2015
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    При запуске выдаёт ошибку:
    {Форма.Форма.Форма(37)}: Ошибка при вызове метода контекста (Выполнить)
    Результат = Запрос.Выполнить();
    по причине:
    {(10, 54)}: Не задано значение параметра "ВидВоспроизводства"
    И ЗаказНаПроизводствоМатериалы.ВидВоспроизводства = <<?>>&ВидВоспроизводства
  20. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    ну Вы этот параметр у запроса установили?

Поделиться этой страницей