1С:Предприятие(8.1.15.14)Бухгалтерия(2.0.17)Ошибка при вызове метода контекста (Выполнить)

Новая тема
Показывать по 10 20 40 сообщений
"Нет. Дело в том что при отладки ВПФ. Ругается на параметр Оргонозация, который находится в общем модуле конфы.

Вот.

// Процедура предназначена для преобразования номера документа.
//
// Параметры:
//  Документ - (ДокументСсылка), документ, чей номер надо получить для печати.
//
// Возвращаемое значение.
//  Строка - номер документа для печати
//
Функция ПолучитьНомерНаПечать(Документ, МассивПрефиксов = Неопределено) Экспорт

Если Документ = Неопределено Тогда
Возврат 0;
КонецЕсли;

Номер   = СокрЛП(Документ.Номер);
Префикс = """";
Если МассивПрефиксов = Неопределено Тогда

Организация              = Неопределено;
ПодразделениеОрганизации = Неопределено;

Если ТипЗнч(Документ) = Тип("ВыборкаИзРезультатаЗапроса")
ИЛИ ТипЗнч(Документ) = Тип("Структура") Тогда

ВОТ ЗДЕСЬ> Организация = Документ.Организация;

Иначе

МетаданныеДокумента = Документ.Метаданные();

Если ЕстьРеквизитДокумента("Организация", МетаданныеДокумента) Тогда

Организация = Документ.Организация;

КонецЕсли;

КонецЕсли;

МассивПрефиксовДляОбхода = СформироватьМассивПрефиксовДляРИБИОрганизации(Организация);

Иначе

МассивПрефиксовДляОбхода = МассивПрефиксов;

КонецЕсли;

Для Каждого ТекущийПрефикс ИЗ МассивПрефиксовДляОбхода Цикл

// удаление префикса из номера документа
Если Найти(Номер, ТекущийПрефикс)=1 Тогда
Номер = Сред(Номер, СтрДлина(ТекущийПрефикс)+1);
КонецЕсли;

// так же, может остаться "минус" впереди
Если Лев(Номер, 1) = "-" Тогда
Номер = Сред(Номер, 2);
КонецЕсли;

// удаление ведущих нулей
Пока Лев(Номер, 1)="0" Цикл
Номер = Сред(Номер, 2);
КонецЦикла;
КонецЦикла;

Возврат Номер;

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

Функция Печать () Экспорт

//ЕдиницаИзмеренияВеса = Константы.ЕдиницаИзмеренияВеса.Получить();

//ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
//Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
//ТоварКод = "Артикул";
//Иначе
ТоварКод = "Код";
//КонецЕсли;

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

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

Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);

Запрос.Текст =
"ВЫБРАТЬ
| ВложенныйЗапрос.Номенклатура                                  КАК Номенклатура,
| ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК ТоварНаименование,
| ВложенныйЗапрос.Номенклатура                                  КАК ТоварКод,
| ВложенныйЗапрос.ЕдиницаИзмерения.Представление                КАК БазоваяЕдиницаНаименование,
| ВложенныйЗапрос.ЕдиницаИзмерения     КАК ЕдиницаИзмерения,
| ВложенныйЗапрос.Цена                 КАК Цена,
| ВЫБОР
| КОГДА Выразить(ВложенныйЗапрос.Цена*ВложенныйЗапрос.Количество Как Число (15,2)) = ВложенныйЗапрос.Сумма
| ТОГДА ЛОЖЬ
| ИНАЧЕ Истина
| КОНЕЦ                                КАК ЕстьСкидкиПоСтроке,
| ВложенныйЗапрос.Количество           КАК Количество,
| ВложенныйЗапрос.Сумма                КАК Сумма,
| ВложенныйЗапрос.НомерСтроки          КАК НомерСтроки
|ИЗ
|
|
| (ВЫБРАТЬ
| РеализацияТоваровУслуг.Номенклатура,
| РеализацияТоваровУслуг.Коэффициент,
| РеализацияТоваровУслуг.ЕдиницаИзмерения,
| РеализацияТоваровУслуг.Цена            КАК Цена,
| СУММА(РеализацияТоваровУслуг.Количество)                    КАК Количество,
| СУММА(РеализацияТоваровУслуг.Сумма     ) КАК Сумма,
| МИНИМУМ(РеализацияТоваровУслуг.НомерСтроки)                 КАК НомерСтроки
| ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг
| ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
|
|СГРУППИРОВАТЬ ПО
| РеализацияТоваровУслуг.Номенклатура,
| РеализацияТоваровУслуг.Коэффициент,
| РеализацияТоваровУслуг.ЕдиницаИзмерения,
| РеализацияТоваровУслуг.Цена)КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО НомерСтроки ВОЗР";

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

Макет = ПолучитьМакет("АктНаПередачуПрав");
// Выводим общие реквизиты шапки
СведенияОПоставщике       = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.ЮрФизЛицо,        Шапка.ДатаДокумента);
СведенияОПокупателе       = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(СсылкаНаОбъект.Контрагент,       Шапка.ДатаДокумента);
СведенияОГрузополучателе  = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузополучатель,  Шапка.ДатаДокумента);
СведенияОГрузоотправитель = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузоотправитель, Шапка.ДатаДокумента);

ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
ОбластьМакета.Параметры.Заполнить(Шапка);
ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка);
ОбластьМакета.Параметры.ДатаДокумента  = Шапка.ДатаДокумента;

Если Шапка.ЮрФизЛицо = Шапка.Грузоотправитель Тогда
ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,ИНН,ЮридическийАдрес,Телефоны,БанковскиеРеквизиты");
Иначе
ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование,ИНН,ЮридическийАдрес,Телефоны,БанковскиеРеквизиты");
КонецЕсли;

Если СокрЛП(Шапка.АдресДоставки) <> """" Тогда
ПредставлениеГрузополучателяДоАдреса    = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование,ИНН,ЮридическийАдрес,Телефоны,БанковскиеРеквизиты");
ПредставлениеГрузополучателяПослеАдреса = """";
//ОбластьМакета.Параметры.ПредставлениеГрузополучателя = ?(СокрЛП(ПредставлениеГрузополучателяДоАдреса) = """", """", ПредставлениеГрузополучателяДоАдреса+", ") + Шапка.АдресДоставки+?(СокрЛП(ПредставлениеГрузополучателяПослеАдреса)="""", """", ", "+ПредставлениеГрузополучателяПослеАдреса);
Иначе
//ОбластьМакета.Параметры.ПредставлениеГрузополучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,БанковскиеРеквизиты");
КонецЕсли;

//ОбластьМакета.Параметры.ПредставлениеПоставщика  = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,ИНН,ЮридическийАдрес,Телефоны,БанковскиеРеквизиты");
ОбластьМакета.Параметры.ПредставлениеПлательщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование,ИНН,ЮридическийАдрес,Телефоны,БанковскиеРеквизиты,КПП,");
//ОбластьМакета.Параметры.Основание = СтрокаОснованияДоговор + Шапка.Основание;
ОбластьМакета.Параметры.франПолноеНаименованиеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование");
ОбластьМакета.Параметры.франПолноеНаименованиеКонтрагента = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование");

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

НомерСтраницы   = 1;

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

КоличествоСтрок = ЗапросТовары.Количество();

// инициализация итогов по странице
ИтогоМассаБруттоНаСтранице = 0;
ИтогоМестНаСтранице        = 0;
ИтогоКоличествоНаСтранице  = 0;
ИтогоСуммаНаСтранице       = 0;
ИтогоНДСНаСтранице         = 0;
//ИтогоСуммаСНДСНаСтранице   = 0;

// инициализация итогов по документу
ИтогоМассаБрутто = 0;
ИтогоМест        = 0;
ИтогоКоличество  = 0;
//ИтогоСуммаСНДС   = 0;
ИтогоСумма       = 0;
ИтогоНДС         = 0;
Ном              = 0;

// Создаем массив для проверки вывода
МассивВыводимыхОбластей = Новый Массив;

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

Для Каждого ВыборкаСтрок Из ЗапросТовары Цикл

Если Не ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда
Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
Продолжить;
КонецЕсли;

Ном           = Ном + 1;

ОбластьМакета.Параметры.Заполнить(ВыборкаСтрок);
ОбластьМакета.Параметры.Номер             = ЗапросТовары.Индекс(ВыборкаСтрок) + 1;
ОбластьМакета.Параметры.ТоварНаименование = СокрЛП(ВыборкаСтрок.ТоварНаименование)
                                        + УниверсальныеМеханизмы.ПредставлениеХарактеристик(ВыборкаСтрок);
Мест        = 0;

Количество  = ВыборкаСтрок.Количество;
СуммаСНДС   = Окр((ВыборкаСтрок.Сумма + ?(Шапка.СуммаВключаетНДС, 0, ВыборкаСтрок.СуммаНДС)), 2);
СуммаНДС    = Окр(ВыборкаСтрок.СуммаНДС, 2);
СуммаБезНДС = СуммаСНДС  - СуммаНДС;

//ОбластьМакета.Параметры.МассаБрутто = МассаБрутто;
//ОбластьМакета.Параметры.СуммаСНДС   = СуммаСНДС;
ОбластьМакета.Параметры.СуммаНДС    = СуммаНДС;
//ОбластьМакета.Параметры.СтавкаНДС   = ВыборкаСтрок.СтавкаНДС;
ОбластьМакета.Параметры.СуммаБезНДС = СуммаБезНДС;

Если Шапка.СуммаВключаетНДС
Или ВыборкаСтрок.ЕстьСкидкиПоСтроке Тогда
ОбластьМакета.Параметры.Цена = ?(Количество = 0, 0, СуммаБезНДС / Количество);
Иначе
ОбластьМакета.Параметры.Цена = ВыборкаСтрок.Цена;
КонецЕсли;

МассивВыводимыхОбластей.Очистить();
МассивВыводимыхОбластей.Добавить(ОбластьМакета);
МассивВыводимыхОбластей.Добавить(ОбластьИтоговПоСтранице);
Если Ном = КоличествоСтрок Тогда
МассивВыводимыхОбластей.Добавить(ОбластьВсего);
МассивВыводимыхОбластей.Добавить(ОбластьПодвала);
КонецЕсли;

Если НЕ ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда

ТабДокумент.Вывести(ОбластьИтоговПоСтранице);

// очистим итоги по странице
ИтогоМассаБруттоНаСтранице = 0;
ИтогоМестНаСтранице        = 0;
ИтогоКоличествоНаСтранице  = 0;
ИтогоСуммаНаСтранице       = 0;
ИтогоНДСНаСтранице         = 0;
//ИтогоСуммаСНДСНаСтранице   = 0;

НомерСтраницы = НомерСтраницы + 1;
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
ТабДокумент.Вывести(ЗаголовокТаблицы);

КонецЕсли;

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

// увеличим итоги по странице
//ИтогоМассаБруттоНаСтранице = ИтогоМассаБруттоНаСтранице + МассаБрутто;
ИтогоМестНаСтранице        = ИтогоМестНаСтранице        + Мест;
ИтогоКоличествоНаСтранице  = ИтогоКоличествоНаСтранице  + Количество;
ИтогоСуммаНаСтранице       = ИтогоСуммаНаСтранице       + СуммаБезНДС;
ИтогоНДСНаСтранице         = ИтогоНДСНаСтранице         + СуммаНДС;
//ИтогоСуммаСНДСНаСтранице   = ИтогоСуммаСНДСНаСтранице   + СуммаСНДС;

// увеличим итоги по дукументу
//ИтогоМассаБрутто = ИтогоМассаБрутто + МассаБрутто;
ИтогоМест        = ИтогоМест        + Мест;
ИтогоКоличество  = ИтогоКоличество  + Количество;
ИтогоСумма       = ИтогоСумма       + СуммаБезНДС;
ИтогоНДС         = ИтогоНДС         + СуммаНДС;
//ИтогоСуммаСНДС   = ИтогоСуммаСНДС   + СуммаСНДС;

КонецЦикла;

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

ПолнаяДатаДокумента = Формат(Шапка.ДатаДокумента, "ДФ=""""дд ММММ гггг """"года""""""""");
ДлинаСтроки = СтрДлина(ПолнаяДатаДокумента);
ПервыйРазделитель = Найти(ПолнаяДатаДокумента," ");
ВторойРазделитель = Найти(Прав(ПолнаяДатаДокумента,ДлинаСтроки-ПервыйРазделитель)," ")+ПервыйРазделитель;
ОбластьМакета.Параметры.ДатаДокументаДень     = """"+Лев(ПолнаяДатаДокумента,ПервыйРазделитель-1)+"""";
ОбластьМакета.Параметры.ДатаДокументаМесяц    = Сред(ПолнаяДатаДокумента,ПервыйРазделитель+1,ВторойРазделитель-ПервыйРазделитель-1);
ОбластьМакета.Параметры.ДатаДокументаГод      = Прав(ПолнаяДатаДокумента,ДлинаСтроки-ВторойРазделитель);

ФамилияИмяОтчествоФизЛица     = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ОтветственноеЛицо, Шапка.ДатаДокумента);

ФамилияИмяОтчествоОтпускПроизвел = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество;
ФИООтпускПроизвел                = ФормированиеПечатныхФорм.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоОтпускПроизвел);

//ОбластьМакета.Параметры.ФИОКладовщика       = ФИООтпускПроизвел;

// Доверенность
ОбластьМакета.Параметры.ДоверенностьНомер     = Шапка.ДоверенностьНомер;
ОбластьМакета.Параметры.ДоверенностьДата      = Формат(Шапка.ДоверенностьДата, "ДФ='дд ММММ гггг'");
ОбластьМакета.Параметры.ДоверенностьВыдана    = Шапка.ДоверенностьВыдана;
ОбластьМакета.Параметры.ДоверенностьЧерезКого = Шапка.ДоверенностьЧерезКого;

Если ИтогоМест > 0 Тогда
ОбластьМакета.Параметры.ВсегоМестПрописью = ЧислоПрописью(ИтогоМест, ,",,,,,,,,0");
КонецЕсли;

ОбластьМакета.Параметры.КоличествоПорядковыхНомеровЗаписейПрописью = ЧислоПрописью(КоличествоСтрок, ,",,,,,,,,0");
//ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(ИтогоСуммаСНДС);
ТабДокумент.Вывести(ОбластьМакета);

// Зададим параметры макета
ТабДокумент.ПолеСверху              = 0;
ТабДокумент.ПолеСлева               = 0;
ТабДокумент.ПолеСнизу               = 0;
ТабДокумент.ПолеСправа              = 0;
ТабДокумент.РазмерКолонтитулаСверху = 0;
ТабДокумент.РазмерКолонтитулаСнизу  = 0;
ТабДокумент.АвтоМасштаб             = Истина;
ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;

Возврат ТабДокумент;

КонецФункции"
Где в Шапка организация ?

> Запрос.Текст ="ВЫБРАТЬ
>            | РеализацияТоваровУслуг.Номер,
>            | РеализацияТоваровУслуг.Дата КАК ДатаДокумента,
>            | РеализацияТоваровУслуг.Организация КАК Контрагент,
>            | РеализацияТоваровУслуг.Организация КАК ЮрФизЛицо,
>            | РеализацияТоваровУслуг.Организация КАК Поставщик,
>            | РеализацияТоваровУслуг.Организация КАК Организация3,
>            | РеализацияТоваровУслуг.Организация КАК Руководители,

Прикольно выглядит. А добавить туда еще строку
           | РеализацияТоваровУслуг.Организация КАК Организация,
не пробовали?
Tanya, Дина Селиверстова, BelikovS, ZhAmAn
Огромное вам Спасибо! За ваше потраченное (не зря) время!

Было еще пара тройка ошибок с которыми я справился сам...
Читают тему
(гостей: 1)

Быстрый переход