Имя: Пароль:
1C
1С v8
Как обратиться к заказу покупателя?
0 alexodel
 
19.03.19
15:52
Здравствуйте

подскажите, пожалуйста

я сделал функцию:


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

КонецФункции
--------


ПолучитьУсловияОплаты(Заказ) при вызове функции не понимаю как передать заказ покупателя на место "Заказ", подскажите пожалуйста как?
1 FIXXXL
 
19.03.19
15:55
(0) какой именно Заказ?
2 alexodel
 
19.03.19
16:27
Я из заказа покупателя открываю печатную форму во внешней обработки
Мне нужно передать заказ покупателя из которого открывается печатная форма
3 aleks_default
 
19.03.19
16:34
Попробуй "Ссылка" или "Объект.Ссылка":)
4 aleks_default
 
19.03.19
16:34
Что-то одно обязательно прокатит...
5 Cyberhawk
 
19.03.19
16:52
Попробуй обратиться с уважением...
6 alexodel
 
19.03.19
18:19
Пробовал.... с уважением тоже не получается :(
7 alexodel
 
19.03.19
18:20
Весь код работает.... только не могу обуздать обращение к документу
Может подскажите что написать?
я три места указал ?????????????... везде не знаю как обратиться к документу


#Область ПрограммныйИнтерфейс

// Возвращает сведения о внешней обработке.
Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
    ПараметрыРегистрации.Версия = "1.4";
    ПараметрыРегистрации.Назначение.Добавить("Документ.ЗаказПокупателя");
    
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = НСтр("ru = 'Спецификация к договору (Цена без НДС)'");
    НоваяКоманда.Идентификатор = "ЗаказПокупателя";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
    НоваяКоманда.ПоказыватьОповещение = Истина;
    НоваяКоманда.Модификатор = "ПечатьMXL";
            
    Возврат ПараметрыРегистрации;
    
КонецФункции


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

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ЗаказПокупателя", "Заказ покупателя внешний отчет", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));

КонецПроцедуры // Печать()

Функция СформироватьПечатнуюФорму(СсылкаНаДокумент, ОбъектыПечати)
    
    Перем ПервыйДокумент, НомерСтрокиНачало;
    
    
ТабличныйДокумент = Новый ТабличныйДокумент;
МакетОбработки = ПолучитьМакет("Макет");
ОбластьШапка = МакетОбработки.ПолучитьОбласть("Шапка");

ОбластьШапка.Параметры.НомДог = СсылкаНаДокумент.Договор.НомерДоговора;
ДатаДоговора = Формат(СсылкаНаДокумент.Договор.ДатаДоговора, "ДЛФ=DD");
ОбластьШапка.Параметры.ДатаДог = ДатаДоговора; //СсылкаНаДокумент.Договор.ДатаДоговора;

Префикс = Прав (СсылкаНаДокумент.Номер,5);

ОбластьШапка.Параметры.НомЗаказ = Префикс; //СсылкаНаДокумент.Номер;
ДатДока=Формат(СсылкаНаДокумент.Дата,"ДФ=dd.MM.yyyy");
ОбластьШапка.Параметры.ДатаДок = ДатДока;//ДатаВходящегоДокумента
ТабличныйДокумент.Вывести(ОбластьШапка);

//Строка
Ном = 0;
ИтогоНаим=0;
Итог = 0;
СуммаИтого = 0;
СуммаИтогоНДС = 0;
Для каждого Стр из СсылкаНаДокумент.Запасы Цикл
    ОбластьСтр = МакетОбработки.ПолучитьОбласть("Строка");
    Ном = Ном + 1;
    ОбластьСтр.Параметры.НПП =            Ном;
    ОбластьСтр.Параметры.Количество =   Стр.Количество;
    ИтогоНаим=ИтогоНаим+1;
    
    //ОбластьСтр.Параметры.Цена =          Стр.Цена;
    //ОбластьСтр.Параметры.Сумма =         Стр.Сумма;
    ОбластьСтр.Параметры.Ед =            Стр.ЕдиницаИзмерения;
    ОбластьСтр.Параметры.НаимНомен =      Стр.Номенклатура;
    //СуммаИтогоНДС = СуммаИтогоНДС +      Стр.СуммаНДС;
    //СуммаИтого = СуммаИтого + Стр.Сумма;
    
    если Стр.СуммаНДС > 0
    тогда
        ОбластьСтр.Параметры.Цена = окр(Стр.Цена  - (Стр.Цена *20/120),2);
        //ОбластьСтр.Параметры.Цена = Стр.ЦенаБезНДС;
        ОбластьСтр.Параметры.Сумма = окр(Стр.Сумма - (Стр.Сумма*20/120),2);
        //ОбластьСтр.Параметры.Сумма = Стр.СуммаБезНДС;
        СуммаИтогоНДС = СуммаИтогоНДС +      Стр.СуммаНДС;
        СуммаИтого = СуммаИтого + Стр.Сумма;
    иначе
        ОбластьСтр.Параметры.Цена = Стр.Цена;
        ОбластьСтр.Параметры.Сумма = Стр.Сумма;
        СуммаИтогоНДС = 0;
        СуммаИтого = СуммаИтого + Стр.Сумма;    
    КонецЕсли;
    
    ТабличныйДокумент.Вывести(ОбластьСтр);
КонецЦикла;




ОбластьПодвал = МакетОбработки.ПолучитьОбласть("Подвал");
ОбластьПодвал.Параметры.ВсегоНДС = СуммаИтогоНДС;
ОбластьПодвал.Параметры.Всего = СуммаИтого;//СсылкаНаДокумент.Запасы.Всего;

ОбластьПодвал.Параметры.СуммаПрописью = ЧислоПрописью(СуммаИтого);
ОбластьПодвал.Параметры.ИтогоНаим = ИтогоНаим;                     /// ЗДЕСЬ ПРИВЯЗАТЬ К ФОРМЕ

ОбластьПодвал.Параметры.УсловияОплаты = ПолучитьУсловияОплаты(?????????????);
ОбластьПодвал.Параметры.УсловияОтгрузки = ПолучитьУсловияОтгрузки(?????????????);
ОбластьПодвал.Параметры.УсловияДоставки = ПолучитьУсловияДоставки(?????????????);


ОбластьПодвал.Параметры.НаимОрган = СсылкаНаДОкумент.Организация;
ОбластьПодвал.Параметры.НаимКонтр = СсылкаНаДокумент.Контрагент.НаименованиеПолное;


ТабличныйДокумент.Вывести(ОбластьПодвал);

Возврат ТабличныйДокумент;

КонецФункции


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

КонецФункции

#КонецОбласти


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

КонецФункции

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

КонецФункции
8 Turku
 
19.03.19
19:22
&НаСервере
Функция ПечатьУК(МассивОбъектов, ОбъектыПечати)
    
    ТабДокумент = Новый ТабличныйДокумент;
    Для каждого Ссылка из МассивОбъектов Цикл
        ТабДокументОбъекта = СформироватьЗадание(Ссылка);
        Если ТабДокумент.ВысотаТаблицы > 0 И ТабДокументОбъекта.ВысотаТаблицы > 0 Тогда
            ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц()
        КонецЕсли;
        ТабДокумент.Вывести(ТабДокументОбъекта)
    КонецЦикла;

    Возврат ТабДокумент
КонецФункции

Ссылка - это и будет Ваш Заказ.
9 alexodel
 
21.03.19
22:35
Спасибо.
10 Мимохожий Однако
 
21.03.19
23:20
Кроме Миста-СП попробуй воспользоваться отладчиком. Сбережешь время.