Имя: Пароль:
1C
1С v8
Ввод на основание , вопрос
0 den54
 
26.07.23
21:54
Коллеги , привет!

У меня есть 2 документа.
2 документ,  запонляется на основании 1 документа.
При нажатие на кн. "Заполнить на основании" согласно конструкотору заполнения парамеры из 1 документа поподают во 2 документ.
При этом передается Тип заполения  =  ну например "ДокументСсылка.ЗаказНаПроизводство", т.е. как назыв док основане.
Если же я хочу програмно заполнить ввод на отсновании, то я должен передать парамеры ввиде структцуры, к примеру :
Номенклатура
Количество
Но при этом у меня , уже передается Тип  "Структура".
и при анализе процедуры "Обработка заполения" мне надо для данного типа писать свои стороки заполнения.
Как сделать так , чтобы как будто я нажал на сситемную команду "Ввод на основании", и чтобы тип  = "ДокументСсылка.ЗаказНаПроизводство" ?
1 1CBaseV8
 
26.07.23
22:37
Ничего не понятно. Если один документ вводится на основании другого, то какие еще структуры?

1. Делаем расширение, и добавляем документы.
2. В менеджер документа основания добавляем процедуру:

&После("ДобавитьКомандыСозданияНаОсновании")
Процедура ххх_ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры)

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

3. В модуль документа ЗаказНаПроизводство в зависимости от возможности:
&После("ОбработкаЗаполнения") или &Вместо("ОбработкаЗаполнения")
и процедуру:
Процедура ххх_ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

И там дальше по аналогии с другими ОбработкаЗаполнения( вытаскиваешь данные из ДанныеЗаполнения в котором содержится документ основание.
2 den54
 
26.07.23
23:00
(1) да нет расширения, прям напрямую, 2 док на основание первого
3 den54
 
27.07.23
01:44
(1) Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    
    Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказНаПроизводство") Тогда //Ввод на основании
        // Заполнение шапки
        ЗаказПокупателя = ДанныеЗаполнения.ДокументОснование;
        НомерСчетаУПП = ДанныеЗаполнения.НомерСчета;
        ЗаказНаПроизводство = ДанныеЗаполнения.Ссылка;
    КонецЕсли;
    Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда //Ввод на основании через кнопку ТЧ (отделная команда )
            // Заполнение шапки
            ЗаказПокупателя = ДанныеЗаполнения.ДокументОснование;
            НомерСчетаУПП = ДанныеЗаполнения.НомерСчета;
            ЗаказНаПроизводство = ДанныеЗаполнения.Ссылка;
            СтруктурнаяЕдиница =  ДанныеЗаполнения.СтруктурнаяЕдиница;
        КонецЕсли;
4 den54
 
27.07.23
01:47
есть кнопка по которой создается нов док , и я его анализирую, а там параметр структуры разный.
5 den54
 
27.07.23
01:48
ТИР СТРУКТУРЫ
6 den54
 
27.07.23
01:49
Сории ТИП структуры
7 Мимохожий Однако
 
27.07.23
06:59
Тип структуры - это что-то новенькое.
.. (3) Бессмысленный код
8 1CBaseV8
 
27.07.23
08:06
(2) > да нет расширения,

Ну нет расширения, пиши код прямя в документы. В менеджере документа основания ищешь ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) и добавляешь команду

> прям напрямую, 2 док на основание первого

Надо два документа на основании одного?