Пример создания внешней печатной формы АКТа для Бухгалтерии 3.0
1. В конфигураторе 1C Предприятия 8 создаем внешнюю обработку (Файл->Новый->Внешняя обработка), задаем имя.
2. В модуле обработки пишем код. Постараюсь его максимально комментировать. Главное должно быть:
функция ПечатьВнешнейПечатнойФормы табличного документа - которая выведет данные в макет
функция Печать - вызывается из конфигурации! в нее передается массив печатаемых объектов
и функция СведенияОВнешнейОбработке(). Она необходима для регистрации печатной формы в справочнике ДополнительныеОтчетыИОбработки, в ней собирается структура с данными для подключения формы. Эта функция, а также ряд сопутствующих ей, практически одинаковы для всех печатных форм, поэтому их можно просто копировать в новую печатную форму ничего не меняя.
3. Добавляем макет вывода печатной формы:
4. Сохраняем и добавляем в конфигурацию:
Подключается через Администрирование - Печатные формы, отчеты и обработки:
Создаете новую обработку, записывайте и при открытии документа Реализация, нажав на Печать - появляются доступные печатные формы с разными подписывающими.
Текст кода для вывода шаблона несколько раз в один документ Ворд.
Случилось, что понадобилось вывести шаблон справки к продукции для каждой строки ТЧ товары документа. Создаем макет печ. формы с типом ActiveDocument и загружаем туда наш шаблон. Далее все стандартно по созданию внешней печ. формы + код ниже
Подключается к 1с82 web-сервису, получает от него описание типа
Создает переменную этого типа, Создает файл (dbf обмена).
Помещает файл в переменную и отдает на web-сервис для обработки, получает от него результат обработки
1. Для того чтобы вставить объект для печати штрихкода в табличный документ выполните последовательно следующие действия: Меню Таблица - Рисунки - Вставить объект
Если библиотека 1C Bar Code установлена корректно, в списке выбора внешних объектов появится строка "1С.V8.Печать штрих-кодов" (режим выбора как элемент управления):
2. Разместите рисунок объекта в нужной области печатной формы, установить размер колонки и рисунка так, чтобы ширина одного и другого не мешали выводу на печать
3. Далее необходимо внести изменения в код внешней обработки, которую планируется подключить в качестве внешней печатной формы. Первым делом нужно отредактировать текст запроса, добавив туда информацию из регистра сведений "Штрихкоды". Это позволит использовать два нужных нам измерения - сам штрихкод и тип штрихкода.
После внесения изменений в макет и запрос обработки, требуется отредактировать способ заполнения данными областей макета с учетом внесенных изменений. Самое интересное в этом примере кода процедуры - способ передачи данных в объект рисунка печати штрихкода:
Справочник «Внешние обработки, печатные формы, обработки по заполнению табличных частей» содержит список произвольных обработок, произвольных отчетов, дополнительных печатных форм, обработок для заполнения ТЧ объектов, обработок, подключаемых к отчетам.
Общее описание: Произвольная обработка (произвольный отчет)
Для произвольных обработок необходимо указывать только внешнюю обработку, которая находится на диске, для ее загрузки в реквизит элемента справочника. Так же для произвольных обработок необходимо иметь возможность назначать права доступа для их использования.
Обработка для заполнения ТЧ объектов
Для обработок заполнения ТЧ необходимо указывать внешнюю обработку, список объектов и их ТЧ, для которых необходимо использовать данную обработку.
Внешняя печатная форма
Для подключаемых внешних печатных форм необходимо указывать:
внешнюю обработку;
при необходимости можно указать список дополнительных параметров, которые будут передаваться внешней обработке;
список объектов, для которых данная печатная форма используется;
для каждого объекта несколько отборов, при выполнении которых печатная форма становится доступной для использования с данным объектом;
для каждого объекта свою отдельную печатную форму, но в списках печатных форм в объектах будет всегда появляться одинаковый пункт подменю;
для каждого объекта встроенную печатную форму, которая будет заменена указанной внешней.
Корректно зарегистрированная печатная форма будет выводиться в общем списке печатных форм объекта, вызываемом по кнопке «Печать». Если подключаемая печатная форма заменяет стандартную, то она заменяется и показывается в списке стандартных печатных форм.
Внешняя обработка, подключаемая к отчету
К каждому отчету (на базе универсального отчета) можно подключать произвольное количество обработок. Перечень обработок которые будут фактически подключены к отчету определяется правами доступа пользователей к внешним обработкам.
Для каждой обработки, подключенной к отчету можно указать режим её запуска:
Запускать автоматически перед началом построения отчета
Обработка будет запущена после нажатия на кнопку «Сформировать» в отчете перед выполнением запроса к данным. Результат выполнения обработки может быть выведен в форму отчета, если обработка завершается с указанием прервать построение отчета. Иначе форма отчета очистится после выполнения обработки. Также в зависимости от результата работы обработки построение отчета может быть прервано. Пользователю может быть выдано сообщение о причине.
Например:
a. не готовы исходные данные,
b. формирование отчета запрещено в этот период времени, этим пользователем и т.п.
Запускать автоматически после построения отчета
Обработка будет запущена, после того как нажата кнопка «Сформировать» и результаты отчета выведены в поле табличного документа. Этот режим предназначен для дополнительной обработки результата полученного в отчете.
Запускать вручную
Обработку можно будет запускать вручную, через меню «Действия» отчета
Обработки, для которых задан режим запуска «Вручную» автоматически размещаться в меню «Действия» отчета.
Требования к подключению внешних обработок(для программиста):
Произвольная обработка
Любая внешняя обработка с определенной основной формой. Произвольный отчет
Любой внешний отчет с определенной основной формой. Обработка для заполнения ТЧ объектов
Внешняя обработка, содержащая:
Необязательный реквизит «ДополнительныеПараметры» произвольного типа, которому будут передаваться дополнительные параметры примитивного типа в виде структуры.
В модуле экспортную процедуру: Инициализировать(Объект,ИмяТабличнойЧасти,ТабличноеПолеОбъекта)
где: Объект - ДокументОбъект, СправочникОбъект - откуда был произведен вызов процедуры заполнения внешней обработки; ИмяТабличнойЧасти – Строка. Имя табличной части, для которой вызвана обработка; ТабличноеПолеОбъекта – Элемент формы: Табличное поле. Табличное поле формы, для которого вызвана обработка.
Также обработка может иметь в своем составе макет «Параметры_Авторегистрации», используемый для автоматического заполнения принадлежности печатной формы в справочнике «Внешние обработки» и состоящий из 2-х колонок («полное имя метаданного» и «имя табличной части»).
Пример: Внешняя обработка «Заполнить по остаткам» предназначена для заполнения табличной части «Товары» документа «Перемещение товаров» типовой конфигурации фирмы 1С «Бухгалтерия предприятия».Скачивать файлы может только зарегистрированный пользователь! Внешняя печатная форма
Внешняя обработка, содержащая:
Необязательный реквизит «ДополнительныеПараметры» произвольного типа, которому будут передаваться дополнительные параметры примитивного типа в виде структуры. Подробнее об этом!
Реквизит «СсылкаНаОбъект», в который при вызове будет передана ссылка на объект, для которого необходимо выполнить печать.
Функция «Печать()» - без параметров, возвращающая табличный документ.
Также обработка может иметь в своем составе макет «Параметры_Авторегистрации», используемый для автоматического заполнения принадлежности печатной формы в справочнике «Внешние обработки» и состоящий из 2-х колонок («полное имя метаданного» и «имя табличной части»).
Пример: Внешняя обработка «Универсальная внешняя печатная форма» - пример создания подключаемой внешней печатной формы для типовых конфигураций фирмы 1С.Скачивать файлы может только зарегистрированный пользователь! Внешняя обработка, подключаемая к отчету
Внешняя обработка, содержащая:
В модуле экспортную процедуру: Инициализировать()
Обязательный реквизит «ДополнительныеПараметры» - произвольного типа. При создании обработки инициализируется значением типа Структура, содержащим: Отчет – ОтчетОбъект, из которого осуществляется вызов внешней обработки. ТабличныйДокумент - ТабличныйДокумент, в который осуществляется вывод отчета. Отказ - флаг, определяющий необходимость дальнейшего построения отчета. Как подключить внешнюю печатную форму 1С?
Для использования Внешней печатной формы, Вам нужно запустить Вашу 1С в режиме Предприятие и в меню "Сервис" - "Внешние печатные формы" просто добавить ее в список! Более подробно об этом читайтездесь!
GUID (Globally Unique Identifier) — статистически уникальный 128-битный идентификатор. Его главная особенность — уникальность, которая позволяет создавать расширяемые сервисы и приложения без опасения конфликтов, вызванных совпадением идентификаторов. Хотя уникальность каждого отдельного GUID не гарантируется, общее количество уникальных ключей настолько велико (2128 или 3,402 * 10в38), что вероятность того, что в мире будут независимо сгенерированы два совпадающих ключа, крайне мала.
Для получения уникального идентификатора объекта, используйте код вида:
Как с помощью запроса получить уникальный идентификатор:
В 1С 7.7 можно получить так
Через v7plus.dll
Через WScript
при OLE доступе:
Еще посмотрите метод: ЗначениеВСтрокуВнутр(<?>);
Синтаксис:
ЗначениеВСтрокуВнутр(<Объект>)
Назначение:
Преобразование значения объекта агрегатного типа в строковое системное представление.
Возвращает: представление значения объекта в строковом системном виде.
Параметры:
<Объект> - значение объекта агрегатного типа данных которое нужно преобразовать.
Когда кто-то удаляет данные из базы без проверки ссылок на эти объекты, то везде где этот объект использовался появляется сообщение вида: <Объект не найден> (84:bf5600145e3710ab11dda4c605dbe824) .
В данной статье я опишу пример быстрого восстановления данных.
2. Если Вы знаете что удалили, то можете сразу нажать кнопку Создать Объект Из GUID - Пункт 4.
3. Если Вы не знаете что удалили, тогда вам нужно поднять архивную копию базы, открыть там обработку и вставить полученный GUID в поле GUID.
далее нажать Ссылку -> и в правом поле отобразится необходимый Вам объект(в моем случае Попов Роман Владимирович).
Открыв его, узнаем что это справочник Сотрудники и всю содержащуюся в справочнике информацию. Возвращаемся в базу, где необходимо восстановить объект и жмем кнопку Создать Объект Из GUID
4. Из открывшегося списка выбираем Справочник Сотрудники, в открывшейся форме заполняем все поля данными из архивной базы и жмем OK. Все, данный объект восстановлен.
еще можно получить ИдентификаторДокумента при OLE доступе:
Еще посмотрите метод:
ЗначениеВСтрокуВнутр(<?>);
Синтаксис:
ЗначениеВСтрокуВнутр(<Объект>)
Назначение:
Преобразование значения объекта агрегатного типа в строковое системное представление.
Возвращает: представление значения объекта в строковом системном виде.
Параметры:
<Объект> - значение объекта агрегатного типа данных которое нужно преобразовать.
Подробнее см. в документации, глава ''Системные процедуры и функции''