1с разработка собственной конфигурации

Построена простая конфигурация учета движения картриджей для лазерной техники в организации с использованием платформы 1С Предприятие 8.3 и интерфейса "Такси". Учитывается движение каждого картриджа (покупка, заправка, восстановление, ремонт, установка в принтер и пр.) и расход средств по каждому картриджу. Основная цель - освоить разработку приложений на базе платформы 1С Предприятие 8.3 на примере построения работоспособного и полезного приложения.

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

Работаю в отделе IT крупной организации с большим количеством лазерных принтеров и МФУ. Учет движения картриджей для них является актуальной задачей и требованием руководства.

Постановка задачи.

Заправка тонером, восстановление, ремонт картриджей осуществляется сторонней организацией. Необходимо учитывать движение каждого картриджа, то есть покупку, заправку тонером, восстановление, ремонт, установку в конкретный принтер (МФУ), текущее местоположение, списание и пр. Кроме того надо учитывать затраты по каждому картриджу (расходы на покупку, заправку тонером и пр. в разрезе поставщиков).

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

План реализации.

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

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

Предположим для начала, что в нашей конфигурации будут следующие объекты:

Справочники:

НоменклатураКартриджей

Картриджи

НоменклатураКартриджейЦены

Принтеры

Номенклатура Принтеров

Поставщики

Документы:

ПоступлениеКартриджей

ЗаменаКартриджа

СписаниеКартриджей

Перечисления:

ДаНет

СостояниеКартриджей

ПричиныЗаменыКартриджей

Регистры сведений:

КартриджиЗамена

Регистры накоплений:

КартриджиОплата

Алгоритм работы.

Основным «действующим лицом» является список имеющихся картриджей (Справочник Картриджи ). Изначально список заполняется документом ПоступлениеКартриджей НоменклатураКартриджей . При покупке картриджа значение реквизит Состояние в документе выбирается как Новый . Цена покупки определяется по справочнику НоменклатураКартриджейЦены натекущую дату СерийныйНомер ). Реквизит Местоположение определяется как «Склад» .

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

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

Кроме того, в регистрнакоплений КартриджиОплата

Учет замены картриджа в конкретном принтере (справочник Принтеры ) осуществляется документом ЗаменаКартриджа . В документе указывается текущий принтер. Уникальность принтера определяется реквизитом СерийныйНомер . Указывается устанавливаемый и заменяемый картридж (серийные номера картриджей).

При проведении документа ЗаменаКартриджа в табличной части справочника Принтеры у текущего принтера добавляется строка с реквизитами документа и изменяется реквизит Картридж . В справочнике Картриджи у текущих картриджей меняется значение реквизитов Состояние и Местоположение . Для установленного картриджа в реквизите Местоположение прописывается текущий принтер, а у снятого картриджа - «Склад» .

Кроме того, в регистр КартриджиЗамена заносится движение по данному документу.

Списание картриджей осуществляется отдельным документом СписаниеКартриджей .

Таким образом, в текущий момент времени в справочнике Картриджи каждый картридж имеет вполне определенное состояние (новый, заправленный, пустой и пр.) и определенное местоположение («Склад» или конкретный принтер), что путем несложных отчетов позволяет оценить наличие картриджей с заданным состоянием и сделать вывод о необходимости покупки, заправки и пр. Ну и учесть расходы естественно.

Реализация.

Приступим собственно к конфигурированию.

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

Сначала добавим перечисления: ДаНет , СостояниеКартриджей и ПричиныЗаменыКартриджей , которые нам понадобятся в дальнейшем. Состав перечислений виден на Рис.2

Сконфигурируем простые справочники НоменклатураКартриджей и НоменклатураПринтеров.

Реквизиту ТипКартриджа в справочнике НоменклатураПринтеров присвоим тип ссылка на справочник НоменклатураКартриджей (Рис.3). Не забываем, что все сформированные нами объекты конфигурации надо включить в состав подсистемы УчетКартриджей .

В справочнике Принтеры несколько реквизитов имеют тип ссылки:

Для дальнейшего тестирования программы заполним в режиме Предприятие по нескольку строк в открытых нами справочниках. Естественно, сначала заполняем простые справочники, потом - справочники с реквизитами ссылками. В дальнейшем загрузку полных реальных данных предприятия предполагается осуществить с помощью обработки из таблиц Excel.

Теперь настала пора добавления в конфигурацию документов. Сконфигурируем в дереве объектов конфигурации объект документ ПоступлениеКартриджей с реквизитами и табличной частью НоменклатураДокумента . Регистров накопления у нас в конфигурации пока нет - закладка Движение для документа остается пустой. Поскольку нам надо будет писать свою обработку документа, а пишется программный код в модуле формы документа, то и создадим эту самую форму (Рис.9). Делаем все по умолчанию, как написано в книжках (Форма - Добавить - ФормаДокумента).

Использовать данный документ будем при поступлении на склад как новых, так и заправленных (восстановленных, отремонтированных) картриджей.

Наконец, для учета поступления картриджей заводим регистр накопления КартриджиОплата с измерениями, ресурсами и реквизитами (Рис.10).

В закладке Регистраторы указываем наш документ ПоступлениеКартриджей . Сохраняем конфигурацию.

Возвращаемся по дереву объектов в документ ПоступлениеКартриджей . На закладке Движение выбираем регистр КартриджиОплата , запускаем Конструктор движений и заполняем поле Выражение значениями реквизитов документа (Рис.11).

Жмем ОК и попадаем в Модуль объекта программный код (Рис.12).

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

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

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

При поступлении заправленного тонером (восстановленного, отремонтированного и пр.) картриджа считается, что картридж с таким номером уже есть в справочнике Картриджи , и в этом случае при проведении документа ПоступлениеКартриджей, добавляется строкав Табличную частьЗаправки и меняются значения реквизитов Местонахождение и Состояние у текущего картриджа. Добавленный в Модуль объекта код показан на Рис.13.

Теперь можно провести первую пробу работоспособности программы. В Предприятие создаем документ ПоступлениеКартриджей (Рис.14). Нажимаем кнопку Провести и закрыть . Переходим в справочник Картриджи и видим, что в нем появилась строчка с реквизитами купленного картриджа с пустой табличной частью(Рис.15).

Откроем регистр КартриджиОплата (пункт в меню Регистр оплаты картриджей ) и увидим там аналогичную строку.

Создаем и проводим второй документ ПоступлениеКартриджей с тем же картриджем, но заправленным (Рис.16).

Переходим в справочник Картриджи и видим, что у заведенного нами картриджа добавилась строчка в табличной части Заправки и изменился реквизит Состояние (Рис.17).

Ура! Программа работает!

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

Это будет позднее, а сейчас займемся заменой картриджей - создадим документ ЗаменаКартриджа и соответствующий регистр сведений КартриджиЗамена .

Реквизиты и табличная часть документа НоменклатураДокумента показаны на Рис.18. Подходящих регистров накопления и сведений у нас в конфигурации пока нет, в закладка Движение для документа не будем ничего отмечать. Поскольку нам надо будет писать свою обработку документа, то создаем ФормуДокумента по умолчанию.

Для учета замены картриджей заводим для разнообразия регистр сведений (не регистр накоплений) КартриджиЗамена с измерениями и реквизитами (Рис.19). Получилось пока без ресурсов как-то.

В закладке Регистраторы указываем наш документ ЗаменаКартриджа .

Сохраняем конфигурацию. Возвращаемся по дереву объектов в документ ЗаменаКартриджа. На закладке Движение выбираем регистр КартриджиЗамена , запускаем Конструктор движений и заполняем поле Выражение значениями реквизитов документа. Жмем ОК и попадаем в Модуль объекта документа, где и видим уже созданный Конструктором движения регистров программный код (Рис.20).

Теперь добавляем в Модуль объекта программный код, для обеспечения следующего функционала при проведении документа ЗаменаКартриджа . В справочнике Принтеры для принтера, у которого заменяется картридж должна добавиться строка в табличной части ЗаменаКартриджей со значениями реквизитов из документа и изменится значение реквизита НомерКартриджаСейчас. В справочнике Картриджи у снятого и установленного картриджей изменятся значения реквизитов Местоположение и Состояние . Доработанная процедура обработки проведения документа ЗаменаКартриджа показана ниже.

Процедура ОбработкаПроведения(Отказ, Режим)

// используемые справочники

Принтеры = Справочники.Принтеры;

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

// конец вставки используемые справочники

// регистр КартриджиЗамена

Движения.КартриджиЗамена.Записывать = Истина ;

Для Каждого ТекСтрокаНоменклатураДокумента Из НоменклатураДокумента Цикл

Движение = Движения.КартриджиЗамена.Добавить();

Движение.НоменклатураКартриджей = НоменклатураКартриджа;

Движение.СнятКартриджНомер = ТекСтрокаНоменклатураДокумента.СнятКартриджНомер;

Движение.УстановленКартриджНомер=

Движение.МодельПринтера = МодельПринтера;

Движение.ПринтерСерийныйНомер = ТекСтрокаНоменклатураДокумента.ПринтерСерийныйНомер;

Движение.ПринтерИнвентарныйНомер =

Движение.ТипКартриджа = ТекСтрокаНоменклатураДокумента.ТипКартриджа;

Движение.ЗаменаКтоДелал = ЗаменаКтоДелал;

Движение.ПричинаЗамены = ТекСтрокаНоменклатураДокумента.ПричинаЗамены;

// изменяем справочник Принтеры

СтрокаНаименования = ТекСтрокаНоменклатураДокумента.ПринтерСерийныйНомер;

Тогда ТекущийОбъект =

Принтеры.НайтиПоРеквизиту("СерийныйНомер",СтрокаНаименования).ПолучитьОбъект();

ТекущийОбъект.НомерКартриджаСейчас =

ТекСтрокаНоменклатураДокумента.УстановленКартриджНомер;

НоваяСтрока = ТекущийОбъект.ЗаменаКартриджей.Добавить();

НоваяСтрока.ДатаЗамены = Дата;

НоваяСтрока.ВидКартриджа = ТекСтрокаНоменклатураДокумента.ТипКартриджа;

НоваяСтрока.НомерУстановленногоКартриджа =

ТекСтрокаНоменклатураДокумента.УстановленКартриджНомер;

НоваяСтрока.НомерСнятогоКартриджа =

ТекСтрокаНоменклатураДокумента.СнятКартриджНомер;

НоваяСтрока.КтоЗаменил = ЗаменаКтоДелал;

НоваяСтрока.ПричинаЗамены = ТекСтрокаНоменклатураДокумента.ПричинаЗамены;

ТекущийОбъект.Записать();

КонецЕсли;

// изменяем справочник Картриджи - установленный картридж

СтрокаНаименования = ТекСтрокаНоменклатураДокумента.УстановленКартриджНомер;

тогда ТекущийОбъект =

Строка = " ";

Строка = Строка + МодельПринтера + " " +

ТекСтрокаНоменклатураДокумента.ПринтерСерийныйНомер + " " +

ТекСтрокаНоменклатураДокумента.ПринтерИнвентарныйНомер;

ТекущийОбъект.МестоНахождения = Строка;

ТекущийОбъект.Записать();

КонецЕсли;

// снятый картридж

СтрокаНаименования = ТекСтрокаНоменклатураДокумента.СнятКартриджНомер;

Тогда ТекущийОбъект =

Картриджи.НайтиПоРеквизиту("Номер",СтрокаНаименования).ПолучитьОбъект();

ТекущийОбъект.МестоНахождения = "Склад";

ТекущийОбъект.Состояние = Перечисления.СостояниеКартриджа.Пустой;

ТекущийОбъект.Записать();

КонецЕсли;

// конец изменения справочников

КонецЦикла;

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

Для проверки заполняем и проводим документ ЗаменаКартриджа (Рис.21) . Заходимв справочник Принтеры и видим, что у выбранного принтера добавилась строка в табличную часть Заправки с реквизитами проведенного нами документа и реквизит НомерКартриджаСейчас принял значение номера установленного картриджа (Рис.22).

В справочнике Картриджи у картриджа, установленного в принтер, в реквизит Местоположение записались данные текущего принтера (Рис.23) . И кроме того в регистр сведений КартриджиЗамена записалось движение по документу (Рис.24)

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

С точки зрения «идеологии» 1С наверно неправильно изменять реквизиты справочников проведением документов, использовать справочник для хранения текущих цен - тут сказывается предыдущий опыт работы с таблицами автора статьи, а чем справочник не таблица?

Естественно требуется доработка функциональности, добавление отчетов, исправление ошибок и отладка. Об этом в следующей части статьи.

Полная версия статьи приведена в файле Часть1.doc

Я писал, как установить платформу 1С 8 и саму конфигурацию 1С Бухгалтерия предприятия 8.

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

Как добавить информационную базу в 1С 8.3

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

Шаг 1: Открываем 1С:Предприятие.

Шаг 2: Если список баз у Вас пустой, то система любезно предложит новую базу данных, если же базы в списке уже есть, кликните на кнопку «Добавить». Система отобразит вот такое окно:

Получите 267 видеоуроков по 1С бесплатно:

Шаг 3: Устанавливаем флаг напротив «Создание новой информационной базы» и кликаем кнопку «далее»

Шаг 4: Выбираем в списке баз конфигурацию, которую мы хотим создать, например, Бухгалтерия предприятия. В стандартной с конфигурацией всегда есть «демо»-база. Это демонстрационная база, заполненная демоинформацией, на которой можно тестировать какие-то моменты и обучаться. Настоятельно рекомендую развернуть такую базу данных 1C для тренировок.

Шаг 5: Устанавливаем имя будущей базы, ничего не меняем, кликаем «далее».

Шаг 6: На этом шаге необходимо указать месторасположение файлов для создания базы данных 1С на жестком диске. Советую выбирать не системные разделы.

В данном материале на основе 1С предприятия 8.3 и 8.2 подробно рассмотрим рекомендации и основные этапы разработки конфигурации с нуля.

В общем весь процесс можно условно разделить на этапы:

В чем идея конфигурации «1С»?

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

Выбор площадки для будущего функционала программного продукта

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

Все способы имеют минусы и плюсы:

Тестирование данной конфигурации

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

Защита конфигурации

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

После создания конфигурации нужно оформить авторские права на нее. Это защитит ее от злоумышленников.

Если на вашем компьютере или сервере уже установлена платформа 1С 8.3, то вы можете самостоятельно создать новую базу 1С 8.3 Предприятие. Как это сделать написано в этой статье.

Создать новую базу на платформе 1С 8.3 можно двумя способами:

  1. На основе другой рабочей базы с уже настроенной конфигурацией
  2. Из шаблона конфигурации, входящего в комплект поставки 1С 8.3

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

Посмотрите удобную программу для малого бизнеса с неограниченным количеством предприятий

Быстрый перенос бухгалтерии в БухСофт

Как создать новую базу 1С 8.3 на основе существующей

Выберете «Создание информационной базы без конфигурации…» (4) и нажмите «Далее» (5).

Введите название новой базы (6), выберете тип расположения «На данном компьютере…» (7), и нажмите кнопку «Далее» (8).

В новом окне укажите каталог, где будет находиться новая база (9) и нажмите «Далее» (10).

В открывшемся окне нажмите кнопку «Готово» (11).

Теперь при запуске 1С в списке вы видите новую базу (12). Теперь нужно настроить новую базу 1С 8.3 на основе существующей.

Шаг 2. Сохраните конфигурацию существующей базы

Запустите 1С, кликните на старую базу (1), конфигурацию которой хотите перенести в новую базу и нажмите кнопку «Конфигуратор» (2).

Откроется окно конфигуратора старой базы. Зайдите в раздел «Конфигурация» (3) и выберете «Сохранить конфигурацию в файл» (4). В открывшемся выберете папку и сохраните туда файл.

Шаг 3. Загрузите в новую базу сохраненную конфигурацию

Запустите 1С, кликните на новую базу (1), в которую надо загрузить конфигурацию старой базы и нажмите кнопку «Конфигуратор» (2).

В окне конфигуратора в разделе «Конфигурация» (3) кликните на ссылку «Открыть конфигурацию» (4).

Выберете файл конфигурации (6), который вы сохранили в старой базе и нажмите «Open» (7).

Конфигурация загрузится в новую базу. После окончания загрузки появится сообщение (8) о выполнении загрузки. Нажмите кнопку «Да» (9) для обновления базы.

После обновления появится сообщение «Реорганизация информации» (10) со списком изменений. Нажмите «Принять» (11) для завершения обновления конфигурации.

Как создать новую базу 1С 8.3 из шаблона

Шаг 1. Добавьте новую информационную базу

Запустите 1С и нажмите кнопку «Добавить» (1).

Выберете «Создание новой информационной базы» (2) и нажмите кнопку «Далее» (3).

Выберете «Создание информационной базы из шаблона» (4), укажите релиз программы 1С, который хотите установить (5), и нажмите «Далее» (6).

Введите название новой базы (7), выберете тип расположения информационной базы «На данном компьютере…» (8), и нажмите кнопку «Далее» (9).

В новом окне укажите каталог, где будет находиться новая база (10) и нажмите «Далее» (11).

В открывшемся окне нажмите кнопку «Готово» (12). Новая база создана.

Теперь при запуске 1С в списке информационных баз вы видите новую базу (13) с шаблонными настройками 1С.

Новая база готова к работе. Можете приступать к отражению в ней фактов хозяйственной деятельности.

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

Мы начинаем серию публикаций по разработке конфигурации 1С с нуля. Начнем с конфигурации «Мой склад и управление торговлей» (для толстого клиента 1С).

Самостоятельное создания базы 1С с нуля

1. Создадим папку на диске, например C:\1C\myUt.

4. После входа слева открывается окно дерева конфигурации (если не открылось — вернитесь к предыдущему пункту).

5. Откроем свойства конфигурации (правой кнопкой на строке Конфигурация, пункт Свойства).

6. Впишем имя конфигурации. Имя должно быть одной строкой. По правилам хорошего тона — горбатой (без пробелов, но каждое слово начинается с большой буквы). В нашем случае это будет «МоеУправлениеТорговлей».

7. Изменим основной режим запуска. Мы пока не будем претендовать на разработку управляемых форм и разработаем конфигурацию для обычного (толстого клиента). Поэтому установим «Обычное приложение».

8. В поле Краткая информация введем «Мой склад и управление торговлей. Редакция 1.». Это описание конфигурации. То же скопируем в поле Подробная информация.

9. В поле Заставка нажмите Открыть. Он предложит Вам выбрать картинку для заставки. Формат — .jpg. Размер 195х70 пикселей.

10. В поле Поставщик впишите свое имя. В поле версия — значение «1.0».

11. Остальные значения оставим по умолчанию. Нажмите сохранить (Файл / Сохранить) и обновить (Конфигурация / Обновить конфигурацию базы данных).

12. Мы только что создали основу конфигурации 1С с нуля. Конечно большое количество настроек предстоит впереди, но мы справимся.

До встречи в серии 2.
Удачи!

Скачать готовую базу по этой инструкции >>

Подключение