Внешняя печатная форма с использованием бсп и вызовом клиентского метода. После обновления программы начали появляться ошибки при попытке формирования печатных форм документов

У многих пользователей, только начинающих работать в "1С: Управлении торговлей", ред. 11 вызывает много вопросов схема учета взаиморасчетов с клиентами, заложенная в программе. Попробуем разобраться в ней вместе.

1. Соглашения и договоры - зачем в документах и то, и другое?

Соглашения с клиентами - это торговые условия. В них указываются те условия продаж и оплаты товаров, которые будут использоваться и контролироваться при работе с клиентом. Указание соглашения является обязательным для заказов и реализаций.

Договоры – это разрез учета взаиморасчетов. Пользователь может отказаться от их использования, установив переключатель в карточке соглашения с клиентом в значение «Договоры не используются»

2. Выполнение отложенных движений по расчетам с партнерами – что это?

В УТ ред. 11 организована такая схема взаиморасчетов, когда при проведении пользователем документы делают только «предварительные» движения. Затем, запускается специальное регламентное задание «Выполнение отложенных движений по расчетам с партнерами» - которое «допроводит» документы. Запустить его можно двумя способами – из формы отчета «Расчеты с клиентами» по кнопке «Актуализировать расчеты», либо из формы регламентированных заданий («Администрирование/Поддержка и обслуживание/Регламентные и фоновые задания») – здесь же можно настроить выполнение этой обработки по расписанию, например раз в день.

3. Учет по договорам или по документам расчета?

В УТ ред. 11 возможны две схемы взаиморасчетов с клиентами:

  • С использованием договоров. Эта схема позволяет вести взаиморасчеты с контрагентами по договору в целом, то есть в табличной части платежных документов достаточно будет указать одну строка с договором на всю сумму платежа.

    Распределение платежей по реализациям программа выполнит самостоятельно (по ФИФО) при запуске регламентного задания «Выполнение отложенных движений по расчетам с партнерами».

  • С использованием документов расчета – заказов или накладных. В этом случае необходимо будет вручную привязать оплаты к отгрузкам или заказам. То есть в случае поступления аванса необходимо будет выполнить зачет оплаты, а в случае оплаты после отгрузки - заполнить табличную часть платежного документа по остаткам или вручную указывать погашаемые накладные или заказы.

    Для формирования окончательных движений по расчетам с клиентами так же необходимо будет запустить описанное выше регламентное задание.

4. Зачет предоплаты – в каком случае и как делать?

Если платеж оформляется без указания расчетного документа (заказа или реализации), то необходимо будет выполнить процедуру зачета аванса. Если отгрузка производится по заказу, то зачет оплаты происходит в документе заказа, в противном случае – в документе реализации. Для этого предусмотрена специальная кнопка «Зачет оплаты»

5. В каком отчете можно посмотреть взаиморасчеты с клиентами?

Увидеть общую картину взаиморасчетов можно в отчетах «Анализ расчетов с клиентами по договорам» и «Анализ расчетов с клиентами по заказам/реализациям»

Представляю вашему вниманию небольшую статью-справку по разработке внешней печатной формы с использованием БСП и возможностью ведения диалога с пользователем. Запрос различных данных и т. д.

Поводом для написания послужили трудности с которыми я столкнулся при реализации данной задачи. Необходимо было разработать печатную форму с возможностью формирования дополнительного документа и вывода формы с ссылкой на сформированный документ, с целью его редактирования. После правки форма со ссылкой закрывается и продолжается процесс печати.

При печати с использованием типа команды "ВызовСерверногоМетода" информации много и никаких трудностей его использование не вызывает. Но, по очевидным причинам, использовать его нельзя, т. к. диалог с пользователем ведется "на клиенте". В этом случае справка по БСП предлагает использовать тип команды "ВызовКлиентскогоМетода" и три варианта его использования. В частности, для внешней печатной формы предлагается создать форму обработки и реализовать в ней процедуру печати следующего вида

&НаКлиенте Процедура Печать(ИдентификаторКоманды, ОбъектыНазначенияМассив) //Реализация логики процедуры КонецПроцедуры

В дополнении указано, что в параметре формы "ДополнительнаяОбработкаСсылка", передается ссылка этого объекта с типом Справочники.ДополнительныеОтчетыИОбработки. И на этом все.

Если с самой реализацией алгоритма выборки данных, созданием дополнительного документа и выводом формы со ссылкой на него проблем никаких, то с выводом на печать итогового документа возникли трудности. По логике, для использования механизма БСП надо вызвать вызвать процедуру печати,

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) и далее Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "МТТН") Тогда УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ИмяМакета", "СинонимМакета", ТабличныйДокумент) КонецЕсли;

Но, при прямом вызове этой процедуры с помощью

РеквзитФормыВЗначение(Объект).Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);

работать не будет. Табличный документ формируется, выводится в коллекцию, но не отображается.

На этом месте я застрял на пару часов. "Гугление" особого результата не принесло. В основном предлагалось сформировать табличный документ и использовать его метод "Показать()". Но, хотелось получить результат аналогичный полученному с помощью "ВызоваСерверногоМетода", т. е. вывести документ в стандартную форму БСП "ПечатьДокументов". Наконец, на просторах интернета наткнулся на статью, где описана передача параметров во "внешнюю" форму обработки. Адаптировав информацию в статье под свою задачу, все получилось.

Итак, для реализации задачи необходимо:

Указать в интерфейсе регистрации обработки использование "ВызвовКлиентскогоМетода"

ДобавитьКоманду(ТаблицаКоманд, "ПредставлениеКоманды,"ИдентификаторКоманды",Перечисление.СпособыВызоваДополнительныхОбработок.ВызовКлиентскогоМетода,Истина, "ПечатьMXL");

Реализовать две процедуры "Печать" в соответствии с требованиями БСП, в основной форме обработки "НаКлиенте" и в модуле объекта обработки.

Код процедуры "Печать" в форме выглядит так:

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

На этом, в общем то, и все.

В файле пример обработки, использующей данный метод. Обработка печатает "Международную транспортную накладную (CMR)", на основе документов "РеализацияТоваровУслуг" и "ТранспортнаяНакладная". В случае отсутствия транспортных накладных, пользователю выводится предложение их создать и форма со ссылкой на созданный документ в случае согласия, для заполнения транспортной накладной согласно требованиям.

/
Торговля для частных предпринимателей Украины /
Вопросы по программе

После обновления программы начали появляться ошибки при попытке формирования печатных форм документов. Как исправит ситуацию?

В типовой конфигурации существует возможность использования как внешних печатных форм, так и печатных форм, встроенных в структуру метаданных конфигурации. По умолчанию более высокий приоритет использования у внешних печатных форм, которые расположены в папке PrnForms каталога информационной базы.

Появление ошибок при формировании печатных форм после обновления конфигурации означает, что не были обновлены внешние печатные формы.

Для устранения этой ошибки необходимо воспользоваться обработкой "Сохранение печатных форм документов" (меню "Операции" - "Обработки").

В этой обработке необходимо указать путь, по которому хранятся внешние печатные формы документов (по умолчанию папка PrnForms каталога информационной базы), отметить необходимые формы (например, "Накладная" документа "Реализация товаров и услуг"), после чего нажать кнопку "Сохранить". При этом внешняя печатная форма будет заменена на более новую, встроенную в конфигурацию.


Нас находят: при формировании печатной формы возникла ошибка обратитесь к администратору , При формировании печатной формы возникла ошибка , 1c ошибка формирование комплекта документов, ошибка формирования документа, при формировании печатной формы этикеток произошла ошибка обратитесь к администратору, при формировании печатной формы этикетки возникла ошибка обратитесь к администратору, при формировании печатной формы этикетки возникла ошибка, При формировании печатной формы ПФ_MXL_Накладная1 возникла ошибка Обратитесь к администратору, При формировании печатной формы М11Должность возникла ошибка Обратитесь к администратору ВызватьИсключение(ТекстСообщенияОбОшибке), при формировании печатной формы комплектдокументов возникла ошибка

Похожие публикации