Ошибка при вызове метода контекста получитьмакет 1с
пишет недопустимое значение параметра номер 1, не на "Объект" ли ругается?
(0) обработка встроенная или нет? Если встроенная то макет получаем таким образом:
Макет = Обработки.МояОбработка.ПолучитьМакет("ИмяМакета")
Макет - это табличный документ, где у тебя заготовлен макет (эскиз, бланк) печатной формы.
Ты берешь этот бланк, заполняешь его и выводишь в Новый ТабличныйДокумент
Впрочем, бросилось в глаза
Это не маразм ли?
на перебор запроса наверное ругался, не верно там было, сейчас ругается метод объекта Выбрать не обнаружен
как напишу сюда так решение в голове появляется, там Выбрать надо после Выполнить
(45) так а вывод секций будет происходить в процедуре СформироватьДомоуправления() ?
а в ВывестиДомоуправление(Команда) только Показать() ?
или на сервере только выполнить запрос и вернуть результат, а на клиенте его обработка, вывод и показ всех секций?
(58) РеквизитФормыВЗначение доступен только на сервере, на клиенте его нет. Тебе же сказали - сделай все на сервере, на клиент верни уже готовый сформированный табличный документ
так получается в функции на сервере, мне не нужен никакой макет, подскажите как сформировать таблицу?
если я просто сформирую перебором и условиями таблицу НоваяСтрока().
и верну её, как мне вывести то её в макет, если он все равно не доступен
на клиенте?
ну да ладно. :) была проблема на каком то билде. что показать не отображалось если вызов на сервере, может пофиксили
(74) ну как бы. у меня все отчеты в серверных процедурах выводятся, вот я и забеспокоилась, вдруг фигню делаю)
(82) не торопись уже! Подумай внимательно. Прочувствуй разницу между макетом и табличной частью!
Макет - это трафарет, который ты накладываешь на ватман, когда рисуешь какую-то хрень. Но показывать людям ты будешь ватман, а не траварет
(90) нет не на форме, решил вывести всё это в таблицу, а потом уже думать про вывод на экран
самое досадное то что задача на 5 копеек, а я вожусь с ней день ((((
В общем, Тот ТабДок, который ты формируешь и типа показываешь, на самом деле нигде не лежит.
Если на пальцах - ты нарисовал отчет на ватмане в чулане, а народ ждет от тебя результатов на ватмане в гостиной. Твоя задача - подложить в гостиную ватман из чулана))
У меня на форме отчета лежит табличная часть, которая называется ТабДок. Она не реквизит отчета, она реквизит формы, поэтому я легко обращаюсь к ней и заполняю ее своим отчетом с помощью макета.
только вначале ее всегда надо очищать)
Полный путь к макету должен быть в формате "Документ.ИмяДокумента.ИмяМакетаПФ". Было просто "ИмяМакетаПФ". Раньше, похоже, система этого не секла, сейчас выдает ошибку.
Fedor1970; Светлый ум; sorry_z; user647083_kev_78_78; ammorf; ea_len; Hoppius; VAAngelov; Swetlana; + 9 – Ответить
(1) Можно написать что угодно и достаточно одной точки, например, "Фигня.ТрудовойДоговор" прекрасно работает. А все изза того что производится поиск в РегистрСведений.ПользовательскиеМакетыПечати, в котором измерениями являются : Объект = Фигня, ИмяМакета = ТрудовойДоговор. После того как программа не нашла аналогов вашей Фигне в этом регистре, она открывает ваш макет ТрудовойДоговор.
позвать того , кто обновлял
если в вашем внешнем макете ( печатной форме) таблица называлась Общая
но после обновления разрботчики ее назвали Общие
как думаете ? - подхватит печатную форму ?
(2) По делу есть что то? Обновления типовые, никто ничего не менял. Путь к макету берется из ВПФ. Видимо изменились требования к нему.
Полный путь к макету должен быть в формате "Документ.ИмяДокумента.ИмяМакетаПФ". Было просто "ИмяМакетаПФ". Раньше, похоже, система этого не секла, сейчас выдает ошибку.
Fedor1970; Светлый ум; sorry_z; user647083_kev_78_78; ammorf; ea_len; Hoppius; VAAngelov; Swetlana; + 9 – Ответить
В передаваемых параметрах (шестой) к процедуре ВывестиТабличныйДокументВКоллекцию нужен полный путь до печатной формы.
(6) не совсем понял, внешняя печатная форма расположена в этойже самой внешней обработки, что нужно сдлать чтобы система не ругалась. В приведенном выше примере сылается на нахождение формы в документе.
Так же вопрос, если одна печатная форма (новая, расположена в самой обработке) используется на два документа? то данную функцию нельзя универсально использовать? нужно вместо одной обработки сделать две?
(8)
Полный путь указывается именно к документу, для которого создается внешняя печатная форма.
А если ВПФ создается для нескольких типов документов, то достаточно в полном пути прописать один из них. Все равно будет работать, я проверял.
Я поступил следующим образом.
Добавил в расширение УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию с функцией Перед
Теперь печатные формы переделывать не потребуется.
Добавьте в расширение процедуру общего модуля УправлениеПечатьюМультиязычность &Вместо("ЯзыкиМакета").
//и будет вам счастье:) не надо будет трогать ни одну форму
Твоим способом заработает, НО ПРИ ЭТОМ СТАНДАРТНЫЕ ПФ перестанут работать.
НУЖНО ПРОСТО В ОБРАБОТКУ ПРОПИСАТЬ полный муть на макет, например :
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ДоговорПодрядаСБК") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,"ДоговорПодрядаСБК", "ДоговорПодрядаСБК",
ПечатьДоговора(МассивОбъектов, ОбъектыПечати),,
" Документ.ДоговорРаботыУслуги.ПФ_MXL_ДыговорПодряда ");
1C. "Недопустимое значение параметра" при вызове макета в расширении
Дано: 1С (в данном примере конфигурация 1С:Университет ПРОФ), платформа 8.3.10. Создано расширение, в котором к документу добавлен новый макет. В модуле менеджера документа есть процедура, формирующая печатную форму на базе макета. Необходимо было заменить данную процедуру (при помощи директивы расширения "&Вместо") и заменить вызов встроенного макета на наш, добавленный в расширение.
Проблема: при вызове добавленного макета в момент его печати в режиме "1С:Предприятие" возникала ошибка при получении макета:
: Ошибка при вызове метода контекста (ПолучитьМакет)
Макет = Документы.ЗаявлениеПоступающего.ПолучитьМакет ("Расш1_МакетЗаявлениеПоступающего");
по причине:
Недопустимое значение параметра (параметр номер '1')
Код, вызывающий ошибку:
Варианты решения:
1. Добавить функцию, выполняемую на сервере, которая вызовет добавленный макет из документа:
А затем из заменяемой процедуры вызвать эту функцию:
(как оказалось этот способ не нужен. Причину читайте ниже)
2. Другой вариант - перенести макеты в общие и следующей командой вызвать (получить) макет из "Общие макеты":
------
Видимо это всё-таки какой-то глюк платформы (протестировано на 8.3.10.2252 и 8.3.10.2299), но если просто добавить пустой макет в общие макеты в расширении, то команда, ранее вызывавшая ошибку (ПолучитьМакет из макета документа без допфункций на сервере), начинает нормально работать. При удалении пустого общего макета, команда вызова макета из документа снова вызывает ошибку (даже если вынесена в функцию на сервере, как показано в способе 1).
Т.е. если всё-таки хочется сделать макеты нормально в документе (ожидая, что когда-нибудь этот глюк исправят), то нужно сделать макет-заглушку в общих макетах. Например:
При этом, если в расширении добавлено несколько макетов к документу, то "заглушки" достаточно только одной.
Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.
запускаю выдаёт ошибку
: Ошибка при вызове метода контекста (Выполнить): <(7, 4)>: Неправильный псевдоним "СправкаКЗаказу.ТабличнаяЧасть3."
>СправкаКЗаказу.ТабличнаяЧасть3.(
Выборка = Запрос.Выполнить().Выбрать();
по причине:
<(7, 4)>: Неправильный псевдоним "СправкаКЗаказу.ТабличнаяЧасть3."
>СправкаКЗаказу.ТабличнаяЧасть3.(
Ошибка в коде взаимодействия клиента и сервера на основе протокола TCP/IP (ошибка в коде)
Задание: Осуществить взаимодействие клиента и сервера на основе протокола TCP/IP. Реализовать.
Ошибка с графикой в приложении Windows form (ошибка не в коде!)
Всем доброго времени суток! Написал программу в windows form. Несколько раз скомпилировал и все.
Ошибки в коде Qt - ошибка: undefined reference to `qMain(int, char**)'; ошибка: error: ld returned 1 exit status
Здравствуйте, есть проект в нем 2 ошибки, не очень понимаю как их можно решить. Помогите, буду.
Ошибка в коде CS0649. Не понятно почему выдает данную ошибку.Также ошибка в форме со словом ref
Код Класса using System; using System.Collections.Generic; using System.Linq; using.
Процедура Печать1(ТабДок, Ссылка) Экспорт
// Макет = Документы.СправкаКЗаказу.ПолучитьМакет("Печать1");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СправкаКЗаказу.Заказчик,
| СправкаКЗаказу.Инвестор,
| СправкаКЗаказу.Объект,
| СправкаКЗаказу.Подрядчик,
| СправкаКЗаказу.Стройка,
| ТабличнаяЧасть3.НаименованиеРабот,
| ТабличнаяЧасть3.ЕдиницаИзмерения,
| ТабличнаяЧасть3.Количество,
| ТабличнаяЧасть3.ЦенаЗаЕдиницуРуб,
| ТабличнаяЧасть3.СтоимостьРуб
|ИЗ
| Документ.СправкаКЗаказу КАК СправкаКЗаказу,
| Документ.СправкаКЗаказу.ТабличнаяЧасть3 КАК ТабличнаяЧасть3
|ГДЕ
| СправкаКЗаказу.Ссылка В (&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Шапка = Макет.ПолучитьОбласть(Шапка);
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьТабличнаяЧасть3Шапка = Макет.ПолучитьОбласть("ТабличнаяЧасть3Шапка");
ОбластьТабличнаяЧасть3 = Макет.ПолучитьОбласть("ТабличнаяЧасть3");
ТабДок.Очистить();
ТабДок.Вывести(ОбластьТабличнаяЧасть3Шапка);
ВыборкаТабличнаяЧасть3 = Выборка.ТабличнаяЧасть3.Выбрать();
Пока ВыборкаТабличнаяЧасть3.Следующий() Цикл
ОбластьТабличнаяЧасть3.Параметры.Заполнить(ВыборкаТабличнаяЧ асть3);
ТабДок.Вывести(ОбластьТабличнаяЧасть3, ВыборкаТабличнаяЧасть3.Уровень());
КонецЦикла;
У автора почему-то работает, а у меня нет такой функции.
Потому что у автора толстый клиент судя по всему, без деления на клиент-сервер.
У вас ругается, потому что вы НаКлиенте пытаетесь сделать. А данный метод доступен только НаСервере.
получается нужно всегда на толстом клиенте запускать? Тонкий клияент, как я понял, это именно 8.3 версия, а толстый, это совместимый с прежними версиями.
Лучше вообще изучать сразу клиент-серверный вариант. Толстый клиент - это обычное приложение, а не управляемое. Это старая технология, можно сказать.
Вот я поставил толстый клиент, все равно не работает
Sgr_A, Ошибка инициализации модуля: Справочник.Справочник.Форма.ФормаЭлемента.Форма
по причине:
: Процедура или функция с указанным именем не определена (ПолучитьМакет)
Макет = >ПолучитьМакет("Макет");
foonfyrick, если вас интересует макет в справочнике, то метод доступен только у объектов СправочникМенеджер и СправочникОбъект.
Смотрите синтакс-помощнике:
Прикладные объекты/Справочники/СправочникМенеджер./Методы/ПолучитьМакет
Прикладные объекты/Справочники/СправочникОбъект./Методы/ПолучитьМакет
foonfyrick, с помощью такого же метода.
Sgr_A, я нашел в синтаксис-помощнике это, но вызвать в коде нельзя, нет никакого справочника менеджера или объекта.
Sgr_A, я хочу просто создать макет и вывести его на печать, как это сделать? Например в справочнике, я создал макет, написал в нем что-нибудь, дальше я хочу нажать на кнопку, которую я сам создал, и чтобы вывелся на печать этот макет.
Sgr_A, вот такая теперь ошибка:
: Переменная не определена (Документы)
Макет = >Документы.Документ.ПолучитьМакет("Макет"); (Проверка: Тонкий клиент)
И, почему-то, пишет проверка тонкий клиент хотя я толстый поставил.
foonfyrick, всё есть.
В вашем случае для обращения к методу через тип "СправочникМенеджер" надо написать:
Если через тип "СправочникОбъект", то примерно так:
Sgr_A, то же самое пишет что в справочнике что в документе:
: Переменная не определена (Справочники)
Макет = >Справочники.Справочник.ПолучитьМакет("ИмяМакета"); (Проверка: Тонкий клиент)
Sgr_A,
Sgr_A, Все заработало, но я не понял, почему нужно писать &НаСервере если всё выполняется в приложении, а приложение это значит на клиенте, почему я должен писать на сервере если у меня нет никакого сервера?
foonfyrick, ох…
Учите матчасть. Гуглите основы работы клиент-серверного взаимодействия 1С, понятия директив и прочее.
Толстый и тонкий клиенты - это фишки, которые придумали в 8.2 и продолжают использовать в 8.3. Ранее была единый пользовательский режим. Главное отличие в том, что "тонкий клиент" поддерживает вывод только управляемого интерфейса, а "толстый клиент" дает полный функционал платформы. Как результат, тонкий клиент более легкий по объему на диске и в памяти.
Разделение форм на клиентскую и серверную часть придумано в управляемом интерфейсе. Большинство учебных материалов дается по обычному интерфейсу (УПП, УТП и тд), где все было проще - формы всегда на клиенте, а серверная часть реализовывалась на общих модулях.
Возможности клиента управляемого интерфейса сильно урезаны по сравнению с возможностями клиента обычного интерфейса - не только нет прямого доступа к метаданным, но даже ограничена работа с простыми базовыми типами - на клиенте запрещено использовать таблицы значений, с сервера на клиент запрещено передавать список значений и так далее.
Sgr_A, А как данные записать теперь в этот макет? Я пытаюсь до параметров добраться, если делаю это на клиенте, то пишет "переменная сотрудники неопределена", а если делаю это на сервере, в функции "получить макет" то тоже переменная Сотрудники неопределена, и даже если просто любую строку туда попытаться присвоить, ничего не выводит в печать.
Читайте также: