Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 16:30

Создание заказаов на производство на основании заказа на производство.

Автор Елена1986, 08 сен 2015, 10:00

0 Пользователей и 1 гость просматривают эту тему.

Елена1986

Цитата: Luzer1C от 08 сен 2015, 11:58
Для Сч = 1 По 10 Цикл
    НовыйДокумент1 = НовыйДокумент.Скопировать();
    НовыйДокумент1.Записать();
КонецЦикла;


Где 10 - количество скопированных документов
Теперь он создал 10 одинаковых "вторых" заказов:nhsrm:

Luzer1C

Халамбалам.

Елена1986

Цитата: Luzer1C от 09 сен 2015, 07:08
Опять же не ясно что Вам нужно.
Здравствуйте, мне нужно создать заказы на основании существующего заказа.
Из существующего заказа на производство выбираются материалы с видом воспроизводства(производство) и помещаются в первый заказ на производство. Из первого заказа на производства выбираются материалы с видом воспроизводства(производство) и помещаются во второй заказ на производство.
Мы рассматриваем заказ на производство существующий уже и отбираем материалы с видом воспроизводства (производство) и создаём заказ№1.Затем мы рассматриваем заказ на производство№1 и отбираем материалы с видом воспроизводства (производство) и создаём заказ№2. И так, пока в заказе во вкладке материалы вид воспроизводства не будет стоять покупка во всех строках.
Правильно Я мыслю?

vitasw

Правильно, правильно.
Только создавать документы надо с конца, во избежание, так сказать....

Елена1986

Цитата: vitasw от 09 сен 2015, 09:19
Правильно, правильно.
Только создавать документы надо с конца, во избежание, так сказать....
Поправите пожалуйста
код:
Процедура СформироватьВыполнитьНажатие(Сформировать)
   
     СформироватьЗаказы(Основание);
   
КонецПроцедуры

Процедура СформироватьЗаказы(Основание)
   
    Пока Основание<> Документы.ЗаказНаПроизводство.ПустаяСсылка()Цикл
       
        Основание=СоздатьЗаказНапроизводство(Основание);
       
    КонецЦикла;   
   
КонецПроцедуры   


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

    Запрос.УстановитьПараметр("Ссылка",Основание);
   Запрос.УстановитьПараметр("ВидВоспроизводства",Перечисления.ВидыВоспроизводстваНоменклатуры.Производство);
    Результат = Запрос.Выполнить();
   
    Если Результат.Пустой()Тогда
       
        Возврат   Документы.ЗаказНаПроизводство.ПустаяСсылка();
    Иначе
        Возврат  СоздатьЗаказНаОсновании(Результат.Выбрать());
     
       КонецЕсли
КонецФункции   


Функция  СоздатьЗаказНаОсновании(Выборка)
   
    НовыйДокумент=Документы.ЗаказНаПроизводство.СоздатьДокумент();
   НовыйДокумент.Дата = Основание.Дата;
   НовыйДокумент.Заполнить(Основание);
   НовыйДокумент.ЗаполнитьМатериалыПоСпецификации(НовыйДокумент.Материалы, "Материалы");
   НовыйДокумент.ДатаЗапуска = Основание.ДатаЗапуска;
   НовыйДокумент.ДатаИсполнения = Основание.ДатаИсполнения;
    НовыйДокумент.Записать();
    Возврат НовыйДокумент.Ссылка;
   
Конецфункции
Создаёт два заказа, первый заполнен верно, а второй пуст.

vitasw

Цитата: Елена1986 от 09 сен 2015, 09:28Создаёт два заказа, первый заполнен верно, а второй пуст.
Ну, это ожидаемо. Скажите, у вас принципиальная нелюбовь к отладчику? или просто хочется поговорить?

Цитата: Елена1986 от 09 сен 2015, 09:28Возврат  СоздатьЗаказНаОсновании(Результат.Выбрать());
Передача в процедуру выборки из запроса

Цитата: Елена1986 от 09 сен 2015, 09:28Функция  СоздатьЗаказНаОсновании(Выборка)
   
    НовыйДокумент=Документы.ЗаказНаПроизводство.СоздатьДокумент();
   НовыйДокумент.Дата = Основание.Дата;
   НовыйДокумент.Заполнить(Основание);
Благополучно херится выборка и создается документ на основании, даже не знаю чего. Наверное, у текущего документа есть реквизит основание, вот на основании этого реквизита и создается новый документ.
Пока вы не начнете разбираться в том, что сами же и пишите - результата не будет.

Елена1986

Цитата: vitasw от 09 сен 2015, 10:14
Цитата: Елена1986 от 09 сен 2015, 09:28Создаёт два заказа, первый заполнен верно, а второй пуст.
Ну, это ожидаемо. Скажите, у вас принципиальная нелюбовь к отладчику? или просто хочется поговорить?

Цитата: Елена1986 от 09 сен 2015, 09:28Возврат  СоздатьЗаказНаОсновании(Результат.Выбрать());
Передача в процедуру выборки из запроса

Цитата: Елена1986 от 09 сен 2015, 09:28Функция  СоздатьЗаказНаОсновании(Выборка)
   
    НовыйДокумент=Документы.ЗаказНаПроизводство.СоздатьДокумент();
   НовыйДокумент.Дата = Основание.Дата;
   НовыйДокумент.Заполнить(Основание);
Благополучно херится выборка и создается документ на основании, даже не знаю чего. Наверное, у текущего документа есть реквизит основание, вот на основании этого реквизита и создается новый документ.
Пока вы не начнете разбираться в том, что сами же и пишите - результата не будет.
Извините, если "туплю", но Я только учусь. Исправте,если не сложно. Если Основание заменить на выборку,- получаем один заказ и он пуст.
Добавлено: 09 сен 2015, 10:25


Цитата: Елена1986 от 09 сен 2015, 10:23
Цитата: vitasw от 09 сен 2015, 10:14
Цитата: Елена1986 от 09 сен 2015, 09:28Создаёт два заказа, первый заполнен верно, а второй пуст.
Ну, это ожидаемо. Скажите, у вас принципиальная нелюбовь к отладчику? или просто хочется поговорить?

Цитата: Елена1986 от 09 сен 2015, 09:28Возврат  СоздатьЗаказНаОсновании(Результат.Выбрать());
Передача в процедуру выборки из запроса

Цитата: Елена1986 от 09 сен 2015, 09:28Функция  СоздатьЗаказНаОсновании(Выборка)
   
    НовыйДокумент=Документы.ЗаказНаПроизводство.СоздатьДокумент();
   НовыйДокумент.Дата = Основание.Дата;
   НовыйДокумент.Заполнить(Основание);
Благополучно херится выборка и создается документ на основании, даже не знаю чего. Наверное, у текущего документа есть реквизит основание, вот на основании этого реквизита и создается новый документ.
Пока вы не начнете разбираться в том, что сами же и пишите - результата не будет.
Извините, если "туплю", но Я только учусь. Исправте,если не сложно. Если Основание заменить на выборку,- получаем один заказ и он пуст.
видимо результат запроса пуст, значит в запросе ошибка.

vitasw


Елена1986


Luzer1C

ЦитироватьЗа гаданием - к Ванге.
или к синоптикам.
Т.е. нужно сделать разузлование всей номенклатуры до болтиков/гаечек?
И количество уровней разузлования равно количеству документов?
Халамбалам.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск