Код
#статьи

Как программировать в «1С:Предприятии»: стартовый гайд для начинающих

Расскажем о системе «1С:Предприятие», её встроенном языке, визуальном конструировании и вообще о том, как проходит разработка в «1С».

Иллюстрация: Оля Ежак для Skillbox Media

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

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

Содержание:


Что такое «1С» и из чего она состоит

«1С:Предприятие» — это система для автоматизации деятельности предприятий. С её помощью можно рассчитать бизнес-процессы в компаниях любого масштаба и направления: в небольших фирмах и огромных холдингах, на оптовых складах и в интернет-магазинах, на сельхозпредприятиях и так далее.

Система состоит из двух основных частей — технологической платформы и конфигураций.

Платформа. Это одновременно и среда разработки, и среда выполнения. Она содержит собственный язык программирования, IDE для разработчика, приложение для администрирования и многое другое. Разработкой платформы занимается сама компания «1С» — она регулярно выпускает новые версии. На сегодняшний день самая актуальная версия платформы — 8.3.

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

Вот примеры некоторых популярных конфигураций:

  • «1С:Бухгалтерия предприятия» — предназначена для ведения бухгалтерского и налогового учёта.
  • «1С:Зарплата и управление персоналом» — для расчёта зарплаты и кадрового учёта.
  • «1С:Управление торговлей» — для учёта на складах и в магазинах, «1С:Розница» — для автоматизации розничных торговых точек.

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

Конфигурации «1С» можно разрабатывать с нуля, а можно взять готовую и настроить под свои задачи.

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

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

«1С» поддерживает различные СУБД, в том числе Microsoft SQL Server, PostgreSQL, IBM Db2 и Oracle Database. Их выбирают при установке программы, а программист при написании кода об этом не думает.

Решения «1С» — мультиплатформенные, то есть их можно запускать на разных операционных системах: Windows, macOS, Linux, а также в браузере. Можно интегрировать их с внешними базами, веб-сервисами и мессенджерами. Можно писать приложения под Android и iOS.

В «1С» есть много разных возможностей: видеозвонки, встроенные чаты, демонстрация экрана, инструменты построения многоязычного интерфейса для тиражирования своего продукта и многое другое. Всё это можно использовать в своих приложениях.

Для разработчиков на 1С есть большое количество обучающих материалов: статей, видео, телеграм-каналов, а также готового кода. Так, на официальном ресурсе «1С:ИТС» есть подробные материалы по работе с 1С.

1С: что это за язык программирования

Язык программирования 1С — встроенный язык платформы «1С:Предприятие». Он предметно-ориентированный, то есть на нём нельзя писать сайты и игры, но можно быстро и экономично автоматизировать бухгалтерский и налоговый учёт, учёт на складах, разработать CRM-систему и делать многое другое.

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

По синтаксису язык 1С напоминает Pascal и BASIC в сочетании с языком запросов T-SQL, хотя его нельзя назвать их аналогом. Писать код в «1С» можно на двух языках — русском и английском. Программисты, как правило, предпочитают русский. На него быстро переходят и те, кто раньше программировал на английском, — так понятнее.

Русскоязычный синтаксис стал стандартом в системе «1С». На нём написаны все конфигурации, а также множество дополнительных отчётов и обработок.

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

Создаём первую конфигурацию

С терминами вроде разобрались — настало время перейти к практике. Чтобы лучше разобраться в нюансах платформы, создадим небольшую конфигурацию — назовём её «Учёт товаров на складе». Для этого скачаем бесплатный дистрибутив для обучения с официального сайта «1С» и установим его на компьютер — есть версии для Linux, macOS и Windows.

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

Скриншот: Skillbox Media

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

Скриншот: Skillbox Media

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

Скриншот: Skillbox Media

Вводим название информационной базы: Учёт товаров на складе. Нажимаем Далее.

Скриншот: Skillbox Media

Выбираем каталог, в котором будет находиться наша информационная база, и нажимаем Далее.

Скриншот: Skillbox Media

Оставляем параметры по умолчанию и нажимаем кнопку Готово.

Скриншот: Skillbox Media

Открылось окно запуска «1С:Предприятия».

Скриншот: Skillbox Media

Информационную базу можно запускать в двух режимах:

  • 1С:Предприятие — пользовательский режим. В нём пользователи работают с данными и формируют отчёты.
  • Конфигуратор — режим для разработчика. В нём создаются прикладные решения на встроенном языке и выполняется администрирование информационной базы.

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

Скриншот: Skillbox Media

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

Скриншот: Skillbox Media

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

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

Скриншот: Skillbox Media

Мы видим, что в заголовке окна дерева конфигурации появился знак *. Это знак того, что в нашу конфигурацию внесены изменения. Чтобы сохранить их, нажимаем на значок дискеты.

Скриншот: Skillbox Media

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

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

Первую можно редактировать, а вторую — нельзя. Её можно только автоматически обновить на основании первой.

Видим, что в заголовке дерева конфигурации появился знак различия конфигураций — <!>. Это означает, что конфигурация базы данных отличается от основной. Чтобы внести в неё изменения, нужно нажать на иконку с бочонком, который отмечен на скриншоте.

Скриншот: Skillbox Media

Справочники

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

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

Кликаем правой кнопкой мыши по элементу Справочники и нажимаем на Добавить (или на клавишу Insert на клавиатуре).

Скриншот: Skillbox Media

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

Скриншот: Skillbox Media

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

У всех элементов справочников есть два обязательных реквизита — код и наименование. Наименование вводит пользователь, а код программа формирует автоматически. При этом она следит за тем, чтобы коды не дублировались в пределах одного справочника.

Добавим в справочнике реквизит Адрес, в котором будет храниться адрес организации. Он имеет тип Строка.

Скриншот: Skillbox Media

И второй реквизит — Дата регистрации, который имеет тип Дата. Здесь будет храниться дата регистрации организации.

Скриншот: Skillbox Media

В системе «1С» есть примитивные типы данных: Строка, Число, Дата, Булево и другие. Они определены на уровне платформы.

Создадим ещё один справочник под названием Склады. Он будет подчинён справочнику Организации — то есть у каждого элемента справочника Склад будет владелец — элемент справочника Организации.

Вот как выглядит настройка в редакторе:

Скриншот: Skillbox Media

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

Скриншот: Skillbox Media

Перед нами — интерфейс пользователя. Здесь пользователи могут самостоятельно настраивать внешний вид программы, задавать расположение панелей и разделов, использовать закладки. Для этого нужно в главном меню выбрать пункт Настройки.

Скриншот: Skillbox Media

Теперь откроем справочник Организации. Создадим и запишем элемент — ООО «Дом техники».

Скриншот: Skillbox Media

Мы видим, что программа автоматически сформировала всё, что нужно для работы со справочником: создала формы ввода и списка, добавила поля ввода на основании реквизитов, автоматически заполнила поле Код.

Если мы нажмем на кнопку Ещё, то появится меню с действиями, которые можно совершать с элементами:

Скриншот: Skillbox Media

Мы можем:

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

В форме элемента справочника Организации мы видим вкладку Склады. Здесь можно работать с элементами подчинённого справочника.

Скриншот: Skillbox Media

Элемент подчинённого справочника нельзя записать, если не определён владелец. Программа выдаст сообщение об ошибке.

Скриншот: Skillbox Media

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

Скриншот: Skillbox Media

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

Скриншот: Skillbox Media

Документы

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

В типовой конфигурации «1С:Управление торговлей» есть много документов для учёта товаров: приходные и расходные накладные, акты о перемещении, списании и других операциях с товарами. В нашей небольшой конфигурации мы будем использовать два документа: «Поступление товаров» и «Продажа товаров».

У каждого документа есть обязательные реквизиты: номер, дата и время. В «1С» есть режим автоматической нумерации, при котором система сама генерирует номера для новых документов и следит, чтобы они не повторялись.

Создадим документ ПоступлениеТоваров, который отражает операцию поступления товаров на склад.

Добавим в документ реквизит Склад (тип СправочникСсылка.Склады).

Скриншот: Skillbox Media

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

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

Это видно на рисунке:

Скриншот: Skillbox Media

Также добавим табличную часть Товары. Чтобы это сделать, нужно раскрыть иерархию документа, кликнуть правой кнопки мыши на пункт Табличные части и нажать Добавить. Следом задаём нашей табличке реквизиты Количество, Цена и Сумма с типом неотрицательное число, длина 10, точность 2.

Вуаля! Теперь у нас есть таблица со всеми поступающими и убывающими товарами на складе. В конфигураторе документ будет выглядеть так:

Скриншот: Skillbox Media

Теперь запустим пользовательский режим «1С:Предприятия» с помощью всё той же клавиши F5. Создадим документ «Поступление товаров» и заполним реквизиты.

Скриншот: Skillbox Media

В нашей табличке появилась первая запись. Но есть один нюанс: при вводе количества и цены Сумма не считается автоматически, а нас это не устраивает. Чтобы это исправить, надо будет запустить конструктор формы документа и написать код — о том, как это сделать, расскажем в следующем разделе.

Конструктор формы

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

Настроим в конфигураторе форму нашего документа ПоступлениеТоваров. Для этого выделим в меню документа элемент Форма и нажмём клавишу Добавить. Запустится окно конструктора формы.

Скриншот: Skillbox Media

Нажмем кнопку Далее.

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

Скриншот: Skillbox Media

После того как мы нажмём Готово, откроется окно редактора форм. Видим, что он автоматически создал форму объекта документа ПоступлениеТоваров и расположил на ней поля для ввода значений реквизитов.

Скриншот: Skillbox Media

Теперь нам нужно написать скрипт, который будет автоматически пересчитывать Сумму при изменении значений элементов Количество или Цена. Для этого дважды кликнем по полю Количество и войдём в палитру свойств объекта. Выберем обработчик события ПриИзменении.

Скриншот: Skillbox Media

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

Скриншот: Skillbox Media

Открывается модуль формы с автоматически созданной процедурой.

Скриншот: Skillbox Media

Проделаем то же самое с элементом формы Цена и получим ещё одну автоматически созданную процедуру.

Скриншот: Skillbox Media

Добавим в обе процедуры одинаковый код — формулу расчёта стоимости товара:

&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)

	Элементы.ТоварыСумма = Элементы.ТоварыЦена * Элементы.ТоварыКоличество;
		
КонецПроцедуры

&НаКлиенте
Процедура ТоварыЦенаПриИзменении(Элемент)
	
	Элементы.ТоварыСумма = Элементы.ТоварыЦена * Элементы.ТоварыКоличество;	
	
КонецПроцедуры

Упростим код — вынесем расчёт суммы в отдельную процедуру РассчитатьСумму ():

&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
	
	РассчитатьСумму();
	
КонецПроцедуры

&НаКлиенте
Процедура ТоварыЦенаПриИзменении(Элемент)
	
	РассчитатьСумму();	
	
КонецПроцедуры

&НаКлиенте
Процедура РассчитатьСумму()
	
	ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
	ТекущаяСтрока.Сумма = ТекущаяСтрока.Цена * ТекущаяСтрока.Количество;	
КонецПроцедуры

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

Скриншот: Skillbox Media

Далее нам понадобится ещё один документ для учёта — ПродажаТоваров. Структура и процедуры в модуле формы у него будут те же самые, что и у документа ПоступлениеТоваров — попробуйте создать его самостоятельно по аналогии, чтобы отточить полученные знания.

Скриншот: Skillbox Media

Общие модули

Теперь в документах ПоступлениеТоваров и ПродажаТоваров появились две одинаковые процедуры: РассчитатьСумму (). Но, как мы помним, согласно принципу DRY, дублирование кода — это совсем не здорово. Поэтому, чтобы не повторяться, вынесем процедуру в общий модуль.

Общие модули — это объекты конфигурации, в которых можно хранить процедуры, вызываемые в нескольких местах программы.

Перейдём в ветку Общие дерева конфигурации и создадим общий модуль под названием ОбщиеМодулиДокументов.

Скриншот: Skillbox Media

Добавим в него процедуру РассчитатьСумму () и немного изменим её.

Процедура РассчитатьСумму(Товары) Экспорт
	
	ТекущаяСтрока = Товары.ТекущиеДанные;
	ТекущаяСтрока.Сумма = ТекущаяСтрока.Цена * ТекущаяСтрока.Количество;	
КонецПроцедуры

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

А в модулях форм обоих документов изменим код следующим образом:

&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
	
	ОбщиеМодулиДокументов.РассчитатьСумму(Элементы.Товары);
	
КонецПроцедуры

&НаКлиенте
Процедура ТоварыЦенаПриИзменении(Элемент)
	
	ОбщиеМодулиДокументов.РассчитатьСумму(Элементы.Товары);
КонецПроцедуры

Запишем изменения конфигурации. Запустим «1С:Предприятие» в режиме пользователя и создадим новый документ «Продажа товаров».

Скриншот: Skillbox Media

Теперь настроим движения документов по регистрам.

Регистры

Регистры — это объекты конфигурации, выполненные в виде таблиц с колонками и строками, наподобие таблиц Excel. В них записываются все процессы, которые происходят с документом, и на основе этих записей потом формируются отчёты. Этот процесс в «1С» называется движением по регистрам. Запускается он прямо из документа с помощью кнопки Провести.

Зачем нужны регистры

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

В «1С» версии 8.3 есть четыре вида регистров:

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

В регистрах накопления можно «накапливать» данные в разрезе нескольких измерений. Рассмотрим это на примере. Создадим регистр накопления.

Скриншот: Skillbox Media

Назовём его ОстаткиТоваров.

Скриншот: Skillbox Media

Зададим измерения:

  • Склад (тип — СправочникСсылка.Склады);
  • Товар (тип — СправочникСсылка.Товары).

Зададим ресурсы:

  • Количество (тип — неотрицательное число, длина 10, точность 2). Здесь будет накапливаться количество товаров.
  • Сумма (тип — неотрицательное число, длина 10, точность 2). Здесь будет накапливаться стоимость товаров.
Скриншот: Skillbox Media

Чтобы сформировать движения регистра, перейдём в документ ПоступлениеТоваров. Кликнем правой кнопкой мыши по наименованию и выберем конструктор движений.

Скриншот: Skillbox Media

Настроим его так:

Скриншот: Skillbox Media

Теперь откроем модуль документа ПоступлениеТоваров»:

Скриншот: Skillbox Media

Мы видим, что программа автоматически создала процедуру проведения документа:

Процедура ОбработкаПроведения(Отказ, Режим)
	//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора внесённые вручную изменения будут утеряны!!!
	// Регистр ОстаткиТоваров Приход
	Движения.ОстаткиТоваров.Записывать = Истина;
	Для Каждого ТекСтрокаТовары Из Товары Цикл
		Движение = Движения.ОстаткиТоваров.Добавить();
		Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
		Движение.Период = Дата;
		Движение.Склад = Склад;
		Движение.Товар = ТекСтрокаТовары.Товары;
		Движение.Количество = ТекСтрокаТовары.Количество;
		Движение.Сумма = ТекСтрокаТовары.Сумма;
	КонецЦикла;

	//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры

Похожим образом настроим документ ПродажаТоваров, только поставим в конструкторе тип движения Расход.

Скриншот: Skillbox Media

В модуле документа программа автоматически создаст код:

Процедура ОбработкаПроведения(Отказ, Режим)
	//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора внесённые вручную изменения будут утеряны!!!

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

	//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры

Запустим «1С:Предприятие» и проведём созданные ранее документы. Теперь в регистре Остатки товаров мы видим их движения — то есть все изменения, которые происходят с элементами документа.

Скриншот: Skillbox Media

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

Отчёты

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

Здесь мы будем использовать один из важнейших механизмов платформы «1С» — схему компоновки данных. Она предназначена для построения отчётов со сложной структурой (настройками, детализацией и свёрткой, группировкой и отборами) на основе их декларативного описания.

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

Создадим объект Отчёт.

Скриншот: Skillbox Media

Назовем его ОтчётПоТоварам.

Нажимаем на кнопку Открыть схему компоновки данных.

Нажимаем на кнопку Готово и переходим в конструктор макета.

Скриншот: Skillbox Media

Создаём набор данных Запрос.

Скриншот: Skillbox Media

Нажимаем на кнопку Конструктор запроса.

Скриншот: Skillbox Media

В качестве источника данных для отчёта выбираем виртуальную таблицу ОстаткиТоваров.ОстаткиИОбороты и переносим в окно Поля реквизиты, которые нужны для нашего отчёта. Нажимаем ОК.

Скриншот: Skillbox Media

Мы видим, что программа автоматически сгенерировала текст запроса. Теперь переключаемся на вкладку Настройки.

Скриншот: Skillbox Media

Выбираем нужные поля и создаём группировку Склад.

Скриншот: Skillbox Media

Мы можем также настроить отбор по полям Склад и Товар.

Скриншот: Skillbox Media

И сортировку по тем же полям.

Скриншот: Skillbox Media

Перейдём на вкладку Другие настройки и создадим заголовок отчёта.

Скриншот: Skillbox Media

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

Работа с отчётом в интерфейсе пользователя

Вызовем отчёт Остатки товаров. Выберем даты начала и окончания периода отслеживания. Нажмём кнопку Сформировать.

Скриншот: Skillbox Media

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

Скриншот: Skillbox Media

В результате получим отчёт только по «Складу1»:

Скриншот: Skillbox Media

Что в итоге

Эта статья — стартовый гайд по основным нюансам разработки в «1С». Мы создали с нуля небольшую конфигурацию и на её примере показали, как можно визуально конструировать основные объекты «1С». Написали несколько процедур на встроенном языке и создали отчёт с использованием схемы компоновки данных.

Этого набора знаний хватит, чтобы создавать простые решения с нехитрой бизнес-логикой. Если подумываете заняться «1С» профессионально, советуем чуть глубже изучить официальную документацию к платформе. А если хотите освоить разработку быстро, на реальных кейсах, да ещё и с сертификатом от «1С» на выходе — приходите на курс «Профессия 1С-разработчик».

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия 1С-программист Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована