Работа с формами в программе 1С

Содержание

Работа с формами в программе 1С

Работа с формами в программе 1С

Никому не секрет, что, хоть в наше время всё большее количество компаний переходят на электронный документооборот, старая поговорка «Без бумажки ты…» не теряет своей актуальности.

Так сложилось, что проверяющие органы почему-то интересуют в первую очередь бумажные документы.

Поэтому, если вы активно пользуетесь для финансового контроля программой 1С:Бухгалтерия или Предприятие, важно знать, как распечатать электронный документ, созданный при помощи программы.

Печатные формы в 1С позволяют трансформировать электронный документ в печатный вариант.

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

Особенно это касается тех документов, которые не имеют строго регламентированного вида, менять который ни в коем случае нельзя.

Сюда, в частности, можно отнести акт выполненных работ, некоторые накладные или платёжки.

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

Виды печатных форм

Для начала стоит разобраться, что, вообще, представляет собой печатная форма в 1С 8. Это шаблон электронной таблицы 1С (наподобие Excel), в котором указанные некоторые переменные строки, заполняемые данными из программы при оформлении документа.

Печатные формы бывают двух видов:

  • Внутренние (встроенные). Они хранятся в конфигурации программы, поэтому лучше их не менять, так как потом могут возникнуть проблемы при обновлении.
  • Внешние — хранящиеся отдельно от настроек программы. И их помощью можно создавать и подготавливать для печати документ практически любой сложности, не влияя на конфигурацию программы 1С 8.

Как выбрать уже подготовленные макеты? После того как вы проводите операцию прихода или расхода, например, выписываете акт выполненных работ, для распечатки документы вы нажимаете кнопку «Печать».

В списке отображается список форм для печати, которые уже заполнены введёнными данными о совершённой операции и вашей компании.

Нажав нужный вам вид документа, вы открываете окно предварительного просмотра, чтобы можно было убедиться в правильности заполненных данных. Кнопка печати выводит документ на принтер.

Разобравшись с основами, давайте выясним, где хранятся все ваши печатные формы. Перейдём к следующему вопросу.

Где хранятся печатные формы

Просмотреть встроенные печатные формы можно как в режиме конфигуратора, так и в обычном режиме предприятия. В первом случае нужно при запуске программы нажать соответствующую кнопку в стартовом окне.

Вы увидите меню программы, найти ветку «РеализацияТоваровУслуг», в которой содержится пункт «Макеты». В нём зачастую содержатся только два пункта — «Накладная» и «Акт». Где же тогда все остальные, ведь список гораздо более обширен? Они просто прячутся в другом месте.

Нужно отрыть ветку «Общие» — «Общие макеты», в ней и хранятся практически все макеты.

Во втором случае нужно перейти в раздел меню «Администрирование» — «Печатные формы, отчёты и обработки» — «Макеты печатных форм». В нём будут отображаться все макеты документов. Примечательно, что в этом же меню их можно и отредактировать.

Что касается внешних форм, то их сначала нужно либо создать через режим конфигуратора, либо скачав готовый файл, а затем подключить в меню «Администрирование» — «Печатные формы, отчёты и обработки» — «Дополнительные отчёты и обработки». Об этом расскажем несколько позже.

Создание простой формы через встроенный Конструктор печати

Такая печатная форма не подразумевает возможность глубокого редактирования, поскольку это повлечёт за собой изменение конфигурации программы, а также в дальнейшем сложности при её обновлении. Тем не менее, если вас полностью устраивает стандартная форма либо вы хотите углубляться в тонкости создания внешней формы, это способ вам полностью подойдёт.

  1. Первым делом запуститесь в режим Конфигуратора, найдите нужный вам документ, например, РеализацияТоваровУслуг, в свойствах документа перейдите в Действия — Конструкторы — Конструктор печати.
  2. При запросе варианта работы выберите «Обычные формы».
  3. Дайте название новому макету, например, «Печать счёта».
  4. Выберите те реквизиты, которые вы бы хотели видеть в шапке документа. Причём их нужно выбирать в том порядке, в котором они будут отображаться. Для выбора вам нужно выделить курсором пункт в левой колонке и нажать стрелочку посреди экрана, чтобы реквизит отобразился в правой колонке.
  5. Отметьте реквизиты для отображения в табличной части. Выбор реквизитов происходит по тому же принципу, что и в предыдущем пункте.
  6. Таким же образом выберите реквизиты нижней части документа.
  7. На заключительном этапе создания выберите, хотите ли вы печатать сразу же без предварительного просмотра, нужна ли защита таблицы, после чего подтвердите создание формы кнопкой ОК.

Создание внешней печатной формы

Формы, создаваемые через Конструктор печати, можно сравнить с визуальным программным редактором, когда вы не вводите весь код вручную, а лишь составляете его из предложенных элементов.

Внешняя же форма представляет собой файл с записанным вручную программным кодом, в котором описана процедура вывода данных на экран.

Именно это и позволяет редактировать печатную форму, как угодно, задавая абсолютно любые данные в любой последовательности.

Дополнительное преимущество заключается в том, что, даже если вы не разбираетесь или просто не хотите разбираться в тонкостях программирования 1С 8, можно доверить эту процедуру профессионалам. Они смогут подготовить для вас нужную форму, предоставят вам её в виде готового файла, который вы лишь активируете несколькими нажатиями кнопки.

Теперь подробнее о самой процедуре. Рассмотрим на примере создания макета «Счёт» для документа «Реализация (акты, накладные)».

  1. Откройте программу 1С 8 в режиме Конфигуратора.
  2. Нажмите Файл — Новый — Внешняя обработка, придумайте его название (оно не должно включать пробелы), затем нажмите кнопку Действия — Открыть модуль объекта.
  3. В открывшемся поле для ввода введите следующий код (жёлтым цветом выделены значения, которые можно изменить на свои):

Функция СведенияОВнешнейОбработке() ЭкспортПараметрыРегистрации = Новый Структура;МассивНазначений = Новый Массив;МассивНазначений.Добавить(«Документ.РеализацияТоваровУслуг»); //Указываем документ, к которому делаем внешнюю печ. формуПараметрыРегистрации.

Вставить(«Вид», «ПечатнаяФорма»); //может быть — ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов…ПараметрыРегистрации.Вставить(«Назначение», МассивНазначений);ПараметрыРегистрации.

Вставить(«Наименование», «Заказ для реализации товаров»); //имя под которым обработка будет зарегестрирована в справочнике внешних обработокПараметрыРегистрации.Вставить(«БезопасныйРежим», ЛОЖЬ);ПараметрыРегистрации.Вставить(«Версия», «1.0»);ПараметрыРегистрации.

Вставить(«Информация», «Эта форма для печати была создана в качестве образца»);ТаблицаКоманд = ПолучитьТаблицуКоманд();ДобавитьКоманду(ТаблицаКоманд, «Внешний заказ», «ВнешнийЗаказ», «ВызовСерверногоМетода», Истина, «ПечатьMXL»);ПараметрыРегистрации.

Вставить(«Команды», ТаблицаКоманд);Возврат ПараметрыРегистрации;КонецФункции // СведенияОВнешнейОбработке()Функция ПолучитьТаблицуКоманд()Команды = Новый ТаблицаЗначений;Команды.Колонки.Добавить(«Представление», Новый ОписаниеТипов(«Строка»));//как будет выглядеть описание печ.формы для пользователяКоманды.Колонки.

Добавить(«Идентификатор», Новый ОписаниеТипов(«Строка»)); //имя макета печ.формыКоманды.Колонки.Добавить(«Использование», Новый ОписаниеТипов(«Строка»)); //ВызовСерверногоМетодаКоманды.Колонки.Добавить(«ПоказыватьОповещение», Новый ОписаниеТипов(«Булево»));Команды.Колонки.

Добавить(«Модификатор», Новый ОписаниеТипов(«Строка»));Возврат Команды;КонецФункцииПроцедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = «»)НоваяКоманда = ТаблицаКоманд.Добавить();НоваяКоманда.Представление = Представление;НоваяКоманда.Идентификатор = Идентификатор;НоваяКоманда.Использование = Использование;НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;НоваяКоманда.Модификатор = Модификатор;

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

  1. Сохраните макет для печати в виде файла в любую папку на жёстком диске, назовите его соответствующим образом.

Вставьте в этот же документ процедуру запуска печати из меню программы (выделенные жёлтым цветом команды должны совпадать со строкой):

ДобавитьКоманду(ТаблицаКоманд, «Внешний заказ», «ВнешнийЗаказ»):Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) ЭкспортУправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,«Внешнийзаказ»,«Внешний заказ»,СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати);

КонецПроцедуры // Печать()

  1. Вставьте макет заполнения печатной формы, кликнув по названию внешней формы в левом нижнем углу и выбрав «Макеты» — «Добавить» — «Табличный документ», дайте ему название. После этого заполните электронную таблицу нужными данными. Например:
    • Заказ на товар № [НомерРеализации] от [ДатаРеализации] — клик правой кнопкой мыши — Свойства — Макет — Заполнение — Шаблон.
    • Создайте столбцы, которые должны отображаться в вашем документе.
    • Выделите введённые ячейки, нажмите Таблица — Имена — Назначить имя — введите название «Шапка».
    • Скопируйте строку с заголовками таблицы, выделите их, кликните правой кнопкой мыши — Свойства — Макет — Заполнение — Параметр.
    • Выделите строку, назовите её, к примеру, «СтрокаТЧ».
    • Создайте подвал: пропишите Итого, ячейку, в которой должна отображаться итоговая сумма, назовите СуммаИтого, в свойствах выберите «Параметры».
    • Укажите ответственного, в свойствах ячейки для вывода фамилии укажите «Параметры».
    • Выделите нижние строки и дайте диапазону наименование «Подвал».
  2. Теперь в окне ввода пропишите функцию формирования печатной формы:

Функция СформироватьПечатнуюФорму(СсылкаНаДокумент, ОбъектыПечати)ТабличныйДокумент = Новый ТабличныйДокумент;ТабличныйДокумент.ИмяПараметровПечати = «ПАРАМЕТРЫ_ПЕЧАТИ_СчетНаОплатуВРТУ»;МакетОбработки = ПолучитьМакет(«СчетНаОплатуВнешний»);//заполняем шапкуОбластьШапка = МакетОбработки.ПолучитьОбласть(«Шапка»);ОбластьШапка.

Параметры.НомерДокумента = СсылкаНаДокумент.Номер;ОбластьШапка.Параметры.ДатаДокумента = СсылкаНаДокумент.Дата;ОбластьШапка.Параметры.НазваниеОрганизации = СсылкаНаДокумент.Организация.Наименование;//выводим шапку в табличный документТабличныйДокумент.Вывести(ОбластьШапка);//заполняем строки ТЧОбластьСтроки = МакетОбработки.

ПолучитьОбласть(«СтрокаТЧ»);Для Каждого ТекущаяСтрока Из СсылкаНаДокумент.Товары ЦиклЗаполнитьЗначенияСвойств(ОбластьСтроки.Параметры, ТекущаяСтрока);ТабличныйДокумент.Вывести(ОбластьСтроки);КонецЦикла;//заполняем подвалОбластьПодвал = МакетОбработки.ПолучитьОбласть(«Подвал»);ОбластьПодвал.Параметры.

КоличествоИтог = СсылкаНаДокумент.Товары.Итог(«Количество»);ОбластьПодвал.Параметры.СуммаИтог = СсылкаНаДокумент.Товары.Итог(«Сумма»);ОбластьПодвал.Параметры.ИмяОтветственного = СсылкаНаДокумент.Менеджер.Наименование;//выводим подвал в табличный документТабличныйДокумент.Вывести(ОбластьПодвал);ТабличныйДокумент.

АвтоМасштаб = Истина;Возврат ТабличныйДокумент;

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

  1. Сохраните изменения в документе.
  2. Теперь нужно активировать созданную форму. Для этого:
    • Перейдите в «Администрирование» — «Печатные формы, отчёты и обработки» — «Дополнительные отчёты и обработки».
    • Нажмите кнопку «Создать», выберите в проводнике файл внешней формы, подтвердите ввод кнопкой «Записать и закрыть».
  3. Для проверки перейдите в Продажи — Реализация (акты, накладные), нажмите кнопку «Печать», выберите свою форму и проверьте правильность заполнения.
  4. Распечатайте документ при потребности.

Заключение

Источник: https://nastroyvse.ru/programs/review/kak-sozdat-pechatnuyu-formu-1s.html

Программное открытие форм в управляемом приложении 1С

Работа с формами в программе 1С

Программное открытие форм в управляемом приложении 1С значительно отличается от их открытия в обычном приложении. Рассмотрим для начала старый метод. Он заключается в получении формы и ее последующем открытии в обычном или модальном режиме (при открытии в модальном режиме форма блокирует работу программы).

ПолучитьФорму(“Документ.ПоступлениеТоваровУслуг.ФормаДокумента”).Открыть()

Это самый медленный метод открытия форм. Тем не менее, он позволяет программно обработать форму перед открытием. Для обработки код нужно немного изменить:

Форма=ПолучитьФорму(“Документ.ПоступлениеТоваровУслуг.ФормаДокумента”);
//Тут выполняем действия с формой
Форма.Открыть();

Надо учитывать, что при получении формы будет выполняться еще процедура события ПриСозданииНаСервере.

Рассмотрим другие методы, которые позволяют открывать формы в управляемом приложении 1С быстрее и удобнее. В зависимости от конкретной ситуации могут использоваться разные методы.

1. Как открыть форму объекта в управляемом приложении, если есть ссылка на него

В этом случае все предельно просто.

СпрСсылка=Справочники.Номенклатура.НайтиПоКоду(“000000001”);
ОткрытьЗначение(СпрСсылка);

2. Как открыть форму выбора и получить потом выбранное значение

Для этого существует функция ВвестиЗначение(). У функции 3 параметра:

  • Переменная, в которую будет записано выбранное значение;
  • Подсказка, которая будет отображена в окне выбора;
  • Описание типов выбираемых значений. Может быть несколько типов, тогда перед выбором конкретного значения будет предложено выбрать тип.

В результате выполнения функции откроется форма выбора по умолчанию для объекта указанного типа.

Перем Значение;
Массив=новый массив;
Массив.Добавить(Тип(“СправочникСсылка.Номенклатура”));
Массив.Добавить(Тип(“СправочникСсылка.Контрагенты”));

ОписаниеТипов=новый ОписаниеТипов(Массив);

Рез=ВвестиЗначение(Значение, “Подсказка”, ОписаниеТипов);

Предыдущие способы позволяли открывать только формы, установленные для объектов по умолчанию (форму объекта или форму выбора). Если нужно открыть произвольную форму, то можно воспользоваться функцией ОткрытьФорму().

Эта функция имеет довольно много параметров. Рассмотрим некоторые из них:

  • Имя формы — тут можно выбрать либо одну из стандартных форм объекта, например, ФормаВыбора или ФормаСписка. Или конкретную, созданную разработчиками форму.
  • Параметры — позволяет передать в форму в виде структуры некоторые параметры перед ее открытием, тем самым определив выводимые данные. Параметры могут представлять собой любые данные, которые можно передавать с клиента на сервер. Переданные при открытии формы параметры можно обработать в процедуре ПриСозданииНаСервере()  у открываемой формы.
  • Режим открытия формы — имеет 3 варианта: независимый, блокировать весь интерфейс, блокировать форму владельца.

Рассмотрим, как применяется функция ОткрытьФорму() в различных ситуациях.

3. Как открыть форму существующего объекта

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

&НаКлиенте
Процедура Команда1(Команда)
Параметр=новый структура;
Параметр.Вставить(“Ключ”, НайтиС());
ОткрытьФорму(“Справочник.Контрагенты.ФормаОбъекта”,Параметр);
КонецПроцедуры

&НаСервере

Функция НайтиС();
Возврат Справочники.Контрагенты.НайтиПоРеквизиту (“ИНН”, “745107734623”)
КонецФункции

4. Как открыть форму нового объекта

Тут подойдет просто функция ОткрытьФорму() без всяких параметров.

&НаКлиенте
Процедура Команда1(Команда)
ОткрытьФорму(“Справочник.Контрагенты.ФормаОбъекта”);
КонецПроцедуры

5. Как открыть форму нового объекта и заполнить ее на основании чего-либо

Нужно передать параметр Основание, значением которого будет являться ссылка на объект-основание заполнения. При этом будет запущена процедура ОбработкаЗаполнения().

&НаКлиенте
Процедура Команда1(Команда)
Параметр=новый структура;
Параметр.Вставить(“Основание”, СсылкаНаСчетПокупателю);
ОткрытьФорму(“Документ.РеализацияТоваровУслуг.ФормаОбъекта”, Параметр);
КонецПроцедуры

В этом примере будет создан документ Реализация товаров и услуг и заполнен на основании счета на оплату покупателю, ссылка на который была передана.

6. Как открыть форму и задать на ней отбор

Отбор на формах 1С может быть простым и сложным. Простой отбор предусматривает выражения типа Организация = ООО «Рога и копыта». Сложный отбор предполагает и другие типы сравнения, например, В списке. В данной статье рассмотрим организацию простого отбора, а сложному будет посвящена отдельная статья.

Чтобы организовать простой отбор, нужно передать в открываемую форму параметр с ключом Отбор, значением будет являться структура, в которой ключ — имя поля динамического списка, а значение — искомые данные.

Например, откроем форму списка справочника НомераГТД и сделаем там отбор по владельцу — элементу справочника Номенклатура.

&НаКлиенте
Процедура Команда1(Команда)
Параметр=новый структура;

Отбор=новый Структура;

Отбор.Вставить(“Владелец”, СсылкаНаНоменклатуру);

Параметр.Вставить(“Отбор”, Отбор);

ОткрытьФорму(“Справочник.НомераГТД.ФормаСписка”, Параметр);

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

7. Как открыть форму записи регистра сведений

Для этого понадобится ключ записи регистра сведений.

Ключ записи — это значения всех измерений и период (если регистр периодический). То есть ключ записи — это параметры, по которым можно однозначно идентифицировать запись.

Алгоритм открытия следующий:

  1. Заносим в структуру данные ключа записи с необходимыми значениями.
  2. Помещаем полученную структуру в массив.
  3. Из массива создаем ключ записи.
  4. Передаем в открываемую форму параметр Ключ с ключом записи из п.3 в качестве значения.

&НаКлиенте
Процедура Команда1(Команда)
Параметр=новый структура;

ПараметрыКлюча=новый Структура;

ПараметрыКлюча.Вставить(“Номенклатура”, СсылкаНаНоменклатуру);
ПараметрыКлюча.Вставить(“ТипЦены”, СсылкаНаТипЦен);
ПараметрыКлюча.Вставить(“Период”, Дата);

МассивКлюча = Новый Массив;

МассивКлюча.Добавить(ПараметрыКлюча);

КлючЗаписи = Новый(“РегистрСведенийКлючЗаписи.ЦеныНоменклатуры”, МассивКлюча);

Параметр.Вставить(“Ключ”, КлючЗаписи);

ОткрытьФорму(“РегистрСведений.ЦеныНоменклатуры.ФормаЗаписи”, Параметр);

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

Источник: http://chel1C.ru/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5-%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D0%B5-%D1%84%D0%BE%D1%80%D0%BC-1%D1%81/

Онлайн-школа программирования в 1С

Работа с формами в программе 1С

Внимание! Перед вами ознакомительная версия урока, материалы которого могут быть неполными.

Войдите на сайт как ученик

Войдите как ученик, чтобы получить доступ к материалам школы

Создание конфигураций 1С: добавляем обработку

Автор уроков и преподаватель школы: Владимир Милькин

Продолжаем изучение азов создания конфигураций на 1С.

На этом уроке мы вместе создадим новую обработку, а затем напишем для неё команды, которые демонстрируют работу со справочником “Сотрудники”.

Возвращаемся в конфигуратор и открываем дерево конфигурации.

Добавляем новую обработку

Правой кнопкой нажимаем на разделе “Обработки” и выбираем пункт “Добавить”:

Открылось окно создания новой обработки. Перейдём на закладку “Основные” и укажем в качестве имени обработки “ОбработкаСправочников”:

Создаём форму для обработки

Перейдём на закладку “Формы” нажмём на зелёный плюсик, чтобы добавить новую форму (визуальное представление нашей обработки):

Появился конструктор создания формы. Оставим всё по умолчанию и нажмём “Готово”:

Открылась новая форма:

Создаём новую команду для формы

Перейдём на закладку “Команды”->”Команды формы”:

Добавим новую команду (зелёный плюсик):

И в свойствах новой команды укажем имя “ВыводВсехСотрудников”:

Нажмём в её же свойствах на лупу рядом с полем “Действие”, чтобы задать обработчик команды. Выберем вариант создания обработчика “НаКлиенте” и нажмём “ОК”:

Нас перенесло в модуль формы в процедуру-обработчик команды “ВыводВсехСотрудников”:

Пишем код обработчика команды

Теперь наша задача написать код на внутреннем языке 1С, который будет перебирать все элементы справочника “Сотрудники”.

Сразу хочу сказать, что этот код нельзя писать прямо в процедуре “ВыводВсехСотрудников”, так как она выполняется на клиенте (обратите внимание на специальную строчку перед процедурой “&НаКлиенте”). Попытка прочитать данные из базы в клиентской процедуре всегда будет приводить к ошибке (пока просто запомните это).

Поэтому давайте допишем в конце модуля процедуру такого вида:

Обратите внимание, что перед ней я указал признак “&НаСервере”. Это означает, что она будет выполняться на сервере, а значит мы можем из неё читать данные справочника.

Теперь организуем вызов этой процедуры из клиентской “ВыводВсехСотрудников”:

Тут логика такая:

  1. Пользователь вызывает команду “ВыводВсехСотрудников” (например, нажатием на кнопку, которой у нас ещё правда нет)
  2. Команда запускает одноименную процедуру-обработчик “ВыводВсехСотрудников” на клиенте (ведь кнопка, а значит и команда находятся на клиенте)
  3. Клиентская процедура “ВыводВсехСотрудников” делает вызов серверной процедуры “ВыводВсехСотрудниковНаСервере”
  4. Серверная процедура “ВыводВсехСотрудниковНаСервере” читает данные справочника из базы и выводит их в окно сообщений

Нам осталась самая малость – написать код процедуры “ВыводВсехСотрудниковНаСервере”, который пробегается по элементам справочника “Сотрудники” и выводит их в окно сообщений.

Это на самом деле несложно. Обход всех справочников в 1С однотипен. А значит научившись это делать сейчас со справочником “Сотрудники”, вы сможете делать также и с любыми другими справочниками.

Для доступа к данным справочника используется менеджер, доступ к которому осуществляется так:

Менеджер = Справочники.Сотрудники;

В этом предложении ключевая часть находится справа от знака равно. Слева – это просто переменная, в которую мы сохраняем менеджер, чтобы работать с ним дальше. Имя этой переменной могло быть не только “Менеджер”, но и любое другое – хоть “Барабашка”.

Что представляет из себя менеджер справочника? Менеджер – это ещё не сами данные справочника. Менеджер – это некоторый программный объект (можете представлять его себе в виде чёрного ящика), через который мы можем что-либо делать со справочником.

Менеджер справочника – это как бы такая прослойка между нашим кодом и данными справочника.  И получается, что, если нам требуется прочитать все элементы справочника, то мы не можем этого сделать напрямую. Мы можем только попросить об этом нашу прослойку между нами и справочником, то есть менеджер.

Чтобы сделать это – необходимо вызвать встроенный в менеджер метод “Выбрать”. Вызывается он через точку после имени переменной, в которой хранится менеджер, и возвращает коллекцию элементов справочника:

Менеджер = Справочники.Сотрудники;Выборка = Менеджер.Выбрать();

Что представляет из себя выборка? Выборка (опять же это только имя переменной, в которую мы сохраняем результат работы метода “Выбрать” и оно могло бы быть любым другим) представляет из себя коллекцию, но не такую, как например массив или список значений.

Выборка представляет собой объект – опять же думайте о нём как о ящике, но ещё не сами данные. Особенность этого объекта в том, что он умеет перебирать элементы нужного нам справочника. Причём перебирает он их динамически. Это означает, что использование выборки не считывает все элементы справочника сразу, а выбирает их порциями из базы данных.

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

Чтобы получить очередную порцию данных из выборки, необходимо вызвать у выборки встроенный в неё метод “Следующий”. Получение порций данных (одна порция соответствует одному элементу справочника) обычно происходит в цикле:
Пока Выборка.Следующий() ЦиклКонецЦикла;

Когда данные (элементы справочника) в выборке закончатся, метод “Следующий” вернёт Ложь и цикл прекратится.

После каждого вызова метода “Следующий” (при условии, что он вернул “Истина”) выборка будет содержать в себе все поля с данными только считанного элемента справочника, обращаться к которым можно по именам через точку:

Пока Выборка.Следующий() Цикл Сообщить(Выборка.ИмяПоляСправочника1); Сообщить(Выборка.ИмяПоляСправочника2); // и т.д.КонецЦикла;

Получается в один момент – мы работаем с данными только одного из элементов справочника. И тут мы можем или сразу их вывести пользователю (методом “Сообщить”) или, к примеру, мы можем сложить их в другую коллекцию (массив), чтобы потом уже за раз с ними что-нибудь сделать. Всё зависит от задачи, которую мы решаем.

Значит код процедуры “ВыводВсехСотрудниковНаСервере” напишем таким образом:

Превращаем команду в кнопку

Давайте проверять! Для этого перетащим нашу команду на форму, чтобы она превратилась в кнопку:

Готово!

Теперь запустим 1С:Предприятие (меню “Отладка”->”Начать отладку”), откроем нашу обработку (меню “Сервис”->”Обработка справочников”) и нажмём кнопку “Вывод всех сотрудников”:

Всё получилось!

Ну раз такое дело – со следующего урока начинаем создавать более интересные проекты.

Для учеников

Обязательно повторяйте все действия, которые мы выполняем на уроках данного модуля. Теория, не подкреплённая практикой – ничего не значит.

На вопросы учеников — отвечаю по почте,  но прежде загляните в ЧАВО (ссылка) .

С уважением, Владимир Милькин

Внимание! Перед вами ознакомительная версия урока, материалы которого могут быть неполными.

Войдите на сайт как ученик

Войдите как ученик, чтобы получить доступ к материалам школы

Источник: https://helpme1c.ru/sozdanie-konfiguracij-1s-azy-7

Бесплатные программы русские. Программирование 1С

Работа с формами в программе 1С

Элементы управления представляют собой отдельную группу объектов, предназначенных для ввода и представления информации в диалогах. Они могут располагаться на форме, использоваться для редактирования ячеек табличного поля, табличного документа.

Кнопка является одним из наиболее часто используемых элементов управления в формах прикладных решений программы 1С:Предприятие. В этом видео-уроке мы вместе с вами создадим простейший прикладной объект 1С – так называемую “обработку”, далее мы создадим основную форму обработки и научимся добавлять в эту форму такой важный элемент управления, называемый “Кнопка”

1. Создание тестовой обработки

Здравствуйте дорогие друзья! С вами Дегтярев Роман. Тренинг – Центр “Старт в 1С”.

Прочтите текст, и одновременно посмотрите короткую видео-шпаргалку, в которой речь пойдет о вставке интерфейсных элементов в форму какого-либо прикладного объекта 1С, ( в том числе и обработки 1С, на примере которой мы рассмотрим этот процесс)

, на котором показан весь процесс, расположено ниже.

Вы можете просматривать это видео в высоком качестве и в полноэкранном режиме, используя кнопки управления проигрыванием видеоролика

Это пригодится нам вообще, как базовый навык конструирования форм, так и для выполнения других практических упражнений.

Мы поговорим о вставке одного из видов интерфейсных элементов, использующихся в любом прикладном решении 1С:Предприятии, о вставке кнопок в форму.

Давайте с вами запустим наше учебное прикладное решение в режиме конфигурирования (разработки) Эта инструкция, об учебном прикладном решении, касается тех, кто обучается на наших курсах программирования 1С.

Те, кто не обучается на курсах, могут запустить в режиме конфигурирование любое имеющееся прикладное решений, в том числе и полностью пустое. Этого будет достаточно изучения для рассматриваемого примера.

Для того, что бы нам было куда вставлять кнопки – предварительно создадим какую то отдельную обработку в дереве объектов конфигурации.

Итак , мы вошли в режим конфигурирования прикладного решения. Давайте с вами создадим обработку. Правдой кнопкой мыши нажимаем на узле “Обработки” и выпадает меню.

Выбираем в выпавшем меню пункт с именем “добавить”. Откроется окно визуального конструктора обработки.

Обработку можем называть каким-то определенным именем, а можем не называть – и оставить имя, которое присвоено по умолчанию.

Например, давайте дадим нашей обработке имя “Тестовая обработка”. Вы сами называйте так как вам требуется , если вы создаете обработку.

После присвоения имени нашей обработке можем внизу окна конструктора сразу же нажать кнопку “Закрыть” – поскольку иных действий выполнять не требуется.

Тестовая обработка создана, мы видим ее имя в дереве конфигурации, в узле “Обработки”. Давайте, щелкнем мышью на имени нашей обработки, развернем этот пункт и увидим под-элементы, которые могут входить в состав нашей обработки: “Реквизиты”, “Формы”, “Макеты” и так далее.

2. Создание основной формы обработки

Теперь пришла очередь создать форму для нашей обработки. Форма обработки – это визуальное представление, основное диалоговое окно, которое увидит пользователь и с которым он будет взаимодействовать, если запустит на выполнение нашу обработку.

Она является аналогом окна, формы любой другой программы под Windows – и может иметь в своем составе элементы меню, командные панели, поля ввода, надписи, кнопки, выпадающие списки и иные элементы управления – все те элементы, к которым мы привыкли при работе с большинством обычных программ.

Давайте нажмем правой кнопкой мыши на узле “Формы”, далее, выбираем в появившемся контекстном меню пункт с именем “Добавить”

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

Но нам сейчас никаких особых настроек делать не нужно, поэтому мы просто нажимаем кнопку “Готово”, в нижней части окна конструктора формы обработки.

После этого перед нами открывается вновь созданная форма обработки 1С.

3. Теперь рассмотрим процесс создания кнопок в форме обработки

Итак, как же происходит вставка кнопок?

Обратим внимание, что по умолчанию, во вновь созданной форме, некоторые кнопки уже вставлены во время конструирования обработки. Эти кнопки вставлены автоматически.
Это стандартные кнопки “действий” двух, так называемых, командных панелей, что имеются в верхней части окна формы, и в нижней части окна.

Нас же сейчас интересуют те кнопки, которые мы вставим сами, “вручную”.

Для того, чтобы вставить какой то интерфейсный элемент, в том числе и кнопки, в конструируемую форму, мы должны нажать специальную кнопку с “иконкой” (на иконке виден желтый значок “плюс” ), открывающую окно выбора интерфейсного элемента для вставки.

Эта специальная кнопка с “иконкой” находится, как правило, на панели инструментов, под главным меню основного окна конфигуратора.
При наведении мыши над нужной кнопкой возникает подсказка “Вставить элемент управления”.

Если кнопка на панели инструментов отсутствует (это зависит от настроек панелей инструментов), у нас имеет альтернативный путь: Когда перед нами на экране имеется окно конструктора формы, мы можем выбрать из главного меню конфигуратора пункт: “Форма”/ “Вставить элемент управления”.

Независимо от того, нажали ли мы кнопку в панели инструментов, или выбрали действие из главного меню – перед нами открывается специальное окно выбора элемента управления, для вставки. Окно имеет заголовок “Вставка элемента управления”

В окне мы видим много различных элементов управления. (Вы можете потренироваться на досуге и попробовать вставить в форму эти элементы, посмотреть, как они выглядят).

Сейчас же нас интересует элемент “Кнопка”. По умолчанию, после открытия окна “Вставка элемента управления”, для вставки как раз выбран именно первый элемент из списка возможных и этот элемент управления – “Кнопка”.

Выбор вида элемента управления для вставки осуществляется в левой части окна, а в правой части окна дана возможность установить некоторые свойства элемента перед тем, как он будет вставлен в форму.

То есть, перед вставкой какого-то элемента управления в форму, его можно предварительно “подготовить”, установив основные его свойства: имя, заголовок, текст подсказки при наведении мыши, и некоторые другие свойства.

Например, любому элементу, в том числе и “кнопке”, мы можем присвоить какое то имя перед вставкой. Это имя будет являться именем объекта на встроенном языке 1С:Предприятие, именем программного объекта.

Это то имя, к которому потом можно будет обращаться из встроенного языка программирования .

Аналогично, мы можем присвоить какой то заголовок кнопке, надпись на ней. В нашем примере присвоим кнопке заголовок “Наша кнопка”.

Если мы желаем, чтобы по нажатию этой кнопки выполнялось какое-то действие на встроенном языке программирования, тогда мы не должны снимать галочку-флажок “создать процедуру”. По-умолчанию этот флажок включен.

Если этот флажок будет включен, то одновременно со вставкой кнопки, в программном модуле формы будет создана пустая процедура-обработчик, в которой мы сможем написать любой нужный алгоритм, выполняемый при нажатии этой кнопки в режиме пользователя.

Там же, в окне “Вставка элемента управления” мы можем вести текст подсказки, если желаем. Давайте в поле ввода “Подсказка” напишем – ”Это наша кнопка”. Эта подсказка будет появляться при наведение курсора мыши на вставленную кнопку.

Все, подготовка перед вставкой завершена, теперь нажимаем кнопку “Ок”.

После этого окно “Вставка элемента управления” закрывается и теперь мы можем вставить нашу кнопку в произвольное место нашей формы. Значок курсора мыши временно изменен на крупный “плюс” – таким образом система подсказывает, что мышью нужно указать конкретное место на форме, куда мы собираемся вставить элемент управления.

Выбираем место под кнопку в любой части нашей формы и нажимаем левую кнопку мыши. Наша новая кнопка вставилась в форму, и одновременно конструктор формы моментально переключает нас в окно редактора программного модуля формы.

Он показывает нам тело обработчика события нажатия вновь вставленной кнопки . То есть, мы сразу же можем написать код, который будет у нас вызываться при нажатии кнопки .

Давайте, все-таки, вернемся на закладку “Диалог” (закладки конструктора формы находятся снизу окна) и убедимся, что кнопка в форме появилась. Да, наша кнопка здесь!

Мы можем поменять ее размер, “потянув мышью” за угол кнопки, или куда-то сдвинуть нашу кнопку в пределах окна формы.

А перейдя снова в программный модуль (закладка “Модуль”) -мы можем писать код на языке программирования, для выполнения действий по нажатию нашей кнопки.

Впишем некоторый код, пусть он, для простоты, состоит всего из одной строчки “Сообщить(“Нажата наша кнопка!”);

Это код приведет к тому, что по нажатию кнопки, на экране пользователя, в служебном окне сообщений появится следующий текст: “Нажата наша кнопка”.

Давайте проверим, запустим наша прикладное решение в режиме пользователя.

Далее, выберем в главном меню пункт “Операции”/”Обработки”. Вспоминаем, что мы создали обработку и назвали ее “Тестовая обработка”, поэтому обработку с таким именем мы и выбираем из открывшегося списка.

Тмк, мы видим перед собой форму нашей обработки. В форме мы видим нашу кнопку с заголовком “Наша кнопка”. Обратите внимание, подсказка “Это наша кнопка” появляется при наведение курсора мыши над кнопкой.

Теперь давайте нажмем кнопку. Убеждаемся, что в окно служебных сообщений выдано сообщение, которое мы с вами запрограммировали: “Нажата наша кнопка”.

Подобным образом мы можем вставлять любые другие элементы управления, о которых мы поговорим с вами на наших курсах и видео-шпаргалках.

Резюме: Мы успешно вставили кнопку на форму обработки, и теперь вы должны уметь это делать. До встречи в видеоуроках .

С вами был Дегтярев Роман.

Тренинг-центр “Старт в 1С”

Как научиться программировать в 1С с нуля?

Как работать программистом 1С и получать до 150 000 рублей в месяц?

ЗАПИШИСЬ НА БЕСПЛАТНЫЙ

2-НЕДЕЛЬНЫЙ КУРС

“ПРОГРАММИРОВАНИЕ в 1С ДЛЯ НОВИЧКОВ”

Курс придет на электронную почту. Стань программистом, выполняя пошаговые задания.

Для участия нужен только компьютер и интернет

Бесплатный доступ на курс:

Источник: http://fast-soft.ru/shpargalka-1s-dobavlenie-knopok-na-formu/

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.