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

Новая тема
Показывать по сообщений
"Нет. Дело в том что при отладки ВПФ. Ругается на параметр Оргонозация, который находится в общем модуле конфы.<br><br>Вот.<br><br>// Процедура предназначена для преобразования номера документа.<br>//<br>// Параметры:<br>//  Документ - (ДокументСсылка), документ, чей номер надо получить для печати.<br>//<br>// Возвращаемое значение.<br>//  Строка - номер документа для печати<br>//<br>Функция ПолучитьНомерНаПечать(Документ, МассивПрефиксов = Неопределено) Экспорт<br><br> Если Документ = Неопределено Тогда <br> Возврат 0;<br> КонецЕсли;<br><br> Номер   = СокрЛП(Документ.Номер);<br> Префикс = """";<br> Если МассивПрефиксов = Неопределено Тогда<br> <br> Организация              = Неопределено;<br> ПодразделениеОрганизации = Неопределено;<br> <br> Если ТипЗнч(Документ) = Тип("ВыборкаИзРезультатаЗапроса")<br> ИЛИ ТипЗнч(Документ) = Тип("Структура") Тогда<br><br> ВОТ ЗДЕСЬ> Организация = Документ.Организация;<br> <br> Иначе<br><br> МетаданныеДокумента = Документ.Метаданные();<br><br> Если ЕстьРеквизитДокумента("Организация", МетаданныеДокумента) Тогда<br><br> Организация = Документ.Организация;<br><br> КонецЕсли;<br> <br> КонецЕсли;<br> <br> МассивПрефиксовДляОбхода = СформироватьМассивПрефиксовДляРИБИОрганизации(Организация);<br> <br> Иначе<br> <br> МассивПрефиксовДляОбхода = МассивПрефиксов;<br> <br> КонецЕсли;<br> <br> Для Каждого ТекущийПрефикс ИЗ МассивПрефиксовДляОбхода Цикл<br> <br> // удаление префикса из номера документа<br> Если Найти(Номер, ТекущийПрефикс)=1 Тогда <br> Номер = Сред(Номер, СтрДлина(ТекущийПрефикс)+1);<br> КонецЕсли;<br> <br> // так же, может остаться "минус" впереди<br> Если Лев(Номер, 1) = "-" Тогда<br> Номер = Сред(Номер, 2);<br> КонецЕсли;<br> <br> // удаление ведущих нулей<br> Пока Лев(Номер, 1)="0" Цикл<br> Номер = Сред(Номер, 2);<br> КонецЦикла;<br> КонецЦикла;<br><br> Возврат Номер;<br><br>КонецФункции // ПолучитьНомерНаПечать()"
верно подмечено,и должен быть реквизит с названием СсылкаНаОбъект и типом нужного объекта
"> Если ТипЗнч(Документ) = Тип("ВыборкаИзРезультатаЗапроса")<br>> ИЛИ ТипЗнч(Документ) = Тип("Структура") Тогда<br>> <br>> ВОТ ЗДЕСЬ> Организация = Документ.Организация;<br>Т.е. вы передали либо результат запрос либо структуру. Если это структура создайте там ключ Организация. Если результат запроса, то в Выбрать надо еще и Организацию добавить."
"вот модуль ВПФ<br><br>Функция Печать () Экспорт<br><br>//ЕдиницаИзмеренияВеса = Константы.ЕдиницаИзмеренияВеса.Получить();<br><br>//ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();<br>//Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда <br>//ТоварКод = "Артикул";<br>//Иначе<br>ТоварКод = "Код";<br>//КонецЕсли;<br><br>Запрос = Новый Запрос;<br>Запрос.УстановитьПараметр("ДатаСреза",          СсылкаНаОбъект.Дата);<br>Запрос.УстановитьПараметр("СтруктурнаяЕдиница", СсылкаНаОбъект.Склад);<br>Запрос.УстановитьПараметр("ТекущийДокумент",    СсылкаНаОбъект.Ссылка);<br>Запрос.УстановитьПараметр("ПустойКонтрагент",   Справочники.Контрагенты.ПустаяСсылка());<br><br>Запрос.Текст ="ВЫБРАТЬ<br>             | РеализацияТоваровУслуг.Номер,<br>             | РеализацияТоваровУслуг.Дата КАК ДатаДокумента,<br>             | РеализацияТоваровУслуг.Организация КАК Контрагент,<br>             | РеализацияТоваровУслуг.Организация КАК ЮрФизЛицо,<br>             | РеализацияТоваровУслуг.Организация КАК Поставщик,<br>             | РеализацияТоваровУслуг.Организация КАК Организация3,<br>             | РеализацияТоваровУслуг.Организация КАК Руководители,<br>             | РеализацияТоваровУслуг.Контрагент КАК Грузополучатель,<br>             | РеализацияТоваровУслуг.Организация КАК Грузоотправитель,<br>             | РеализацияТоваровУслуг.Контрагент КАК Покупатель,<br>             | РеализацияТоваровУслуг.Контрагент КАК Плательщик,<br>             | РеализацияТоваровУслуг.Ответственный КАК ОтветственноеЛицо,<br>             | РеализацияТоваровУслуг.АдресДоставки,<br>             | РеализацияТоваровУслуг.СуммаДокумента<br>             |ИЗ<br>             | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг<br>             |ГДЕ<br>             | РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";<br><br>Шапка = Запрос.Выполнить().Выбрать();<br>Шапка.Следующий();<br><br>Запрос = Новый Запрос;<br>Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);<br><br>Запрос.Текст =<br>"ВЫБРАТЬ<br>| ВложенныйЗапрос.Номенклатура                                  КАК Номенклатура,<br>| ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК ТоварНаименование,<br>| ВложенныйЗапрос.Номенклатура                                  КАК ТоварКод,<br>| ВложенныйЗапрос.ЕдиницаИзмерения.Представление                КАК БазоваяЕдиницаНаименование,<br>| ВложенныйЗапрос.ЕдиницаИзмерения     КАК ЕдиницаИзмерения,<br>| ВложенныйЗапрос.Цена                 КАК Цена,<br>| ВЫБОР<br>| КОГДА Выразить(ВложенныйЗапрос.Цена*ВложенныйЗапрос.Количество Как Число (15,2)) = ВложенныйЗапрос.Сумма<br>| ТОГДА ЛОЖЬ<br>| ИНАЧЕ Истина<br>| КОНЕЦ                                КАК ЕстьСкидкиПоСтроке,<br>| ВложенныйЗапрос.Количество           КАК Количество,<br>| ВложенныйЗапрос.Сумма                КАК Сумма,<br>| ВложенныйЗапрос.НомерСтроки          КАК НомерСтроки<br>|ИЗ<br>|<br>| <br>| (ВЫБРАТЬ<br>| РеализацияТоваровУслуг.Номенклатура,<br>| РеализацияТоваровУслуг.Коэффициент,<br>| РеализацияТоваровУслуг.ЕдиницаИзмерения,<br>| РеализацияТоваровУслуг.Цена            КАК Цена,<br>| СУММА(РеализацияТоваровУслуг.Количество)                    КАК Количество,<br>| СУММА(РеализацияТоваровУслуг.Сумма     ) КАК Сумма,<br>| МИНИМУМ(РеализацияТоваровУслуг.НомерСтроки)                 КАК НомерСтроки<br>| ИЗ<br>| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг <br>| ГДЕ<br>| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент<br>|<br>|СГРУППИРОВАТЬ ПО<br>| РеализацияТоваровУслуг.Номенклатура,<br>| РеализацияТоваровУслуг.Коэффициент,<br>| РеализацияТоваровУслуг.ЕдиницаИзмерения,<br>| РеализацияТоваровУслуг.Цена)КАК ВложенныйЗапрос<br>|<br>|УПОРЯДОЧИТЬ ПО НомерСтроки ВОЗР";<br><br>ЗапросТовары = Запрос.Выполнить().Выгрузить();<br>ТабДокумент  = Новый ТабличныйДокумент;<br>ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_АктНаПередачуПрав";<br><br>Макет = ПолучитьМакет("АктНаПередачуПрав");<br>// Выводим общие реквизиты шапки<br>СведенияОПоставщике       = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.ЮрФизЛицо,        Шапка.ДатаДокумента);<br>СведенияОПокупателе       = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(СсылкаНаОбъект.Контрагент,       Шапка.ДатаДокумента);<br>СведенияОГрузополучателе  = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузополучатель,  Шапка.ДатаДокумента);<br>СведенияОГрузоотправитель = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузоотправитель, Шапка.ДатаДокумента);<br><br>ОбластьМакета = Макет.ПолучитьОбласть("Шапка");<br>ОбластьМакета.Параметры.Заполнить(Шапка);<br>ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка);<br>ОбластьМакета.Параметры.ДатаДокумента  = Шапка.ДатаДокумента;<br><br>Если Шапка.ЮрФизЛицо = Шапка.Грузоотправитель Тогда<br>ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,ИНН,ЮридическийАдрес,Телефоны,БанковскиеРеквизиты");<br>Иначе<br>ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование,ИНН,ЮридическийАдрес,Телефоны,БанковскиеРеквизиты");<br>КонецЕсли;<br><br>Если СокрЛП(Шапка.АдресДоставки) <> """" Тогда<br>ПредставлениеГрузополучателяДоАдреса    = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование,ИНН,ЮридическийАдрес,Телефоны,БанковскиеРеквизиты");<br>ПредставлениеГрузополучателяПослеАдреса = """";<br>//ОбластьМакета.Параметры.ПредставлениеГрузополучателя = ?(СокрЛП(ПредставлениеГрузополучателяДоАдреса) = """", """", ПредставлениеГрузополучателяДоАдреса+", ") + Шапка.АдресДоставки+?(СокрЛП(ПредставлениеГрузополучателяПослеАдреса)="""", """", ", "+ПредставлениеГрузополучателяПослеАдреса);<br>Иначе<br>//ОбластьМакета.Параметры.ПредставлениеГрузополучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,БанковскиеРеквизиты");<br>КонецЕсли;<br><br>//ОбластьМакета.Параметры.ПредставлениеПоставщика  = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,ИНН,ЮридическийАдрес,Телефоны,БанковскиеРеквизиты");<br>ОбластьМакета.Параметры.ПредставлениеПлательщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование,ИНН,ЮридическийАдрес,Телефоны,БанковскиеРеквизиты,КПП,");<br>//ОбластьМакета.Параметры.Основание = СтрокаОснованияДоговор + Шапка.Основание;<br>ОбластьМакета.Параметры.франПолноеНаименованиеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование");<br>ОбластьМакета.Параметры.франПолноеНаименованиеКонтрагента = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование");<br><br>ТабДокумент.Вывести(ОбластьМакета);<br><br>НомерСтраницы   = 1;<br><br>// Выводим заголовок таблицы<br>ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаб");<br>ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; <br>ТабДокумент.Вывести(ЗаголовокТаблицы);<br><br>КоличествоСтрок = ЗапросТовары.Количество();<br><br>// инициализация итогов по странице<br>ИтогоМассаБруттоНаСтранице = 0;<br>ИтогоМестНаСтранице        = 0;<br>ИтогоКоличествоНаСтранице  = 0;<br>ИтогоСуммаНаСтранице       = 0;<br>ИтогоНДСНаСтранице         = 0;<br>//ИтогоСуммаСНДСНаСтранице   = 0;<br><br>// инициализация итогов по документу<br>ИтогоМассаБрутто = 0;<br>ИтогоМест        = 0;<br>ИтогоКоличество  = 0;<br>//ИтогоСуммаСНДС   = 0;<br>ИтогоСумма       = 0;<br>ИтогоНДС         = 0;<br>Ном              = 0;<br><br>// Создаем массив для проверки вывода<br>МассивВыводимыхОбластей = Новый Массив;<br><br>// Выводим многострочную часть докмента<br>ОбластьМакета           = Макет.ПолучитьОбласть("Строка");<br>ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице");<br>ОбластьПодвала          = Макет.ПолучитьОбласть("Подвал");<br>ОбластьВсего            = Макет.ПолучитьОбласть("Всего");<br><br>Для Каждого ВыборкаСтрок Из ЗапросТовары Цикл<br><br>Если Не ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда<br>Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);<br>Продолжить;<br>КонецЕсли;<br><br>Ном           = Ном + 1;<br><br>ОбластьМакета.Параметры.Заполнить(ВыборкаСтрок);<br>ОбластьМакета.Параметры.Номер             = ЗапросТовары.Индекс(ВыборкаСтрок) + 1;<br>ОбластьМакета.Параметры.ТоварНаименование = СокрЛП(ВыборкаСтрок.ТоварНаименование)<br>                                         + УниверсальныеМеханизмы.ПредставлениеХарактеристик(ВыборкаСтрок); <br>Мест        = 0;<br><br>Количество  = ВыборкаСтрок.Количество;<br>СуммаСНДС   = Окр((ВыборкаСтрок.Сумма + ?(Шапка.СуммаВключаетНДС, 0, ВыборкаСтрок.СуммаНДС)), 2);<br>СуммаНДС    = Окр(ВыборкаСтрок.СуммаНДС, 2);<br>СуммаБезНДС = СуммаСНДС  - СуммаНДС;<br><br>//ОбластьМакета.Параметры.МассаБрутто = МассаБрутто;<br>//ОбластьМакета.Параметры.СуммаСНДС   = СуммаСНДС;<br>ОбластьМакета.Параметры.СуммаНДС    = СуммаНДС;<br>//ОбластьМакета.Параметры.СтавкаНДС   = ВыборкаСтрок.СтавкаНДС;<br>ОбластьМакета.Параметры.СуммаБезНДС = СуммаБезНДС;<br><br>Если Шапка.СуммаВключаетНДС<br>Или ВыборкаСтрок.ЕстьСкидкиПоСтроке Тогда<br>ОбластьМакета.Параметры.Цена = ?(Количество = 0, 0, СуммаБезНДС / Количество);<br>Иначе<br>ОбластьМакета.Параметры.Цена = ВыборкаСтрок.Цена;<br>КонецЕсли;<br><br>МассивВыводимыхОбластей.Очистить();<br>МассивВыводимыхОбластей.Добавить(ОбластьМакета);<br>МассивВыводимыхОбластей.Добавить(ОбластьИтоговПоСтранице);<br>Если Ном = КоличествоСтрок Тогда<br>МассивВыводимыхОбластей.Добавить(ОбластьВсего);<br>МассивВыводимыхОбластей.Добавить(ОбластьПодвала);<br>КонецЕсли; <br><br>Если НЕ ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда<br><br>ТабДокумент.Вывести(ОбластьИтоговПоСтранице);<br><br>// очистим итоги по странице<br>ИтогоМассаБруттоНаСтранице = 0;<br>ИтогоМестНаСтранице        = 0;<br>ИтогоКоличествоНаСтранице  = 0;<br>ИтогоСуммаНаСтранице       = 0;<br>ИтогоНДСНаСтранице         = 0;<br>//ИтогоСуммаСНДСНаСтранице   = 0;<br><br>НомерСтраницы = НомерСтраницы + 1;<br>ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();<br>ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;<br>ТабДокумент.Вывести(ЗаголовокТаблицы);<br><br>КонецЕсли; <br><br>ТабДокумент.Вывести(ОбластьМакета);<br><br>// увеличим итоги по странице<br>//ИтогоМассаБруттоНаСтранице = ИтогоМассаБруттоНаСтранице + МассаБрутто;<br>ИтогоМестНаСтранице        = ИтогоМестНаСтранице        + Мест;<br>ИтогоКоличествоНаСтранице  = ИтогоКоличествоНаСтранице  + Количество;<br>ИтогоСуммаНаСтранице       = ИтогоСуммаНаСтранице       + СуммаБезНДС;<br>ИтогоНДСНаСтранице         = ИтогоНДСНаСтранице         + СуммаНДС;<br>//ИтогоСуммаСНДСНаСтранице   = ИтогоСуммаСНДСНаСтранице   + СуммаСНДС;<br><br>// увеличим итоги по дукументу<br>//ИтогоМассаБрутто = ИтогоМассаБрутто + МассаБрутто;<br>ИтогоМест        = ИтогоМест        + Мест;<br>ИтогоКоличество  = ИтогоКоличество  + Количество;<br>ИтогоСумма       = ИтогоСумма       + СуммаБезНДС;<br>ИтогоНДС         = ИтогоНДС         + СуммаНДС;<br>//ИтогоСуммаСНДС   = ИтогоСуммаСНДС   + СуммаСНДС;<br><br>КонецЦикла;<br><br>// Выводим подвал документа<br>ОбластьМакета = Макет.ПолучитьОбласть("Подвал");<br><br>ПолнаяДатаДокумента = Формат(Шапка.ДатаДокумента, "ДФ=""""дд ММММ гггг """"года""""""""");<br>ДлинаСтроки = СтрДлина(ПолнаяДатаДокумента);<br>ПервыйРазделитель = Найти(ПолнаяДатаДокумента," ");<br>ВторойРазделитель = Найти(Прав(ПолнаяДатаДокумента,ДлинаСтроки-ПервыйРазделитель)," ")+ПервыйРазделитель;<br>ОбластьМакета.Параметры.ДатаДокументаДень     = """"+Лев(ПолнаяДатаДокумента,ПервыйРазделитель-1)+"""";<br>ОбластьМакета.Параметры.ДатаДокументаМесяц    = Сред(ПолнаяДатаДокумента,ПервыйРазделитель+1,ВторойРазделитель-ПервыйРазделитель-1);<br>ОбластьМакета.Параметры.ДатаДокументаГод      = Прав(ПолнаяДатаДокумента,ДлинаСтроки-ВторойРазделитель); <br><br>ФамилияИмяОтчествоФизЛица     = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ОтветственноеЛицо, Шапка.ДатаДокумента);<br><br>ФамилияИмяОтчествоОтпускПроизвел = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество;<br>ФИООтпускПроизвел                = ФормированиеПечатныхФорм.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоОтпускПроизвел);<br><br>//ОбластьМакета.Параметры.ФИОКладовщика       = ФИООтпускПроизвел;<br><br>// Доверенность<br>ОбластьМакета.Параметры.ДоверенностьНомер     = Шапка.ДоверенностьНомер;<br>ОбластьМакета.Параметры.ДоверенностьДата      = Формат(Шапка.ДоверенностьДата, "ДФ='дд ММММ гггг'");<br>ОбластьМакета.Параметры.ДоверенностьВыдана    = Шапка.ДоверенностьВыдана;<br>ОбластьМакета.Параметры.ДоверенностьЧерезКого = Шапка.ДоверенностьЧерезКого;<br><br>Если ИтогоМест > 0 Тогда<br>ОбластьМакета.Параметры.ВсегоМестПрописью = ЧислоПрописью(ИтогоМест, ,",,,,,,,,0");<br>КонецЕсли;<br><br>ОбластьМакета.Параметры.КоличествоПорядковыхНомеровЗаписейПрописью = ЧислоПрописью(КоличествоСтрок, ,",,,,,,,,0");<br>//ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(ИтогоСуммаСНДС);<br>ТабДокумент.Вывести(ОбластьМакета);<br><br>// Зададим параметры макета<br>ТабДокумент.ПолеСверху              = 0;<br>ТабДокумент.ПолеСлева               = 0;<br>ТабДокумент.ПолеСнизу               = 0;<br>ТабДокумент.ПолеСправа              = 0;<br>ТабДокумент.РазмерКолонтитулаСверху = 0;<br>ТабДокумент.РазмерКолонтитулаСнизу  = 0;<br>ТабДокумент.АвтоМасштаб             = Истина;<br>ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;<br><br>Возврат ТабДокумент;<br><br>КонецФункции"
Где в Шапка организация ?<br><br>
> Запрос.Текст ="ВЫБРАТЬ<br>>            | РеализацияТоваровУслуг.Номер,<br>>            | РеализацияТоваровУслуг.Дата КАК ДатаДокумента,<br>>            | РеализацияТоваровУслуг.Организация КАК Контрагент,<br>>            | РеализацияТоваровУслуг.Организация КАК ЮрФизЛицо,<br>>            | РеализацияТоваровУслуг.Организация КАК Поставщик,<br>>            | РеализацияТоваровУслуг.Организация КАК Организация3,<br>>            | РеализацияТоваровУслуг.Организация КАК Руководители,<br><br>Прикольно выглядит. А добавить туда еще строку<br>            | РеализацияТоваровУслуг.Организация КАК Организация,<br>не пробовали?
Tanya, Дина Селиверстова, BelikovS, ZhAmAn<br>Огромное вам Спасибо! За ваше потраченное (не зря) время!<br> <br>Было еще пара тройка ошибок с которыми я справился сам...

Читают тему

(гостей: 1)

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