Имя: Пароль:
1C
1С v8
Документ на основании
0 OlegOP
 
29.06.15
13:15
Ребят, у меня такая запара по УМКП 1.3.
Есть документ "Выделение аспирационных отходов" номенклатура в которых имеет всего два вида пшено и овес. При проведении "ВАО"создается документ "Требование-накладная" соответственно табличная часть которого заполняется ТЧ док.основания. НО!
у меня стоит задача чтобы при проведении "ВАО" создавалост 2 требования, в одном была номенклатура только пшено, а в другом только овес, потому что подразделения у них разные. Мозг ломаю не знаю как сделать, если не трудно помогите плз!
Код:

ПодчиненныйДокумент = НайтиПодчиненныйДокумент(ДокументСсылка, Перечисления.СБ_ВидыДокументов.ТребованиеНакладная);
        Если ПодчиненныйДокумент = Неопределено тогда
            ТребованиеНакладная =  Документы.ТребованиеНакладная.СоздатьДокумент();
            ТребованиеНакладная2 = Документы.ТребованиеНакладная.СоздатьДокумент();
        Иначе
            ТребованиеНакладная = ПодчиненныйДокумент.ПолучитьОбъект();
            ТребованиеНакладная.УстановитьПометкуУдаления(Ложь);
        КонецЕсли;
        
        ТребованиеНакладная.ПометкаУдаления=Ложь;
        ТребованиеНакладная2.ПометкаУдаления=Ложь;
        ТребованиеНакладная.Материалы.Очистить();
        ТребованиеНакладная2.Материалы.Очистить();
        ТребованиеНакладная.СведенияОКачестве.Очистить();
        ТребованиеНакладная2.СведенияОКачестве.Очистить();
        ТребованиеНакладная.Заполнить(ДокументПартий.Ссылка);
        ТребованиеНакладная2.Заполнить(ДокументПартий.Ссылка);
        
        //+СБ Васильев 2013-06-03  //отбор по  свойству уже в заполненной табличной части
        ЗапросПоТабличнойЧасти = Новый Запрос;
        ЗапросПоТабличнойЧасти.УстановитьПараметр("Материалы",ТребованиеНакладная.Материалы.Выгрузить());
        ЗапросПоТабличнойЧасти.УстановитьПараметр("СведенияОКачестве",ТребованиеНакладная.СведенияОКачестве.Выгрузить());
        
        
        ЗапросПоТабличнойЧасти.УстановитьПараметр("Вид",СБ_Процедуры.ПолучитьДополнительноеСвойство(Перечисления.СБ_ТипыДополнительныхПараметров.ВидХарактеристикиХранения));  //вид
        ЗапросПоТабличнойЧасти.УстановитьПараметр("Хранение",СБ_Процедуры.ПолучитьДополнительноеСвойство(Перечисления.СБ_ТипыДополнительныхПараметров.СвойствоХарактеристикиХранения));  //хранение
        
        
        ЗапросПоТабличнойЧасти.Текст = "ВЫБРАТЬ
        |    ТребованиеНакладнаяМатериалы.НомерСтроки,
        |    ТребованиеНакладнаяМатериалы.ЕдиницаИзмерения,
        |    ТребованиеНакладнаяМатериалы.ЕдиницаИзмеренияМест,
        |    ТребованиеНакладнаяМатериалы.Заказ,
        |    ТребованиеНакладнаяМатериалы.Качество,
        |    ТребованиеНакладнаяМатериалы.Количество,
        |    ТребованиеНакладнаяМатериалы.КоличествоМест,
        |    ТребованиеНакладнаяМатериалы.Коэффициент,
        |    ТребованиеНакладнаяМатериалы.Номенклатура,
        |    ТребованиеНакладнаяМатериалы.НоменклатурнаяГруппа,
        |    ТребованиеНакладнаяМатериалы.ОбъектСтроительства,
        |    ТребованиеНакладнаяМатериалы.ОтражениеВУСН,
        |    ТребованиеНакладнаяМатериалы.Продукция,
        |    ТребованиеНакладнаяМатериалы.СерияНоменклатуры,
        |    ТребованиеНакладнаяМатериалы.СерияПродукции,
        |    ТребованиеНакладнаяМатериалы.СтатьяЗатрат,
        |    ТребованиеНакладнаяМатериалы.Субконто1,
        |    ТребованиеНакладнаяМатериалы.Субконто2,
        |    ТребованиеНакладнаяМатериалы.Субконто3,
        |    ТребованиеНакладнаяМатериалы.СубконтоНУ1,
        |    ТребованиеНакладнаяМатериалы.СубконтоНУ2,
        |    ТребованиеНакладнаяМатериалы.СубконтоНУ3,
        |    ТребованиеНакладнаяМатериалы.Счет,
        |    ТребованиеНакладнаяМатериалы.СчетЗатрат,
        |    ТребованиеНакладнаяМатериалы.СчетЗатратНУ,
        |    ТребованиеНакладнаяМатериалы.СчетНУ,
        |    ТребованиеНакладнаяМатериалы.ХарактеристикаНоменклатуры,
        |    ТребованиеНакладнаяМатериалы.ХарактеристикаПродукции,
        |    ТребованиеНакладнаяМатериалы.СтатьяЗатратНДС,
        |    ТребованиеНакладнаяМатериалы.Проект,
        |    ТребованиеНакладнаяМатериалы.Склад,
        |    ТребованиеНакладнаяМатериалы.ОтпущеноСверхЛимита,
        |    ТребованиеНакладнаяМатериалы.ЗаказРезерв,
        |    ТребованиеНакладнаяМатериалы.ВнутреннийЗаказ,
        |    ТребованиеНакладнаяМатериалы.СпособСтроительства,
        |    ТребованиеНакладнаяМатериалы.ИдентификаторПартии
        |ПОМЕСТИТЬ ВТ_Материалы
        |ИЗ
        |    &Материалы КАК ТребованиеНакладнаяМатериалы
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВложенныйЗапрос.НомерСтроки,
        |    ВложенныйЗапрос.ЕдиницаИзмерения,
        |    ВложенныйЗапрос.ЕдиницаИзмеренияМест,
        |    ВложенныйЗапрос.Заказ,
        |    ВложенныйЗапрос.Качество,
        |    ВложенныйЗапрос.Количество,
        |    ВложенныйЗапрос.КоличествоМест,
        |    ВложенныйЗапрос.Коэффициент,
        |    ВложенныйЗапрос.Номенклатура,
        |    ВложенныйЗапрос.НоменклатурнаяГруппа,
        |    ВложенныйЗапрос.ОбъектСтроительства,
        |    ВложенныйЗапрос.ОтражениеВУСН,
        |    ВложенныйЗапрос.Продукция,
        |    ВложенныйЗапрос.СерияНоменклатуры,
        |    ВложенныйЗапрос.СерияПродукции,
        |    ВложенныйЗапрос.СтатьяЗатрат,
        |    ВложенныйЗапрос.Субконто1,
        |    ВложенныйЗапрос.Субконто2,
        |    ВложенныйЗапрос.Субконто3,
        |    ВложенныйЗапрос.СубконтоНУ1,
        |    ВложенныйЗапрос.СубконтоНУ2,
        |    ВложенныйЗапрос.СубконтоНУ3,
        |    ВложенныйЗапрос.Счет,
        |    ВложенныйЗапрос.СчетЗатрат,
        |    ВложенныйЗапрос.СчетЗатратНУ,
        |    ВложенныйЗапрос.СчетНУ,
        |    ВложенныйЗапрос.ХарактеристикаНоменклатуры,
        |    ВложенныйЗапрос.ХарактеристикаПродукции,
        |    ВложенныйЗапрос.СтатьяЗатратНДС,
        |    ВложенныйЗапрос.Проект,
        |    ВложенныйЗапрос.Склад,
        |    ВложенныйЗапрос.ОтпущеноСверхЛимита,
        |    ВложенныйЗапрос.ЗаказРезерв,
        |    ВложенныйЗапрос.ВнутреннийЗаказ,
        |    ВложенныйЗапрос.СпособСтроительства,
        |    ВложенныйЗапрос.ИдентификаторПартии,
        |    ВложенныйЗапрос.Хранение
        |ИЗ
        |    (ВЫБРАТЬ
        |        ВТ_Материалы.НомерСтроки КАК НомерСтроки,
        |        ВТ_Материалы.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
        |        ВТ_Материалы.ЕдиницаИзмеренияМест КАК ЕдиницаИзмеренияМест,
        |        ВТ_Материалы.Заказ КАК Заказ,
        |        ВТ_Материалы.Качество КАК Качество,
        |        ВТ_Материалы.Количество КАК Количество,
        |        ВТ_Материалы.КоличествоМест КАК КоличествоМест,
        |        ВТ_Материалы.Коэффициент КАК Коэффициент,
        |        ВТ_Материалы.Номенклатура КАК Номенклатура,
        |        ВТ_Материалы.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
        |        ВТ_Материалы.ОбъектСтроительства КАК ОбъектСтроительства,
        |        ВТ_Материалы.ОтражениеВУСН КАК ОтражениеВУСН,
        |        ВТ_Материалы.Продукция КАК Продукция,
        |        ВТ_Материалы.СерияНоменклатуры КАК СерияНоменклатуры,
        |        ВТ_Материалы.СерияПродукции КАК СерияПродукции,
        |        ВТ_Материалы.СтатьяЗатрат КАК СтатьяЗатрат,
        |        ВТ_Материалы.Субконто1 КАК Субконто1,
        |        ВТ_Материалы.Субконто2 КАК Субконто2,
        |        ВТ_Материалы.Субконто3 КАК Субконто3,
        |        ВТ_Материалы.СубконтоНУ1 КАК СубконтоНУ1,
        |        ВТ_Материалы.СубконтоНУ2 КАК СубконтоНУ2,
        |        ВТ_Материалы.СубконтоНУ3 КАК СубконтоНУ3,
        |        ВТ_Материалы.Счет КАК Счет,
        |        ВТ_Материалы.СчетЗатрат КАК СчетЗатрат,
        |        ВТ_Материалы.СчетЗатратНУ КАК СчетЗатратНУ,
        |        ВТ_Материалы.СчетНУ КАК СчетНУ,
        |        ВТ_Материалы.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        |        ВТ_Материалы.ХарактеристикаПродукции КАК ХарактеристикаПродукции,
        |        ВТ_Материалы.СтатьяЗатратНДС КАК СтатьяЗатратНДС,
        |        ВТ_Материалы.Проект КАК Проект,
        |        ВТ_Материалы.Склад КАК Склад,
        |        ВТ_Материалы.ОтпущеноСверхЛимита КАК ОтпущеноСверхЛимита,
        |        ВТ_Материалы.ЗаказРезерв КАК ЗаказРезерв,
        |        ВТ_Материалы.ВнутреннийЗаказ КАК ВнутреннийЗаказ,
        |        ВТ_Материалы.СпособСтроительства КАК СпособСтроительства,
        |        ВТ_Материалы.ИдентификаторПартии КАК ИдентификаторПартии,
        |        ЕСТЬNULL(ЗначенияСвойствОбъектов.Значение, ЛОЖЬ) КАК Хранение
        |    ИЗ
        |        ВТ_Материалы КАК ВТ_Материалы
        |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        |            ПО ВТ_Материалы.ХарактеристикаНоменклатуры = ЗначенияСвойствОбъектов.Объект
        |                И (ЗначенияСвойствОбъектов.Свойство = &Вид)
        |                И (ЗначенияСвойствОбъектов.Значение = &Хранение)) КАК ВложенныйЗапрос
        |ГДЕ
        |    ВложенныйЗапрос.Хранение = ЛОЖЬ";
        
        
        ТребованиеНакладная.Материалы.Загрузить(ЗапросПоТабличнойЧасти.Выполнить().Выгрузить());
        ТребованиеНакладная2.Материалы.Загрузить(ЗапросПоТабличнойЧасти.Выполнить().Выгрузить());
        
        ЗапросПоТабличнойЧасти.Текст = "ВЫБРАТЬ
        |    ТребованиеНакладнаяСведенияОКачестве.НомерСтроки,
        |    ТребованиеНакладнаяСведенияОКачестве.ЕдиницаИзмерения,
        |    ТребованиеНакладнаяСведенияОКачестве.Количество,
        |    ТребованиеНакладнаяСведенияОКачестве.Коэффициент,
        |    ТребованиеНакладнаяСведенияОКачестве.Номенклатура,
        |    ТребованиеНакладнаяСведенияОКачестве.СерияНоменклатуры,
        |    ТребованиеНакладнаяСведенияОКачестве.ХарактеристикаНоменклатуры,
        |    ТребованиеНакладнаяСведенияОКачестве.ХарактеристикаКачестваНоменклатуры,
        |    ТребованиеНакладнаяСведенияОКачестве.МестоРазмещения,
        |    ТребованиеНакладнаяСведенияОКачестве.НомерАнализа,
        |    ТребованиеНакладнаяСведенияОКачестве.Секция,
        |    ТребованиеНакладнаяСведенияОКачестве.ТипПомола,
        |    ТребованиеНакладнаяСведенияОКачестве.КарточкаЛабораторногоАнализа,
        |    ТребованиеНакладнаяСведенияОКачестве.НоменклатураВладелец
        |ПОМЕСТИТЬ ВТ_Материалы
        |ИЗ
        |    &СведенияОКачестве КАК ТребованиеНакладнаяСведенияОКачестве
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВложенныйЗапрос.НомерСтроки,
        |    ВложенныйЗапрос.ЕдиницаИзмерения,
        |    ВложенныйЗапрос.Количество,
        |    ВложенныйЗапрос.Коэффициент,
        |    ВложенныйЗапрос.Номенклатура,
        |    ВложенныйЗапрос.СерияНоменклатуры,
        |    ВложенныйЗапрос.ХарактеристикаНоменклатуры,
        |    ВложенныйЗапрос.Хранение,
        |    ВложенныйЗапрос.ХарактеристикаКачестваНоменклатуры,
        |    ВложенныйЗапрос.МестоРазмещения,
        |    ВложенныйЗапрос.НомерАнализа,
        |    ВложенныйЗапрос.Секция,
        |    ВложенныйЗапрос.ТипПомола,
        |    ВложенныйЗапрос.КарточкаЛабораторногоАнализа,
        |    ВложенныйЗапрос.НоменклатураВладелец
        |ИЗ
        |    (ВЫБРАТЬ
        |        ВТ_Материалы.НомерСтроки КАК НомерСтроки,
        |        ВТ_Материалы.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
        |        ВТ_Материалы.Количество КАК Количество,
        |        ВТ_Материалы.Коэффициент КАК Коэффициент,
        |        ВТ_Материалы.Номенклатура КАК Номенклатура,
        |        ВТ_Материалы.СерияНоменклатуры КАК СерияНоменклатуры,
        |        ВТ_Материалы.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        |        ЕСТЬNULL(ЗначенияСвойствОбъектов.Значение, ЛОЖЬ) КАК Хранение,
        |        ВТ_Материалы.ХарактеристикаКачестваНоменклатуры КАК ХарактеристикаКачестваНоменклатуры,
        |        ВТ_Материалы.МестоРазмещения КАК МестоРазмещения,
        |        ВТ_Материалы.НомерАнализа КАК НомерАнализа,
        |        ВТ_Материалы.Секция КАК Секция,
        |        ВТ_Материалы.ТипПомола КАК ТипПомола,
        |        ВТ_Материалы.КарточкаЛабораторногоАнализа КАК КарточкаЛабораторногоАнализа,
        |        ВТ_Материалы.НоменклатураВладелец КАК НоменклатураВладелец
        |    ИЗ
        |        ВТ_Материалы КАК ВТ_Материалы
        |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        |            ПО ВТ_Материалы.ХарактеристикаНоменклатуры = ЗначенияСвойствОбъектов.Объект
        |                И (ЗначенияСвойствОбъектов.Свойство = &Вид)
        |                И (ЗначенияСвойствОбъектов.Значение = &Хранение)) КАК ВложенныйЗапрос
        |ГДЕ
        |    ВложенныйЗапрос.Хранение = ЛОЖЬ";
        
        Результат = ЗапросПоТабличнойЧасти.Выбрать();
        ТребованиеНакладная.СведенияОКачестве.Загрузить(ЗапросПоТабличнойЧасти.Выполнить().Выгрузить());
        ТребованиеНакладная2.СведенияОКачестве.Загрузить(ЗапросПоТабличнойЧасти.Выполнить().Выгрузить());
        
                
        
        //+СБ Васильев 2013-06-03
        
        
        ТребованиеНакладная.Комментарий = "Документ создан автоматически на основании документа Передача зерна в производство № "+ДокументСсылка.Номер +" от "+ДокументСсылка.Дата;
        ТребованиеНакладная2.Комментарий = "Документ создан автоматически на основании документа Передача зерна в производство № "+ДокументСсылка.Номер +" от "+ДокументСсылка.Дата;
        ТребованиеНакладная.Дата = ДокументСсылка.Дата;
        ТребованиеНакладная2.Дата = ДокументСсылка.Дата;
        ТребованиеНакладная.ПодразделениеОрганизации = ПолучитьПодразделениеОрганизации(ДокументПартий.Подразделение, ДокументПартий.Организация);
        ТребованиеНакладная2.ПодразделениеОрганизации = ПолучитьПодразделениеОрганизации(ДокументПартий.Подразделение, ДокументПартий.Организация);
        
        ТребованиеНакладная.НДСвСтоимостиТоваров = Перечисления.ДействиеНДСВСтоимостиТоваров.НеИзменять;
        ТребованиеНакладная2.НДСвСтоимостиТоваров = Перечисления.ДействиеНДСВСтоимостиТоваров.НеИзменять;
        
        
        
        Для каждого Строка Из ТребованиеНакладная.СведенияОКачестве Цикл
            Строка.НомерАнализа = 1;    
        КонецЦикла;
        
        ТребованиеНакладная.Записать(РежимЗаписиДокумента.Запись);
        ТребованиеНакладная2.Записать(РежимЗаписиДокумента.Запись);
        
        
        МенеджерЗаписи = РегистрыСведений.СБ_ПодчиненныеДокументы.СоздатьМенеджерЗаписи();
        МенеджерЗаписи.ДатаПодчиненного     = ТребованиеНакладная.Дата;
        МенеджерЗаписи.ВведенНаОсновании     = ДокументПартий.Ссылка;
        МенеджерЗаписи.ДокументОснование     = ДокументСсылка;
        МенеджерЗаписи.ПодчиненныйДокумент     = ТребованиеНакладная.Ссылка;
        МенеджерЗаписи.ВидПодчиненногоДокумента = Перечисления.СБ_ВидыДокументов.ТребованиеНакладная;
        МенеджерЗаписи.Записать(Истина);
        
        МенеджерЗаписи = РегистрыСведений.СБ_ПодчиненныеДокументы.СоздатьМенеджерЗаписи();
        МенеджерЗаписи.ДатаПодчиненного     = ТребованиеНакладная2.Дата;
        МенеджерЗаписи.ВведенНаОсновании     = ДокументПартий.Ссылка;
        МенеджерЗаписи.ДокументОснование     = ДокументСсылка;
        МенеджерЗаписи.ПодчиненныйДокумент     = ТребованиеНакладная2.Ссылка;
        МенеджерЗаписи.ВидПодчиненногоДокумента = Перечисления.СБ_ВидыДокументов.ТребованиеНакладная;
        МенеджерЗаписи.Записать(Истина);
1 D_E_S_131
 
29.06.15
13:25
Варианты:
1. Не вводить на основании, а сделать отдельную процедуру.
2. Вводить на основании 2 раза — нужный вид "пшено/овес" выбирать по предварительному вопросу "Чего хотим ввести?".
2 OlegOP
 
29.06.15
13:30
а из результата запроса в цикле не вариант?
3 OlegOP
 
29.06.15
13:33
Это код как раз из процедуры в модуле менеджера, при проведении ВАО создаются подчиненные документы.
Я чет "тупака" реального включил что с этим дальше делать...
4 D_E_S_131
 
29.06.15
14:29
(2) "при проведении ВАО создаются подчиненные документы" — у меня хватает воспитания не давать подобных советов.
5 yukon
 
29.06.15
16:17
(1) Лучше комбинировать:

1. Вывести отдельную кнопку. В ней задать вопрос. Сохранить результат, например в переменную СеноСолома.
2. Ответ на вопрос из п.1 передать в данных заполнения. Например, так:
ТребованиеНакладнаяОбъект.Заполнить(Новый Структура("Основание,СеноСолома",ДокументВАО, СеноСолома);

3. В обработке заполнения добавить ветку условия на ДанныеЗаполнения.СеноСолома