8/28/2017 0 Comments 1C Внешние ФормыВнешняя печатная форма 1. С 8. 3 для управляемое приложение. Рассмотрим написание простейшей внешней печатной формы в 1. С 8. 3 для управляемого приложения на примере конфигураций Бухгалтерия 3. Управление торговлей 1. Например нам требуется написать внешнюю печатную форму к документу Реализация товаров и услуг: вывести основные данные документа, а так же из табличной части Товары: номенклатуру, цену, количество и сумму. Создание внешней обработки. В конфигураторе 1. C Предприятия 8 создаем внешнюю обработку (Файл- > Новый- > Внешняя обработка), задаем имя, добавляем реквизит Документ с типом Документ. Ссылка. Реализация. Товаров. Услуг, он не является обязательным для работы печатной формы, но пригодится нам для ее регистрации в базе. Создание макета печатной формы. Добавляем новый макет, тип макета оставляем Табличный документ. На макете создаем три области: Шапка, Данные и Подвал. Сделать это можно выделив нужное количество строк и нажав меню Таблица- > Имена- > Назначить имя (Ctrl+Shift+N). После этого начинаем располагать в областях текст и параметры. В шапку выведем название печатной формы, номер документа и организацию, а также нарисуем границы шапки таблицы и напишем имена колонок. При создании параметра в свойствах ячейки, на закладке макет следует установить свойство Заполнение в значение Параметр. В области Данные создадим параметры для вывода строк табличной части(Номенклатура, цена и т. Подвал для итогов по количеству и сумме. Программирование. Зайдем в модуль объекта печатной формы Действия- > Открыть модуль объекта. Теперь в модуле объекта следует создать обязательную функцию Сведения. ОВнешней. Обработке(). Она необходима для регистрации печатной формы в справочнике Дополнительные. Отчеты. ИОбработки, в ней собирается структура с данными для подключения формы. Эта функция, а также ряд сопутствующих ей, практически одинаковы для всех печатных форм, поэтому их можно просто копировать в новую печатную форму ничего не меняя. ![]() Комментариев: 69 на “Внешние печатные формы в управляемых формах 1С 8.3 и 8.2”. Калькулятор внедрения 1C.Рассмотрим содержание функции Сведения. ОВнешней. Обработке(). Для начала создадим ее в модуле: Функция Сведения. ОВнешней. Обработке()Экспорт. Конец. Функции. Создадим структуру Параметры. Регистрации в которой и будут храниться все данные необходимые для регистрации. Параметры. Регистрации =Новый Структура; Создадим массив Массив. Назначений в котором будут храниться наименования документов и справочников из которых будет производиться печать. Массив. Назначений =Новый Массив; Наименование нашей печатной формы запишем в переменную Наименование, для того что бы не прописывать его в ручную вынесем получение наименования в отдельную функцию, которая будет получать его из представления внешней обработки. Функция Указать. Наименование. Внешней. Печатной. Формы(). Наименование = Этот. Объект. Метаданные(). Обработка для тестирования внешних печатных форм в восьмерке. 1C Messenger для отправки сообщений, файлов и обмена . Отчет НДС 1С Представление(); Возврат Наименование; Конец. Функции. А теперь заполним переменную. Наименование = Указать. Наименование. Внешней. Внешние печатные формы в восьмерке, Платформа 1С v8.x (все механизмы), Статья. Инструкция по созданию в 1С 8.3 внешней печатной формы на. В этом разделе собраны внешние печатные формы 1С 8. Формы в разделе как платные, так и бесплатные. Бесплатные скачиваются без всякой. Рассмотрим написание простейшей печатной формы в 1с 8.1 - 8.2 на примере конфигурации Бухгалтерия предприятия 2.0. Допустим требуется написать внешнюю печатную форму к. ![]() ![]() Печатной. Формы(); Заполним Массив. Назначений используя реквизит внешней обработки Документ. Также вынесем получение элемента массива в отдельную функцию. Функция Получить. Метаданные. Документа. Печати(). Полное. Имя = Документ. Метаданные(). Полное. Имя(); Возврат Полное. Имя; Конец. Функции. А теперь добавим полученные данные в массив. Массив. Назначений. Добавить(Получить. Метаданные. Документа. Печати()); Конечно этот метод не является правильным для случая, когда у вас несколько назначений, но для одного вполне годится. Приступим к заполнению структуры Параметры. Регистрации. Вид внешней обработки, может быть: Заполнение. Объекта, Дополнительный. Отчет, Создание. Связанных. Объектов, Печатная. Форма и т. д. Параметры. Регистрации. Вставить(. Но она у нас вполне безобидна =), поэтому ставим значение Ложь. Параметры. Регистрации. Вставить(. Запишем туда Наименование. Параметры. Регистрации. Вставить(. Опишем колонки Таблицы. Команд, вынеся это в отдельную функцию. Функция Получить. Таблицу. Команд(). Команды =Новый Таблица. Значений; //как будет выглядеть описание печ. Команды. Колонки. Добавить(. Представление = Представление. Новая. Команда. Идентификатор= Идентификатор. Новая. Команда. Использование= Использование. Новая. Команда. Показывать. Оповещение= Показывать. Оповещение. Новая. Команда. Модификатор= Модификатор; Конец. Функции. Параметры функции Добавить. Команду: Таблица. Команд — созданная в предыдущей функции Таблица значений с типовым набором полей; Представление — передадим в параметр Наименование печатной формы; Идентификатор — передадим в параметр полное наименование внешней обработки. Вынесем процесс получения в отдельную функцию. Функция Указать. Наименование. Команды. Печати(). Наименование = Этот. Объект. Метаданные(). Полное. Имя(); Возврат Наименование; Конец. Функции. Использование * — здесь возможны два значения. Вызов. Серверного. Метода — если обязательная функция Печать() будет находиться в модуле объекта печатной формы и выполняться на стороне сервера(в нашем примере будем использовать именно это значение); Вызов. Клиентского. Метода — если обязательная функция Печать() будет находиться в модуле основной формы внешней обработки и выполняться на стороне клиента; Показывать. Оповещение — параметр отвечает за вывод оповещения о печати; Модификатор — для печатных форм используется значение Печать. MXL. Вызов функции выглядит так: Добавить. Команду(Таблица. Команд, Наименование, Указать. Наименование. Команды. Печати(). Вот полный код этой и сопутствующих функций: Функция Сведения. ОВнешней. Обработке()Экспорт. Параметры. Регистрации =Новый Структура. Массив. Назначений =Новый Массив. Наименование = Указать. Наименование. Внешней. Печатной. Формы(). Массив. Назначений. Добавить(Получить. Метаданные. Документа. Печати()); //может быть - Заполнение. Объекта, Дополнительный. Отчет, Создание. Связанных. Объектов.. Представление = Представление. Новая. Команда. Идентификатор= Идентификатор. Новая. Команда. Использование= Использование. Новая. Команда. Показывать. Оповещение= Показывать. Оповещение. Новая. Команда. Модификатор= Модификатор; Конец. Функции. Приступим к написанию кода, который будет формировать нашу печатную форму. Так как при создании команды печати мы использовали параметр Вызов. Серверного. Метода, то в модуле объекта создаем обязательную серверную процедуру Печать(если использовать Вызов. Клиентского. Метода, то процедура Печать должна быть клиентской и располагаться в модуле основной формы обработки). Процедура Печать(Массив. Объектов, Коллекция. Печатных. Форм, Объекты. Печати, Параметры. Вывода)Экспорт. Конец. Процедуры. Массив. Объектов — массив содержащий ссылки на печатаемые документы или справочники(аналог Ссылка. На. Объект в обычном приложении); Коллекция. Печатных. Форм — таблица значений содержащая сформированные табличные документы; Объекты. Печати — строковой параметр, в котором передаются имена макетов печатных форм перечисленные через запятую; Параметры. Вывода – параметры вывода табличных документов на печать. В процедуре Печать нам следует сформировать табличный документ с данными нашей печатной формы и добавить его в Коллекцию печатных форм. Для заполнения табличного документа создадим в модуле объекта серверную функцию Печать. Формы, передадим в параметр массив со ссылками на печатаемые документы(Массив. Объектов). Функция Печать. Формы(Массив. Объектов)Конец. Функции. В функции создадим переменную для табличного документа, в который будет выводится печатная форма, получим макет и области макета. Таб. Док =новый Табличный. Документ. Макет = Получить. Макет(. Чтобы получить выборку запроса, сначала выполняем его, а затем выгружаем. Общая. Выборка = Запрос. Выполнить(). Выгрузить(); Теперь при помощи цикла обойдем все ссылки из массива объектов и в одном табличном документесформируем печатные формы для всех выбранных документов. Для. Каждого Ссылка. На. Объект из Массив. Объектов Цикл. Конец. Цикла; В данном цикле начнем формирование печатных форм каждого из документов. Заполним параметры шапки и выведем ее в табличный документ. Область. Шапки. Параметры. Текст. Заголовка =. Поле структуры должно называться также, как и поле таблицы по которому осуществляется поиск. Отбор =Новый Структура. Отбор. Вставить(. Также в цикле считаем итоговые значения количества и суммы. Заполнять каждый параметр в отдельности мы не будем, а используем процедуру Заполнить. Значения. Свойств((< Приемник> , < Источник> ) из глобального контекста, она копирует значения свойств < Источника> в свойства < Приемника>. Сопоставление производится по именам свойств. Подробнее об этом можно прочитать в синтаксис- помощнике 1. С Предприятия 8. Итого. Сумма =0. Итого. Количество =0; Для. Каждого Стр из Выборка Цикл. Заполнить. Значения. Свойств(Область. Данные. Параметры,Стр). Итого. Сумма = Итого. Сумма + Стр. Сумма. Итого. Количество = Итого. Количество + Стр. Количество. Таб. Док. Вывести(Область. Данные); Конец. Цикла; Заполним и выведем область Подвал. Область. Подвал. Параметры. Итого. Количество = Итого. Количество. Область. Подвал. Параметры. Итого. Сумма = Итого. Сумма. Таб. Док. Вывести(Область. Подвал); Для того что бы печатная форма каждого документа выводилась на отдельном листе, поставим горизонтальный разделитель. Таб. Док. Вывести. Горизонтальный. Разделитель. Страниц(); Возвращаем заполненный табличный документ из функции Печать. Формы. Возврат Таб. Док; Код функции Печать. Формы целиком: Функция Печать. Формы(Массив. Объектов)Экспорт. Таб. Док =новый Табличный. Документ. Макет = Получить. Макет(. Для добавления табличного документа в коллекцию можно воспользоваться типовой процедурой Вывести. Табличный. Документ. ВКоллекцию из модуля Управление. Печатью(процедура есть и в Бухгалтерии 3. Управление торговлей 1. В параметры этой процедуры необходимо передать: Коллекция. Печатных. Форм — таблица значений содержащая сформированные табличные документы; ;Имя. Макета — наименование команды печати; Синоним. Макета — наименование печатной формы; Табличный. Документ — заполненный табличный документ. Для параметров Имя. Макета и Синоним. Макета используем уже созданные нами процедуры, которые использовались для заполнения сведений о внешней обработки.
0 Comments
Leave a Reply. |