Опубликован: 06.12.2011 | Доступ: свободный | Студентов: 6553 / 2138 | Оценка: 4.55 / 4.38 | Длительность: 04:16:00
Лекция 6:

Программная работа со справочниками, обработки, простые отчеты

Аннотация: Лекция посвящена подробностям объектной модели справочников, программной работе со справочниками, а так же – созданию обработок и простых отчетов.

Обработка, программная работа со справочниками

Эта лекция продолжает тему работы со справочниками в 1С:Предприятие 8.2. Здесь мы уделим особое внимание программной работе со справочниками, а так же – рассмотрим механизм создания обработок и простых отчетов.

Начнем с создания обработки, которая выводит имена всех справочников, имеющихся в системе. Для этого добавим новую обработку в ветви Обработки дерева конфигурации. Назовем ее РаботаСоСправочниками, рис. 5.1.

Создание обработки

Рис. 5.1. Создание обработки

Включим новую обработку в состав подсистемы Администрирование на закладке Подсистемы. Перейдем на закладку Формы и создадим форму обработки. Наша обработка не имеет реквизитов – сразу после запуска конструктора формы обработки, мы можем нажать на кнопку Готово и увидим пустую форму обработки, рис. 5.2.

Форма обработки

увеличить изображение
Рис. 5.2. Форма обработки

Задачу вывода данных по результатам работы обработки мы переложим на плечи системы – будем выводить их с помощью стандартного механизма сообщений, которым мы уже не раз пользовались. А вот команды, которые будут выполняться обработкой, нам нужно будет создать самостоятельно.

Перейдем на вкладку Команды в окне редактора форм. После этого нам будут доступны еще несколько вкладок, нас интересует первая из них – Команды формы, рис. 5.3.

Переход к командам формы обработки

увеличить изображение
Рис. 5.3. Переход к командам формы обработки

Список команд формы пуст – нам нужно создать собственную команду. Нажмем на кнопку Добавить в верхней части панели Команды формы, назовем ее ВывестиСписокСправочников, в окне свойств команды нажмем на кнопку с увеличительным стеклом в поле свойства Действие – в модуле формы будет создана процедура для этой команды, рис. 5.4.

Настройка команды

увеличить изображение
Рис. 5.4. Настройка команды

В модуль формы был добавлен такой код:

&НаКлиенте
Процедура ВывестиСписокСправочников(Команда)
  // Вставить содержимое обработчика.
КонецПроцедуры

То, что мы добавили в обработку команду, еще не означает автоматическое добавление на форму команды, например, кнопки, нажатие которой приведет к выполнению команды. Добавить такую кнопку на форму можно несколькими способами. Во-первых, мы можем просто перетащить команду из панели Команды формы на панель Элементы – на форме появится кнопка Вывести список справочников, а напротив команды – серый квадратик, говорящий о присутствии элемента управления, связанного с командой, на форме.

Во-вторых, в список элементов формы можно добавить кнопку (кнопка Добавить в командной панели закладки Элементы) и задать свойства кнопки, в частности, в свойстве ИмяКоманды выбрать нужную команду. После добавления кнопки и настройки ее связи с командой, редактор форм приобрел вид, показанный на рис. 5.5.

Настройка кнопки

увеличить изображение
Рис. 5.5. Настройка кнопки
Лариса Дятчина
Лариса Дятчина

Код 

&НаКлиенте

Процедура ОсновноеКонтактноеЛицоПриИзменении(Элемент)

Если НЕ ПроверитьЗаполнениеРеквизита() Тогда

 Сообщить("Выбранное контактное лицо, "+Объект.ОсновноеКонтактноеЛицо+",не работает у контрагента.");

КонецЕсли;

КонецПроцедуры

 

&НаСервере

Функция ПроверитьЗаполнениеРеквизита()

 Возврат (Объект.ОсновноеКонтактноеЛицо.ПредставительРаботает);  

КонецФункции

&НаСервере

Процедура УстановитьНомерПредставителя()

 

 Объект.ТелефонКонтактногоЛица=Объект.ОсновноеКонтактноеЛицо.КонтактныеСведения;

КонецПроцедуры

При проверке выдает ошибку:

{Справочник.Контрагенты.Форма.ФормаСписка.Форма(12,11)}: Переменная не определена (Объект)
 Возврат (<<?>>Объект.ОсновноеКонтактноеЛицо.ПредставительРаботает);   (Проверка: Сервер)
{Справочник.Контрагенты.Форма.ФормаСписка.Форма(17,2)}: Переменная не определена (Объект)
 <<?>>Объект.ТелефонКонтактногоЛица=Объект.ОсновноеКонтактноеЛицо.КонтактныеСведения; (Проверка: Сервер)
{Справочник.Контрагенты.Форма.ФормаСписка.Форма(17,32)}: Переменная не определена (Объект)
 Объект.ТелефонКонтактногоЛица=<<?>>Объект.ОсновноеКонтактноеЛицо.КонтактныеСведения; (Проверка: Сервер)
{Справочник.Контрагенты.Форма.ФормаСписка.Форма(6,41)}: Переменная не определена (Объект)
 Сообщить("Выбранное контактное лицо, "+<<?>>Объект.ОсновноеКонтактноеЛицо+",не работает у контрагента."); (Проверка: Тонкий клиент)

 

работаю на версии 1С:Предприятие 8.3 (8.3.10.2650)

максим матасов
максим матасов