Код &НаКлиенте Процедура ОсновноеКонтактноеЛицоПриИзменении(Элемент) Если НЕ ПроверитьЗаполнениеРеквизита() Тогда Сообщить("Выбранное контактное лицо, "+Объект.ОсновноеКонтактноеЛицо+",не работает у контрагента."); КонецЕсли; КонецПроцедуры
&НаСервере Функция ПроверитьЗаполнениеРеквизита() Возврат (Объект.ОсновноеКонтактноеЛицо.ПредставительРаботает); КонецФункции &НаСервере Процедура УстановитьНомерПредставителя()
Объект.ТелефонКонтактногоЛица=Объект.ОсновноеКонтактноеЛицо.КонтактныеСведения; КонецПроцедуры При проверке выдает ошибку: {Справочник.Контрагенты.Форма.ФормаСписка.Форма(12,11)}: Переменная не определена (Объект)
работаю на версии 1С:Предприятие 8.3 (8.3.10.2650) |
Программная работа со справочниками, обработки, простые отчеты
Простой отчет
Конечная цель любой учетной системы – формирование отчетов. 1С:Предприятие 8.2 предоставляет разработчику множество инструментов для создания отчетов – от достаточно простых механизмов, позволяющих создавать несложные отчеты, до комплексных средств, таких, как система компоновки данных. Сейчас мы рассмотрим пример создания простого отчета. Нам нужно вывести отчет в виде списка контрагентов по группам с указанием наименования контрагента, основного контактного лица и телефона этого контактного лица.
Отчет нужного нам вида можно сформировать различными способами. Так, вполне можно реализовать эту функциональность непосредственно в справочнике Контрагенты, добавив в него соответствующие программные механизмы, выведя кнопку "Сформировать список контрагентов" в форму списка справочника. Можно сделать это с помощью специализированного прикладного объекта Отчет. Обычно для создания подобного рода отчетов так и поступают.
Отчет, в нашем случае, будет строиться на основе макета, с областями которого работают в программном коде, формируя готовый отчет. Как правило, если речь идет о неких общих отчетах, их создают в виде отдельных объектов, если же, например, нам нужно создать печатную форму для отдельного элемента справочника или отдельного документа – вполне можно "поместить" всю функциональность требуемого отчета внутри прикладного объекта. В частности, прикладные объекты могут иметь в числе подчиненных объектов макеты, которые и используются при создании отчетов. В то же время, внешний отчет вполне можно использовать и для создания печатной формы отдельного элемента справочника или документа.
Создадим в ветви дерева конфигурации Отчеты новый отчет, дадим ему имя СписокКонтрагентов, рис. 5.13.
Первым этапом работы над отчетом станет создание макета отчета. Макет позволяет заранее определить и оформить "блоки", из которых будет построен отчет.
Следует отметить, что во всех возможных случаях при разработке прикладных решений для 1С:Предприятие 8.2. следует создавать их на основе схемы компоновки данных. Однако умение работать с макетами в форме табличных документов может пригодиться в том случае, если вам понадобится отредактировать сторонний отчет, выполненный в таком стиле.
Перейдем на закладку формы редактирования объекта Макеты и нажмем на кнопку Добавить. Появится окно конструктора макета, где нам предложат задать его имя (оставим имя по умолчанию – Макет), и тип макета – нас устроит Табличный документ, рис. 5.14.
После нажатия на кнопку Готово, мы видим табличный редактор, рис. 5.15., очень напоминающий Microsoft Excel. Работая с ним, мы можем пользоваться стандартной палитрой свойств, а так же – панелями инструментов, в частности – Форматирование, Табличный документ, Имена. Наша задача сейчас – создать и отформатировать области, которые позже будут использованы для формирования готового отчета.
При создании макета мы можем вводить в ячейки обычный текст – такой текст отображается в ячейке без каких-либо дополнительных знаков. Ячейка может содержать именованный параметр, который будет заполнен при формировании отчета. Так же ячейки могут содержать шаблоны, состоящие из обычного текста и параметров, которые так же можно заполнить.
На рис. 5.16. показан готовый макет.
Ячейка 2,2 заполнена следующим образом: в нее сначала введен текст "Список контрагентов на [ДатаФормированияОтчета]", после чего вызвано окно свойств этой ячейки, в которых, в свойстве Заполнение выбрано Шаблон, рис. 5.17.
Параметр ДатаФормированияОтчета мы установим в текущую дату программно при формировании отчета.
Ячейки с 4,2 по 4,4 содержат обычный текст – он будет выводиться в качестве шапки таблицы.
И заголовок отчета и шапка таблицы объединены в область с именем Шапка. Для задания имени области достаточно выделить нужные ячейки (выделять нужно по заголовкам строк) и отредактировать в палитре свойств параметр Имя выделенного диапазона, или воспользоваться кнопкой Назначить имя панели инструментов Имена.
Область Элемент содержит три параметра – Наименование, ОсновноеКонтактноеЛицо и ТелефонКонтактногоЛица. После ввода в каждую из ячеек имен параметров, нужно выделить их (все вместе или по одной) и в окне свойств в поле Заполнение указать Параметр. К тексту в ячейках будут автоматически добавлены угловые скобки (<>), что позволяет визуально определить наличие в ячейке параметра.
Область Группа содержит лишь параметр Наименование.
Обратите внимание на имена параметров – они соответствуют именам реквизитов справочника, которыми мы собираемся их заполнять.
Ячейки в шаблоне можно форматировать – задавать их границы, оформление текста, выравнивание и т.д.
Теперь приступим к созданию формы отчета. Перейдем на вкладку Формы окна редактирования объекта, добавим новую форму отчета, оставим все настройки в состоянии по умолчанию и нажмем Готово. Добавим, на вкладке Реквизиты редактора форм новый реквизит, назовем его ТабличныйДокумент, выберем для него тип ТабличныйДокумент. Перетащим созданный реквизит в поле Элементы. В состав команд формы добавим новую команду, зададим ей имя СформироватьОтчет и так же переместим в поле Элементы. В итоге у нас получится форма, выглядящая так, как показано на рис. 5.18.