Процедура Печать()

В предыдущем выпуске рассылки была представлена 5 часть учебного материала по обучению 1С: Предприятие 7.7. Конфигурирование. Компонента «Бухгалтерский учет».

Мы уже создали печатную форму для справочника Товары. Сегодня напишем программный модуль процедуры Печать(), добавим в форму списка кнопку Печать() и увидим результат выполненной работы.

Задание. Напишите текст процедуры на встроенном языке, которая реализует алгоритм формирования и вывода печатной формы.

Щелкните на закладке «Модуль» формы списка и введите следующий текст:

Процедура Печать()
     Спр=СоздатьОбъект("Справочник.Товары");
     Спр. ИспользоватьДату(РабочаяДата());
     Таб=СоздатьОбъект("Таблица");
     Таб.ИсходнаяТаблица("Таблица");
     Таб.ВывестиСекцию("Шапка");
     Спр.ВыбратьЭлементы();
     Пока Спр.ПолучитьЭлемент()=1
     Цикл
          Если Спр.ЭтоГруппа()=1
               Тогда
               Таб.ВывестиСекцию("Группа");
               Иначе
               Таб.ВывестиСекцию("Товар");
          КонецЕсли;
     КонецЦикла;
    Таб. ТолькоПросмотр(1);
    Таб.Опции(0,0,3,0);
    Таб.Показать("Каталог товаров");
КонецПроцедуры


     Пояснения к процедуре Печать()
     Работа с агрегатными типами данных в программе 1С:Предприятие строится через объекты. В данной процедуре мы собираемся работать с двумя такими типами данных -справочником товаров и таблицей (шаблоном печатной формы). Для этого определим переменные Спр и Таб как объекты соответствующих типов.
     Справочник товаров, который мы создали, содержит периодический реквизит «ЦенаПродажи». Для того, чтобы работать с периодическим реквизитом, необходимо явно указать, на какую дату выбираются или устанавливаются значения. Для этой цели служит процедура встроенного языка ИспользоватьДату(). В качестве параметра мы передадим РабочаяДата().
      В секции «Заголовок» нет никаких вычисляемых переменных, поэтому мы можем поместить эту секцию в итоговую таблицу процедурой ВывестиСекцию(«Шапка»).
Далее выполняем процедуру ВыбратьЭлементы(), которая возвращает выборку, содержащую полный перечень товаров, включая группы. Чтобы организовать перебор элементов выборки, используем цикл, условием выхода из которого является возврат функцией ПолучитьЭлемент() значения равного 0, что является признаком отсутствия следующего элемента.
      Внутри цикла делаем проверку, является ли текущий элемент справочника группой или это обычный товар. В первом случае выводим в итоговую таблицу секцию «Группа», во втором - «Товар».
В конце устанавливаем опции итоговой таблицы - не выводить сетку (0) и заголовки (0), количество зафиксированных строк (3) и столбцов (0). Затем включаем признак ТолькоПросмотр(1), который запрещает редактировать ячейки итоговой таблицы и выводим итоговую таблицу на экран - Показать(«Каталог товаров»).
      Прежде чем выйти из режима Конфигуратор, проверьте правильность написания модуля. Для этого выберите в меню Конфигурация – полный синтаксический контроль. Если в нижнем табло сообщение: «Синтаксических ошибок не обнаружено», значит, ошибок нет. Если выдается какая-либо ошибка, то нужно внимательно прочитать текст ошибки и исправить.
      Для создания печатной формы можно было воспользоваться Конструктором печати: меню Конструкторы > Печать. Пункт меню активен в окне редактора форм.

Задание. Добавьте в форму списка кнопку «Печать каталога товаров». Для созданной кнопки на закладке «Дополнительно» в «Свойствах кнопки» в поле Формула укажите наименование процедуры Печать().

Задание. Проверьте в работе сделанный вами фрагмент настройки:
• Выберите режим конфигуратора Сервис - 1С:Предприятие, сохраните сделанные настройки;
• Заполните константы: откройте список констант - меню Операции>Константы,
выберите у константы «ОснЕдиницаИзмерения» из списка «шт».
• Откройте справочник «Товары» и введите данные.
• Выведите на экран печатную форму, щелкнув на кнопку «Печать каталога товаров».

(выполните самостоятельно)
Справочник организаций: у кого покупаем, кому продаем
Создайте справочник и назначьте ему идентификатор «Организации». Количество уровней иерархии задайте равным 2-м, тип кода числовой, уникальность кода по всему списку. Длину кода и наименования не изменяйте. Справочник будет редактироваться в списке (необходимо создать форму списка). Справочник должен иметь печатную форму (которую имеет смысл собрать конструктором). При создании справочника ограничьтесь только атрибутами справочника - кодом и наименованием.

В следующем выпуске рассылки рассмотрим создание документов в 1С: Предприятие 7.7.