Содержание
Макеты печатных форм
В программе имеется возможность вносить определённые изменения в макеты печатных форм и отчётов самим пользователем, без изменения конфигурации:
В версии 3.1.8 эти возможности существенно расширены. Теперь через раздел "Настройка" – "Сервис" – "Настраиваемые печатные формы" можно вывести в некоторые макеты множество различных реквизитов, в том числе добавленных самостоятельно в качестве дополнительных.
В списке слева нужно найти требуемое поле и переместить его в список справа.
После этого добавленное поле можно разместить непосредственно в печатной форме. Это можно сделать разными способам:
- или перенести поле в нужное место формы, удерживая его курсором мыши;
- или в контекстном меню (правая кнопка мыши на поле) нажать "Копировать идентификатор", затем аналогично в нужно месте печатной формы нажать "Вставить идентификатор"
- или впечатать идентификатор в печатную форму вручную
При этом в свойствах ячейки печатной формы свойство "Заполнение" должно быть установлено как "Параметр" (или "Шаблон", если в ячейку кроме поля требуется впечатать текст, или же используется несколько полей – каждое поле должно быть заключено в квадратные скобки).
Имеется возможность добавить собственное поле, заполняемое на основании доступных полей. Например, в типовой расчетной ведомости Т-51 по умолчанию вся повременная оплата труда и надбавки объединяются в одну колонку "Повременно".
А некоторым пользователям требуется выводить каждое начисление в отдельной колонке. Теперь это можно реализовать в режиме Предприятие.
Для этого нужно добавить собственные поля.
Затем вставить в форму нужное количество колонок.
И аккуратно разместить свои поля в добавленных колонках формы.
Теперь выделенные начисления видно в отчете.
Руководители подразделений
Аналитическая отчетность по структуре предприятия дополнена возможностью выводить информацию о руководителях подразделений или структурных подразделений.
Для этого разработан механизм регистрации и хранения этой информации.
Начиная с версии 3.1.8 можно указать руководителя подразделения в карточке подразделения (структурного подразделения).
Место ввода этой информации зависит от настройки:
Если структура предприятия соответствует структуре юридических лиц, то пользователь может задавать руководителей в карточках подразделений:
Руководитель подбирается путем указания руководящей позиции из штатного расписания для подразделения.
Если структура предприятия не соответствует структуре юридических лиц, то настраивать руководителей можно в справочнике "Структура предприятия"
Внесенную информацию по руководителям позволяет обобщить и проанализировать отчет "Организационная структура":
152-ФЗ при работе с кандидатами
Согласно закону 152-ФЗ "О персональных данных" процесс получения, регистрации и хранения персональной информации является регламентированным не только в отношении работников, но и в отношении субъектов, являющихся кандидатами и соискателями.
При подборе персонала, таким образом, требуется учитывать, что срок хранения без согласия информации, полученной из резюме, ограничен периодом принятия решения о приеме.
При отрицательном решении (отказе):
- если от кандидата не было получено согласие на обработку персональных данных (или оно было отозвано), данные надо уничтожить
- если согласие было получено:
- при установленном сроке действия согласия – данные надо уничтожить сразу после окончания срока действия
- при отсутствии срока действия у согласия ("бессрочном" согласии) – данные по кандидату могут продолжать храниться
При положительном решении (приеме на работу) кандидат получает статус "сотрудника", и дополнительные действия в отношении его персональных данных производить не требуется.
Для того чтобы максимально упростить процесс контроля и уничтожения информации разработан новый инструмент:
- отслеживающий согласия/отзывы согласий, их сроки действия
- автоматически уничтожающий персональные данные субъектов, по которым согласий нет, или их срок истек
Настройки учета
Для использования механизма скрытия (обезличивания) персональных данных кандидатов и соискателей необходимо в настройках управления персоналом включить соответствующий флажок:
Изменение количества дней до скрытия персональных данных доступно в настройках пользователей и прав в разделе "Защита персональных данных":
Изменения в форме кандидата
Сведения о согласии на обработку персональных данных размещаются в нижней части вкладки "Личные данные" карточки кандидата:
В информационной строке указывается:
- Факт получения или неполучения согласия на обработку персональных данных
- Срок действия полученного согласия
- Информация об отзыве согласия (если согласие отозвано)
- Ссылка для уничтожения персональных данных (в случае отзыва или неполучения согласия)
- Информация о том, что персональные данные уничтожены
По гиперссылке можно перейти к просмотру или редактированию согласия на обработку персональных данных. Поиск согласия выполняется в целом по физическому лицу. В общем случае это согласие с наиболее поздней датой окончания действия.
В форме списка справочника "Кандидаты" отсутствие согласия на обработку персональных данных указывается соответствующей пиктограммой:
Уничтожение персональных данных (по истечении срока хранения) производится автоматически. Если по каким-то причинам это потребуется сделать вручную, то следует отозвать действующее согласие (если этого не сделано заранее) и воспользоваться гиперссылкой в карточке кандидата
Снятие вакансии с публикации
В процессе работы с публикациями, размещенными на сайтах подбора персонала, возникает необходимость быстро и без лишних трудозатрат снять активные публикации (например, при закрытии вакансии), а так же обновить или повторно опубликовать закрытые публикации.
В версии 3.1.8 добавлены новые возможности работы с публикациями, позволяющие выполнять следующие действия:
- снятие с публикации вакансии;
- повторная публикация снятой вакансии;
- автоматическое снятие активных публикаций при закрытии вакансии.
Снятие вакансии с публикации
Для того чтобы снять вакансию с публикации достаточно воспользоваться кнопкой "Снять с публикации" в карточке вакансии.
Для HH и SuperJob – это будет означать отправку вакансии в архив.
Вакансия может быть снята с публикации при остановке/отмене набора на вакансию одновременно со всех сайтов и ресурсов, на которых была размещена.
Снятые с публикации вакансии помечаются серым цветом как неактивные.
Повторная публикация снятой вакансии
Автоматизирована возможность повторной публикации ранее снятой с публикации вакансии. Повторная публикация выполняется нажатием на кнопку "Обновить публикацию"
На HH это будет публикация новой вакансии. При этом данные для новой публикации будут копироваться из предшествующей публикации.
На Rabota и SJ – это будет повторная публикация старой вакансии, если вакансия не была удалена или не была перенесена в архив непосредственно на сайте.
Если по каким-либо причинам не удалось опубликовать прежнюю вакансию, программа сообщит о возникшей ошибке и предложит опубликовать новую вакансию, данные которой будут скопированы из предыдущей.
Для закрытых вакансий автоматически запускается процесс снятия с публикации на всех сайтах, где вакансия была размещена.
Ответственные лица
Потребности учета часто требуют более гибкой настройки подписантов ряда учетных документов (ответственных лиц) в связи с различными ситуациями назначения/передачи полномочий.
Для упрощения процесса регистрации и учета подписантов в версии 3.1.8 расширены возможности настройки и использования ответственных лиц.
В настройках ответственных лиц организации появилась возможность указывать основание полномочий сотрудника (юридический документ) и произвольно подбирать должности ответственных лиц:
Зарегистрированное основание подписи будет представлено во всех документах, содержащих список подписантов, а так же в некоторых печатных формах (документ "Ученический договор").
Кроме выполнения основной настройки в разделе Настройка — Организации -Учетная политика — Ответственные лица можно также изменить и интерактивно ответственное лицо, должность и/или основание подписи в любом из документов, содержащих список подписантов (например, документ "Командировка"):
После изменения любой информации об ответственном лице все последующие документы, содержащие список подписантов, наследуют измененную информацию.
Изменения в учете ответственных лиц позволяет оптимальнее настраивать заполнение подписантов в документах, в том числе и в случае необходимости получить подпись сотрудника, временно исполняющего руководящие обязанности.
Интеграция с сервисом Smartway
В версии 3.1.8.155 реализована интеграция с сервисом бронирования билетов и гостиниц Smartway. Использование сервиса полезно, если в компании практикуются частые командировки в другие города и страны.
Возможность бронирования командировок включается в настройках управления персоналом. Для подключения необходимо ввести учётные данные сервиса (т.е. необходимо быть зарегистрированным в нём).
- отправлять из программы в сервис сведения о бронировании для новых поездок (командировок),
- загружать из сервиса в программу сведения об уже оформленных в нём поездках и создавать на их основании кадровые приказы (документы "Командировка" или "Командировка группы").
Заявки на командировку
После включения настройки в заявке на командировку появляется закладка Бронирование. Заполнение условий бронирования доступно пользователю с профилем Сотрудник – т.е. тому, кто оформляет заявку.
Основные особенности заполнения условий бронирования:
- место отправления, прибытия и место проживания подбираются при наличии доступного подключения к сервису по мере набора с клавиатуры;
- место отправления, а также личные данные запоминаются и в дальнейшем заполняются по данным последней заявки;
- место прибытия можно заполнить автоматически по месту назначения с помощью синей стрелки;
- организация, от имени которой выполняется бронирование, отображается на форме. Поле недоступно, если в программе есть только одна организация, которая заведена в системе бронирования, и доступно в противном случае. Список выбора заполняется по данным о подключенных к сервису организациях (по ИНН).
После согласования заявки руководителем информация сразу же передаётся в сервис Smartway. В верхней части заявки отображается статус согласования и статус бронирования. До момента отправки заявки в систему бронирования – выводятся сведения о том, что заявка в данный момент отправляется.
После отправки, но до момента принятия к обработке указывается, что заявка отправлена и ожидает обработки, можно обновить статус вручную.
После бронирования билетов в системе Smartway, сотрудник получает возможность скачать билеты и ваучер на проживание, если они доступны. Команды на скачивание располагаются в виде информационной надписи с гиперссылками в области бронирования.
Отменить заявку в программе или изменить данные бронирования в ней можно только до того момента, пока она не принята к обработке в сервисе. Если заявка отменена (нажата кнопка "Отклонить" или просто отменено проведение), то отображаются сведения о том, что заявка отменена в системе бронирования.
При изменении данных бронирования в согласованной и отправленной заявке заявка
отправляется в систему бронирования снова.
Если при отправке возникла ошибка на стороне системы бронирования, то отображаются сведения об ошибке. Если из этих сведений непонятно, что нужно делать – можно обратиться в поддержку сервиса и/или программы.
Загрузка поездок
Загрузка поездок доступа пользователями с правами кадровика. Она выполняется из журнала Командировки.
По кнопке "Загрузить из системы бронирования" открывается рабочее место для загрузки командировок. В форме доступен отбор по организации – если он установлен, то будут загружены только поездки по выбранной организации.
По кнопке "Загрузить поездки" в список из сервиса загружаются новые поездки и последние изменения. Новыми считаются поездки, появившиеся в сервисе с момента последнего успешного формирования приказов (то есть загрузки поездок). Последними считаются изменения поездок, произошедшие после последнего успешного формирования приказов. Также в меню "Еще" есть команда "Загрузить прошлые поездки", позволяющая загрузить поездки за любой произвольный период вне зависимости от последнего формирования командировок.
Поиск физических лиц выполняется по ФИО и номеру паспорта. Если номера паспорта нет, то только по ФИО. В случае если в загруженной поездке есть физическое лицо, которое не удалось найти в программе, то флажок загрузки такой поездки снят и недоступен. В колонке "Сотрудники" при этом отображается предупреждение, а по щелчку на колонку открывается форма подбора сотрудника вручную.
Основные особенности работы с формой:
- если командировка была ранее загружена, и данные в поездке и командировке не отличаются – флажок по умолчанию снят;
- если командировка не была найдена в программе, то поле пустое и флажок взведен, выводится подсказка "Создается новая";
- можно выбрать документ командировки в соответствие, в этом случае при взводе флажка он будет перезаполнен по данным поездки;
- по кнопке "Сформировать командировки" отмеченные поездки загружаются в программу:
- отсутствующие документы создаются
- выбранные документы перезаполняются
Бюрократия является одним из повседневных явлений, и без распечатанного и подписанного документа мало где обходятся производственные процессы. Создание печатных форм для документов – одна из частых задач разработчика 1С. Данную возможность можно реализовать как внутри базы, так и внешним файлом, если конфигурация типовая и поддерживает БСП. Эти процессы в 1С не затруднят вас, если понять основные принципы построения печатных форм, изложенные ниже.
Создание макета внешней печатной формы
Лучшее решение для добавления возможности распечатывать данные того или иного документа в типовую конфигурацию от 1С, а если она не изменялась – вообще единственная. Суть задачи в том, чтобы создать в конфигураторе файл обработки и описать в нем внешний вид и используемые данные. После чего останется только подключить данный файл к конфигурации 1С с помощью механизмов библиотеки стандартных подсистем.
Создание печатной формы документа начинается с открытия режима конфигуратора базы. Желательно открывать ту базу, в которую требуется внести изменения, чтобы платформа позволила нам открывать конструктор запроса. Создайте новую внешнюю обработку с помощью основного меню «Файл» — «Новый…» и заполните имя и синоним. В среде 1С принято указывать «говорящие» имена, чтобы другие программисты могли комфортно работать с чужим кодом.
Затем необходимо добавить макет – структуру распечатываемой формы с перечнем переменных, куда и будут вставляться данные из конкретного документа 1С. В открывшемся конструкторе не стоит ничего менять и после подтверждения готовности откроется окно, похожее на Excel. В нем необходимо будет нарисовать форму и разделить ее на области с отдельными именами. Разделять стоит в зависимости от момента вывода на экран и того, сколько раз эта область должна появиться на экране.
В качестве примера разберем печатную форму для документа продажи товаров. В нем перечислены номенклатура, организация, подразделение, менеджер и контрагент, кому продаются товары. Для информативной печатной формы необходимо выделить следующие области:
- Верхняя часть («Шапка»). Сюда войдет идентификация документа в системе 1С – номер и дата, основные данные об операции – организация, контрагент, менеджер, заголовок таблицы номенклатуры. Выводиться будет 1 раз;
- Информация по номенклатуре («ДанныеСтрок»). Данные о тех товарах, которые продаются – наименование, количество, цена и сумма. Выводиться по 1 разу на каждую строчку табличной части «Товары»;
- Итоговые данные («ИтогиСтрок»). В печатной форме фигурирует 1 раз и отражает итоговые суммы количества и суммы;
- Подписи («Подвал»). Область для согласования бумажной версии документа. Необходимо вывести на печать единожды.
В окне, похожем на Excel, выделяем 10 строк и выбираем в основном меню «Таблица» — «Имена» — «Назначить имя…». В открывшемся окне вводим название области и подтверждаем. Далее в этой области размещаем необходимые для вывода поля, используя возможности объединения и выбора шрифта и размера надписей.
Теперь надо настроить переменные, куда будут вставлены данные. Для этого на ячейке, где уже есть надпись, нажимаем правой кнопкой мыши и открываем свойства. Найдите пункт «Заполнение» и выберите там значение «Параметр», после чего убедитесь, что надпись в ячейке теперь заключена в угловые скобки. Если вы выберите «Шаблон», то это даст вам возможность указать переменные внутри строки в ячейке с помощью квадратных скобок.
Осталось только добавить другие области и разместить там параметры. Наш макет готов. Настройка печатной формы в части макета завершена, поэтому можно переходить к написанию кода, чтобы наши параметры заполнились данными. Писать все процедуры придется в модуле объекта созданной внешней обработки.
Вывод данных в печатную форму
В первую очередь необходимо добавить функцию «СведенияОВнешнейОбработке()». Именно она подсказывает платформе, что в файле печатная форма и ее нужно крепить к конкретному документу. Текст функции практически не меняется, кроме названия печатных форм и документа, к которому ее крепят. Если забыть поменять в этой функции идентификатор, то 1С не сможет сформировать печатную форму.
Для инициализации печати добавляем процедуру, внутри которой находиться вызов процедуры из общего модуля, добавляющей эту печатную форму в общий список. В качестве команды выступает процедура «СформироватьПечатнуюФорму» с параметром, в котором находится ссылка на документ, который и нужно распечатать. Листинг процедуры ниже:
Теперь необходимо получить данные, которые будут выводиться в заранее установленные нами переменные. С помощью выполнения запроса мы получаем 2 выборки – для верхней части нашей печатной формы и для вывода строк. Создаем новый табличный документ для показа пользователю и устанавливаем стандартные параметры. Поочередно получаем каждую область, заполняем в ней переменные и выводим в табличный документ, который возвращаем пользователю:
После завершения сохраняем внешнюю обработку и запускаем 1С в режиме предприятия. Чтобы подключить созданную печатную форму, зайдите в раздел «Администрирование» — «Печатные формы, отчеты и обработки» — «Дополнительные отчеты и обработки». Нажмите кнопку «Создать» и в диалоге выберите сохраненный файл формата *.EPF. Если все было сделано правильно, останется лишь сохранить, и 1С самостоятельно разместит новую печатную форму.
Зайдите в любой документ, нажмите «Печать» — «WAПечать заказа» и на экране появится созданная нами печатная форма. Данный вариант создания обработки может подойти и для нетиповой конфигурации, если настроить в ней БСП. Внешние печатные формы для 1С можно подключать и к новым нетиповым документам, добавленным разработчиками компании, если правильно настроить их.
Но в нетиповых конфигурациях, которые не находятся на поддержке, намного удобнее и проще использовать встроенный в 1С конструктор печатных форм. Большой плюс этого метода в том, что мы лишь указываем поля, которые нам нужны, а платформа самостоятельно строит макет. Алгоритм вывода данных 1С также создает автоматически, после чего показывает разработчику. Оптимальный вариант в подобных ситуациях – запустить конструктор печати, а затем сделать изменение печатной формы, если необходимо.
Конструктор печати 1С
Для настройки новой печатной формы откройте конфигуратор базы и найдите нужный документ в дереве. Открыв его, нажмите кнопку «Действия» — «Конструкторы» — «Конструктор печати…». Платформа предложит выбрать для изменения существующую команду или создать новую, указав имя, после чего нажмите «Далее». При выборе наименования не используйте пробелы, так как будет сформирована одноименная процедура, а в их наименовании не допускаются пробелы.
Конструктор печати в версии 8.3 предполагает, что печатная форма состоит из нескольких частей:
Поэтому в дальнейшем диалоге конструктор предложит выбрать, какие поля будут отражены в каждом разделе. Решается это простым перемещением из левого поля в правое. С помощью синих стрелок вы можете изменить порядок этих полей в результирующем макете. В конце вы можете включить дополнительные функции и выбрать, где будет размещаться кнопка запуска печатной формы.
По нажатию «ОК» 1С сформирует команду, макет и процедуру в модуле менеджера и откроет их для разработчика. Затем можно отредактировать их, если необходим более сложный алгоритм – добавить расчет и вывод итогов или данных, не содержащихся в документе. Алгоритм изменения аналогичен рассмотренному выше:
- Создать область в макете, если использовать уже созданные области недопустимо;
- Добавить надписи и переменные. Перечень добавляемых объектов зависит от потребностей;
- В процедуре получить область по имени;
- Рассчитать или прочитать из документа данные;
- Заполнить переменные информацией.
Данный вариант формирования позволяет быстро создать печатную форму, если пользователи не предъявляют серьезных требований к внешнему виду. Платформа самостоятельно пропишет все необходимые связи и добавит команду печати на форму документа. А ручное редактирование печатной формы позволит добавить недостающие данные или разместить существующие по-другому.
Рассмотренные варианты создания печатных форм позволяют добавлять их в любую конфигурацию – стоящую на поддержке, снятую с нее или написанную самостоятельно. Перед тем, как выбирать метод создания, проанализируйте еще и требования к внешнему виду результата, количеству и доступности данных. Это поможет выбрать оптимальный путь и сэкономить время.
В этой статье мы научимся создавать внешнюю печатную форму для управляемого приложения 1С 8.3, которое написано на БСП («1С: Бухгалтерия предприятия 3.0», «1С: Управление торговлей 11»). Причем создавать с нуля, не используя так называемые шаблоны. Вы сами научитесь создавать шаблоны внешних печатных форм.
Все это делается довольно просто))
И так, создадим новую обработку.
Мы будем создавать внешний счет на оплату покупателю, поэтому обработку так и назовем: «СчетНаОплатуВнешний».
Сохраним ее на жесткий диск.
Регистрация внешней обработки или отчета в базе 1С осуществляется на основании сведений, которые поставляет сама обработка. Поэтому эти сведения должны быть описаны в обработке. Осуществляется это с помощью структуры, которая имеет определенный набор полей, и которая возвращается экспортной функций СведенияОВнешнейОбработке.
Зайдем в модуль обработки, и создадим экспортную функцию СведенияОВнешнейОбработке.
Внутри этой функции создадим структуру ПараметрыРегистрации, которая будет содержать определенный список полей. Каждое поле мы разберем в отдельности.
Создадим первый элемент структуры, он будет иметь ключ с название «Вид».
Значением данной связки КлючИЗначение идет одна из строк:
- «ДополнительнаяОбработка»
- «ДополнительныйОтчет»
- «ЗаполнениеОбъекта»
- «Отчет»
- «ПечатнаяФорма»
- «СозданиеСвязанныхОбъектов»
В нашем случае должна быть строка «ПечатнаяФорма».
Следующий элемент структуры должен иметь ключ с названием Назначение.
В качестве значения данного элемента должен выступать массив, где перечислены будут все документы или справочники, в которых будет выходить данная печатная форма.
Они должны иметь тип строка, и быть в следующем формате:
Документ.»НазваниеДокумента»
Справочник.»НазваниеСправочника»
У нас этот массив будет возвращать отдельная функция ПолучитьНазначениеОбработки.
Допишем созданный последним элемент структуры.
Создадим новый элемент структуры, ключ которого будет называться «Наименование», а в значении будет содержаться наименование обработки, которое будет отображаться в справочнике «Дополнительные внешние печатные формы».
Следующий элемент структуры будет иметь название «Версия», значением данного элемента будет версия обработки. Задается программистом на его усмотрение.
Следующий элемент имеет название «Информация», который содержит краткую информацию по обработке.
Следующий элемент имеет название «БезопасныйРежим», его необходим устанавливать в значение истина или ложь, в зависимости от того необходимо устанавливать или отключать безопасный режим во время выполнения обработки. Мы установим значение Истина.
И в последнем параметре необходимо добавить команды, которые будут поставляться обработкой. Для этого нам необходимо создать и заполнить таблицу команд. Разработаем функцию, которая создает и возвращает таблицу с определенным набором полей. Делать это будем в функции ПолучитьТаблицуКоманд.
Создадим функцию и таблицу значений внутри нее.
Теперь создадим пять колонок этой таблицы.
И первая колонка – Представление (тип строка).
Эта колонка – представление команды в пользовательском интерфейсе, т.е. то, что пользователь увидит при нажатии меню»Печать» в документе или справочнике.
Вторая колонка – Идентификатор.
Это может быть любая текстовая строка, уникальная в пределах данной обработки.
Третья колонка – Использование.
Параметр данной колонки типа строка, должен принимать одно из четырех значений –
- ОткрытиеФормы – Открывает форму обработки.
- ВызовКлиентскогоМетода – будет вызвана клиентская процедура из модуля формы обработки.
- ВызовСерверногоМетода — будет вызвана серверная процедура из модуля обработки.
- СценарийВБезопасномРежиме – тоже будет вызвана серверная процедура из модуля обработки в безопасном режиме.
Конкретно мы будем использовать вызов серверного метода.
Следующая колонка – показывать оповещение. Принимает значение истина или ложь, в зависимости от того надо показывать оповещение или нет.
И последняя колонка – модификатор. Это дополнительный модификатор команды. В нашем случае будет иметь название ПечатьXML.
Теперь создадим процедуру, которая будет заполнять данную таблицу значений.
В данном коде все понятно.
В функции СведенияОВнешнейОбработке создадим команду и заполним ее.
Создаем таблицу значений:
Теперь заполним ее.
Еще раз пройдемся по параметрам.
- Первый параметр, непосредственно таблица команд вновь созданная.
- Второй параметр, как будет отображаться команда пользователю на форме (документа, справочника).
- Третий – уникальный идентификатор команды, запомните его, он нам еще пригодится!
- Четвертый параметр – использование, что вызовет Ваша команда.
- Пятый параметр – показывать оповещение, мы не будем это делать.
- Шестой параметр – модификатор, в нашем случае он всегда один ПечатьXML.
Теперь передадим вновь созданную таблицу команд в структуру ПараметрыРегистрации.
И пусть наша функция СведенияОВнешнейОбработке возвращает данную структуру.
Все теперь наша обработка будет передавать нужные параметры регистрации, которые будут необходимы при создании элемента справочника дополнительные печатные формы и обработки. Обращаю ваше внимание, что название всех полей в структуре Параметры регистрации, а также название и типы всех колонок в таблице команд, должны быть те которые приведены в примере, иначе Ваша обработка не зарегистрируется.
Теперь в модуле объекта создадим процедуру Печать. Это процедура с четырьмя параметрами: МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода.
И вот начинается самое интересное, теперь вам необходимо войти в аналогичную процедуру в менеджере объекта счет на оплату покупателю, или в обработке, которая, по сути, является менеджером печати.
Как узнать, где находится нужная нам функция?
Откроем модуль менеджера документа Счет на оплату покупателю.
И найдем процедуру ДобавитьКомандыПечати, которая заполняет список команд .
В этой процедуре найдем код, где добавляется команда для нужной нам печатной формы (список команд добавляется в таблицу значений КомандыПечати). И обратим внимание на свойство МенеджерПечати. Если этому свойству присваивается какое-нибудь значение — это путь к объекту метаданных, как правило к обработке, то значит при выводе нужной печатной формы будет отработан код в процедуре Печать, которая находится в модуле менеджере этого объекта (в обработке). А если это свойство в принципе не фигурирует при заполнении команды печати, то значит будет отработан код в процедуре Печать, которая находится в модуле менеджера нашего основного объекта (в нашем случае это документ СчетНаОплатуПокупателю)
Посмотрим на процедуру ДобавитьКомандыПечати в модуле менеджера документа «Счет на оплату покупателя».
оскольку мы делаем внешнюю печатную форму счета на оплату, то нас интересует первое добавление в таблицу значений (см. свойство Представление), и мы видим, что в этом случае заполнено свойство МенеджерПечати, где указан объект Обработка.ПечатьСчетаНаОплату. Это значит, что нам нужно найти процедуру Печать в модуле менеджера обработки ПечатьСчетаНаОплату.
А если бы мы решили сделать внешнюю печатную форму договора счета на оплату (второе добавление в таблицу значений КомандыПечати), то нам нужно было бы найти процедуру Печать в модуле менеджера документа СчетНаОплатуПокупателя.
Откроем модуль менеджера обработки ПечатьСчетаНаОплату.
И раскроем процедуру Печать.
Нас интересует второе условие (где фигурирует строка «СчетЗаказ», см. идентификатор нужной команды в процедуре ДобавитьКомандыПечати модуля менеджера документа), скопируем это условие в процедуру Печать нашей внешней обработки.
Внимание! Копировать напрямую процедуру Печать из модуля менеджера (без разницы обработка это, документ или справочник) не следует. Поскольку у них отличается количество параметров, в последствие это приводит к ошибкам при работе.
Так же из модуля менеджера обработки скопируем процедуру СформироватьПечатнуюФорм
В этом коде есть строка, где заполняется таблица сведений счета на оплату.
Эта таблица получается при помощи процедуры модуля менеджера объекта (в нашем случае это документ СчетНаОплатуПокупателю). Найдем эту процедуру в модуле менеджера документа СчетНаОплатуПокупателю.
И скопируем её в модель нашей внешней обработки.
А сам код процедуры СформироватьПечатнуюФорму в модуле внешней обработки исправим, убрав все не нужное от туда.
Если мы сейчас сделаем проверку модуля внешней обработки, то выйдет две ошибки. Первая, что не определена переменная ПараметрыПечати в процедуре Печать, и, что не найдена функция ПолучитьТекстЗапросаДляФормированияТаблицыСведенийСчетаНаОплату в функции ПолучитьТаблицуСведенийСчетаНаОплату.
Создадим переменную ПараметрыПечати в процедуре Печать. Это будет простая структура.
А потом найдем функцию ПолучитьТекстЗапросаДляФормированияТаблицыСведенийСчетаНаОплату в модуле менеджера документа СчетНаОплатуПокупателю и скопируем её в модуль внешней обработки.
Должен получится следующий состав процедур и функций модуля внешней обработки (для удобства я разделил их на две области).
Еще раз делаем проверку модуля. Ошибок не обнаружено.
Продолжаем, теперь нам необходимо, что бы брался наш макет, и печатался по нашей команде.
Нас интересует процедура СформироватьПечатнуюФорму, а в ней мы уделим внимание методу ПечатьСчетаНаОплату общего модуля ПечатьТорговыхДокументов.
Очевидно, она непосредственно формирует табличный документ. Перейдем в этот общий модуль, и скопируем функцию ПечатьСчетаНаОплату в модуль нашей внешней обработки.
Делаем проверку модуля внешней обработки. Ругается на несуществующие методы ВывестиЗаголовокПредупреждение и НомерСчетаНаОплату.
Переходим в общий модуль, от куда мы взяли функцию ПечатьСчетаНаОплату, находим процедуру ВывестиЗаголовокПредупреждение , и копируем ее в модуль внешней обработки.
А функция НомерСчетаНаОплату в общем модуле ПечатьТорговыхДокументов экспортная, поэтому мы просто исправим код в процедуре ПечатьСчетаНаОплату, где используется проблемная функция, сделав вызов этой функции из вышеупомянутого общего модуля.
Проверяем еще раз ошибки. Все нормально.
Не забудем в процедуре СформироватьПечатнуюФорму убрать вызов метода ПечатьСчетаНаОплату из общего модуля.
Теперь зайдем в скопированную функцию ПечатьСчетаНаОплату, и посмотрим, где в ней подтягивается макет.
Находим данный макет в общих макетах и копируем его в макеты нашей обработки.
Исправляем выделенный код, где подтягивается макет, следующий образом.
Теперь зайдем в наш скопированный макет, и сделаем какое-нибудь изменение, чтобы вы видели, что команда подтянула именно макет из внешней обработки.
Вернемся обратно в процедуру Печать нашей внешней обработки.
И теперь осталась одна небольшая хитрость, без которой ваш внешний отчет не будет работать. Необходимо текст «СчетЗаказ» (это идентификатор типовой печатной формы).
Заменить на название идентификатора команды («СчетНаОплатуВнешний»).
Все, сохраняем данную обработку. И запускаем «1С: Предприятие» из конфигуратора 1С.
Идем в администрирование. В дополнительные отчеты и обработки.
Нажимаем на кнопку «Добавить из файла» и выбираем нашу созданную обработку.
Записываем. И смотрим, как выходит наша печатная форма.
Ссылка на дубль статьи на Инфостарте. В конце этой статьи приведены примеры внешних печатных форм счета на оплату, ТОРГ 12, ПКО , М11 и Требование накладная в одной обработке (документ Требование накладная). Все внешние печатные формы сделаны для конфигурации «1С: Бухгалтерия предприятия» (релиз 3.0.67.67).
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655